链接:fabric-gateway v1.3版本
Gateway 类网关接口
Hyperledger Fabric 网关接口
提供的代码定义了Hyperledger Fabric网关的接口。网关为应用程序提供了一个连接点,以便作为特定用户访问Fabric网络。
概述
Gateway
接口提供了以下方法:
- 连接到Fabric网络。
- 访问特定的网络(通道)。
- 与这些网络上的合约互动。
- 将交易提交到账本。
- 监听网络发出的事件。
详细分解
Gateway接口
方法:
- newInstance():创建网关构建器的新实例。
- getIdentity():返回用于与Fabric互动的身份。
- getNetwork(String networkName):返回代表网络的对象。
- newSignedProposal():使用数字签名创建提案。
- newProposal():从序列化数据重新创建提案。
- newSignedTransaction():使用数字签名创建交易。
- newTransaction():从序列化数据重新创建交易。
- newSignedCommit():使用数字签名创建提交。
- newCommit():从序列化数据重新创建提交。
- newSignedChaincodeEventsRequest():使用数字签名创建链码事件请求。
- newChaincodeEventsRequest():从序列化数据重新创建链码事件请求。
- newSignedBlockEventsRequest():使用数字签名创建块事件请求。
- newBlockEventsRequest():从序列化数据重新创建块事件请求。
- newSignedFilteredBlockEventsRequest():使用数字签名创建过滤的块事件请求。
- newFilteredBlockEventsRequest():从序列化数据重新创建过滤的块事件请求。
- newSignedBlockAndPrivateDataEventsRequest():使用数字签名创建块和私有数据事件请求。
- newBlockAndPrivateDataEventsRequest():从序列化数据重新创建块和私有数据事件请求。
- close():关闭网关连接及所有相关资源。
Builder接口
Builder
接口嵌套在Gateway
接口内,并提供了配置和连接新Gateway实例的方法。
方法:
- connection(Channel grpcChannel):指定网关使用的现有gRPC连接。
- identity(Identity identity):指定用于连接到网络的客户端身份。
- signer(Signer signer):指定用于签署发送到Fabric网络的消息的签名实现。
- hash(Function<byte[], byte[]> hash):指定用于生成发送到Fabric网络的消息摘要的哈希实现。
- evaluateOptions():指定评估交易的默认调用选项。
- endorseOptions():指定背书的默认调用选项。
- submitOptions():指定将交易提交到排序器的默认调用选项。
- commitStatusOptions():指定检索交易提交状态的默认调用选项。
- chaincodeEventsOptions():指定链码事件的默认调用选项。
- blockEventsOptions():指定块事件的默认调用选项。
- filteredBlockEventsOptions():指定过滤的块事件的默认调用选项。
- blockAndPrivateDataEventsOptions():指定块和私有数据事件的默认调用选项。
- connect():使用指定的选项连接到网关。
使用示例
代码提供了如何使用网关的示例:
Identity identity = new X509Identity("mspId", certificate);
Signer signer = Signers.newPrivateKeySigner(privateKey);
Gateway.Builder builder = Gateway.newInstance()
.identity(identity)
.signer(signer)
.connection(grpcChannel);
try (Gateway gateway = builder.connect()) {
Network network = gateway.getNetwork("channel");
// 与网络互动
}
在此示例中:
- 创建了身份和签名者。
- 实例化并配置了一个新的网关构建器,配置了身份、签名者和gRPC通道。
- 连接了网关,并访问了特定的网络(通道)进行互动。
结论
Hyperledger Fabric的Gateway
接口为应用程序与Fabric网络的互动提供了一种简化的方式。它抽象了底层网络的复杂性,并为交易提交、事件监听和网络互动提供了一套直接的方法集。