检查交易状态的最佳方法是什么?

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 种事件。

  1. 阻止事件
  2. 拒绝事件
  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

上下文中提出的问题