如何在Hyperledger架构中检索所有大宗交易?

时间:2019-01-07 22:20:11

标签: hyperledger-fabric hyperledger

如您所知,一个批次中可能有多个事务,具体取决于批次大小和订购者配置。 我只需要调用一次即可返回块内的所有事务,而不是一个接一个。

我可以使用Fabric SDK通过queryTransaction检索一个事务。 像

let response_payload = await channel.queryTransaction(trxnID, peer);

第一种方法:实现chanincode函数,并沿该方法传递来自eventHub的块号,然后在链码内部检索所有交易ID,然后进行查询以查找所有交易,然后将所有交易缝合在一起作为结果。

第二种方法: 在结构sdk中检索该块,然后在块内容的有效负载中解析所有已签名的投标。

第三种方法: 检索带有fabric sdk的内部块,然后检索有效负载中的事务ID或密钥,然后进行沙发数据库查询以检索所有内容。

您认为哪种方法更合理?

1 个答案:

答案 0 :(得分:0)

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

LedgerClient具有

之类的功能
QueryBlock(blockNumber uint64, options ...ledger.RequestOption) (*common.Block, error)

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

block, _ := QueryBlock(37)
data := block.GetData().GetData()

data[][]byte,每个条目都是一个事务。