Invoke API 正在接受交易并立即返回交易代码和正常状态。
请求随后被处理,并且实际上可能被链码拒绝,或者分类账添加可能因任何原因失败。
检查链码是否成功处理交易并将结果添加到分类账中的最佳方法是什么?
最佳答案
Fabric v0.6 调用是一个异步过程,获得成功或失败指示的唯一方法是借助内置事件框架。 Section 3.5 of Fabric Protocol Specification contains Event related information 该事件框架生成 3 种事件。
- 阻止事件
- 拒绝事件
- 链码事件
如果您有兴趣检测成功的链代码执行,那么您应该跟踪区 block 事件。您只需监视 block 事件消息的出现,其中包含提交调用交易时收到的 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 中提出的问题
关于blockchain - 检查交易状态的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699096/