使用 SDK
Fabric Gateway(推荐)
package main
import (
"crypto/x509"
"fmt"
"os"
"github.com/hyperledger/fabric-gateway/pkg/client"
"github.com/hyperledger/fabric-gateway/pkg/identity"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
func main() {
// 1. 加载 TLS 证书,建立 gRPC 连接到 Gateway Peer
certPEM, _ := os.ReadFile("path/to/tls-ca-cert.pem")
certPool := x509.NewCertPool()
certPool.AppendCertsFromPEM(certPEM)
tlsCreds := credentials.NewClientTLSFromCert(certPool, "peer0.org1.example.com")
clientConnection, _ := grpc.NewClient("peer0.org1.example.com:7051",
grpc.WithTransportCredentials(tlsCreds))
defer clientConnection.Close()
// 2. 创建客户端身份(从 MSP 证书和私钥)
clientCert, _ := os.ReadFile("path/to/client-cert.pem")
clientID, _ := identity.NewX509Identity("Org1MSP", identity.CertificateToPEM(clientCert))
// ... 此处省略私钥加载和 Sign 函数创建
// 3. 创建 Gateway 连接
gw, _ := client.Connect(clientID, client.WithSign(sign),
client.WithClientConnection(clientConnection))
defer gw.Close()
// 4. 获取网络和合约引用
network := gw.GetNetwork("mychannel")
contract := network.GetContract("mychaincode")
// 5. 提交交易(自动完成背书、排序、提交)
result, _ := contract.SubmitTransaction("CreateAsset", "asset1", "blue", "10")
fmt.Printf("Transaction result: %s\n", string(result))
// 6. 查询账本(仅背书,不提交)
result, _ = contract.EvaluateTransaction("ReadAsset", "asset1")
fmt.Printf("Query result: %s\n", string(result))
}基于 Node.Js 实现的 SDK
基于 Python 实现的 SDK
基于 Java 实现的 SDK
基于 Go 实现的 SDK
最后更新于