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

标签 blockchain hyperledger hyperledger-fabric

Invoke API 正在接受交易并立即返回交易代码和正常状态。

请求随后被处理,并且实际上可能被链码拒绝,或者分类账添加可能因任何原因失败。

检查链码是否成功处理交易并将结果添加到分类账中的最佳方法是什么?

最佳答案

Fabric v0.6 调用是一个异步过程,获得成功或失败指示的唯一方法是借助内置事件框架。 Section 3.5 of Fabric Protocol Specification contains Event related information 该事件框架生成 3 种事件。

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

相关文章:

node.js - 如何使用 node.js SDK 和 TLS 查询 Hyperledger Fabric Go Chaincode?

hyperledger-fabric - ERRO 003 尝试连接到本地对等点时出错 : context deadline exceeded

docker - 如何使用 docker-compose 启动中间 ca?

go - 如何在 Hyperledger Fabric 代码上运行测试?

blockchain - 向 Solidity 结构添加一个新字段使以太坊合约停止工作

blockchain - Hyperledger 中的节点数限制

blockchain - : in memory , 存储在文件或数据库中的实际区 block 链状态数据在哪里?

docker - 调用链码函数时出现 ENDORSEMENT_POLICY_FAILURE 错误

blockchain - Waves平台的智能账户和智能 Assets 有哪些类型的交易?

algorithm - BFT与PBFT与BA共识算法