检查交易状态的最佳方法是什么?
What is the best approach to check transaction status?
Invoke API 正在接受交易并立即返回交易代码和 ok 状态。
请求随后被处理,实际上可能被链代码拒绝,或者由于任何原因添加账本失败。
检查链码是否成功处理交易并将结果添加到账本的最佳方法是什么?
Fabric v0.6 调用是一个异步过程,获得任何成功或失败指示的唯一方法是借助内置事件框架。 Section 3.5 of Fabric Protocol Specification contains Event related information
此事件框架生成 3 种事件。
- 阻止事件
- 拒绝事件
- 链码事件
如果您有兴趣检测链代码是否成功执行,那么您应该跟踪区块事件。您只需监视包含您在提交调用事务时收到的 UUID 的块事件消息的发生。
如果您想跟踪 Chaincode 失败,那么您还应该跟踪 拒绝事件 。同样,跟踪包含您的 UUID 作为 TxId 的消息。
请注意,如果发生拒绝事件,将不会创建阻止事件。反之亦然。
Fabric 示例有一个示例实现,可用于提供有关如何编写代码的想法。 https://github.com/hyperledger/fabric/tree/master/examples/events/block-listener
请注意,从 Hyperledger Fabric v1.x.x 开始,架构完全不同。以上答案是针对在 Hyperledger Fabric v0.6
上下文中提出的问题
Invoke API 正在接受交易并立即返回交易代码和 ok 状态。
请求随后被处理,实际上可能被链代码拒绝,或者由于任何原因添加账本失败。
检查链码是否成功处理交易并将结果添加到账本的最佳方法是什么?
Fabric v0.6 调用是一个异步过程,获得任何成功或失败指示的唯一方法是借助内置事件框架。 Section 3.5 of Fabric Protocol Specification contains Event related information 此事件框架生成 3 种事件。
- 阻止事件
- 拒绝事件
- 链码事件
如果您有兴趣检测链代码是否成功执行,那么您应该跟踪区块事件。您只需监视包含您在提交调用事务时收到的 UUID 的块事件消息的发生。 如果您想跟踪 Chaincode 失败,那么您还应该跟踪 拒绝事件 。同样,跟踪包含您的 UUID 作为 TxId 的消息。 请注意,如果发生拒绝事件,将不会创建阻止事件。反之亦然。 Fabric 示例有一个示例实现,可用于提供有关如何编写代码的想法。 https://github.com/hyperledger/fabric/tree/master/examples/events/block-listener
请注意,从 Hyperledger Fabric v1.x.x 开始,架构完全不同。以上答案是针对在 Hyperledger Fabric v0.6
上下文中提出的问题