从查询中检索块编号和交易 ID 到 Hyperledger Fabric

问题描述

我是超级账本结构的新手,我正在尝试查询特定键的链码。我可以检索密钥的 json 数据,但我还想获取与创建/更新我从 couchDB 检索的数据的最后一个 PutState 调用相关的块号和事务 ID。有没有办法做到这一点?

提前致谢

解决方法

回复以帮助可能遇到相同问题的任何人,并检查我采用的解决方案是否有意义。因此,据我所知,Hyperledger 允许您在交易提交到区块链之前获取交易 ID,我在与以太坊合作后发现它很奇怪。我和我的同事使用 golang 发现了这一行:

txID :=  ctx.GetStub().GetTxID();

因此,我们的解决方案是将交易 ID 保存在我们存储在区块链中的数据中,以便通过简单的查询(例如,到 couchDB)轻松检索它。 最后,我们通过使用“fabric-network”节点模块调用“qscc”链码的“GetBlockByTxID”sc(据我所知默认存在于超级账本的每个通道中)来检索绑定到txid的信息,并且使用“fabric-common”节点模块的 BlockDecoder 对其进行解码:

  result = BlockDecoder.decode(result)