当前位置: 首页 > 知识库问答 >
问题:

如何检索Hyperledger结构中的所有块事务?

都超英
2023-03-14
let response_payload = await channel.queryTransaction(trxnID, peer);

第一种方法:实现一个chanincode函数,将eventHub中的块号传递到方法中,然后在chaincode中检索所有事务ID,然后进行查询以查找所有事务,最后将所有事务拼接在一起。

第二种方法:用fabric sdk检索块内的内容,然后解析块内容有效负载中所有签名提案。

第三种方法:用fabric sdk检索内部的块,然后检索有效负载中的事务ID或密钥,然后进行一个沙发db查询来检索所有内容。

你认为哪种方法更合理,如果不是的话,你的建议是什么?

共有1个答案

诸葛康胜
2023-03-14

如果您的客户端设置正确,则应该有

ledgerclient,其函数如下

QueryBlock(blockNumber uint64, options ...ledger.RequestOption) (*common.Block, error)

一旦有了块,就可以从中提取数据

block, _ := QueryBlock(37)
data := block.GetData().GetData()
 类似资料:
  • 我是hyperledger fabric的新手,我正在尝试查询一个特定键的链码。我可以检索密钥的json数据,但我还希望获得与上次PutState调用相关的块号和事务id,该调用创建/更新了我从CouchDB检索的数据。有办法做到吗? 提前致谢

  • 如何在不创建多个字符串的情况下获得所有列和记录?假设我在那个表中有10列,我不需要把它存储到一个对象中 谢了。

  • 我有一个场景,其中有两个组织org1、org2。现在我使用Fabric-Shim API在Node.js中编写了一个链码,其中一些函数只需要由org1的对等项调用,其他函数则需要由org2的对等项调用。 如何检查交易发起人的身份?CTX.ClientIdentity.getId()/CTX.ClientIdentity.getMspId()是否帮助我提供在ConfigTX.yaml中定义的ID,以

  • 创建了一个通道,并添加了对等点,并在4个对等点上安装了相同的链代码,使用Hyperledger作曲家与ConnectionProfiles.json,现在我混淆了使用NODE JS SDK:(使用NODE JS SDK)与上述(FABRIC 1.1)网络中的对等点通信,或者它(节点js SDK)用于创建通道

  • 我试图检索一个索引中的所有文档,但只得到_id字段。 基本上,我想检索我拥有的所有文档ID。 使用时: 我得到的命中包含:" _index "、" _type "、" _id "、" _score "、" _source ",这比我需要的要多得多。 编辑(回答):所以我的问题是我使用KOPF来运行查询,结果不准确(得到了_source等等…)!当使用curl时,我得到了正确的结果! 所以上面的查询