用户交易历史超级账本结构

User transaction history hyperledger fabric

我正在构建一个 hyperledger fabric 区块链应用程序,多个用户可以在其中进行交互。它似乎在工作。使用 hyperledger explorer 我还可以查看区块链中的块和交易。

但是,我不清楚如何查看获取 1 个用户的交易历史记录(基于他/她的身份密钥)?

基本上,就像银行的客户一样,我只想获取与特定用户相关的交易,以提供 him/her 交易概览。

有这方面的工具吗?它是否集成到 Fabric 中?

有几种不同的方法可以解决这个问题。

  1. 在链上:你会为return相应的交易编写一个链代码函数。为此,您需要通过将交易 UUID 存储在链代码状态 (stub.PutState) 中来跟踪每个用户提交的交易。使用 stub.getState 您可以稍后检索状态和 return 交易列表。 (灵感来自

  2. Peer SDK:就与链代码无关的交易历史而言,我不知道有任何 API 支持此功能的调用。您只能通过其 UUID 获取交易。

  3. Off-chain:由于您已经在使用 Hyperledger Explorer,因此您应该有一个包含索引交易数据的 Postgres database。您可以通过筛选 creator_id_bytes 从您的应用程序查询交易 table。由于 Hyperledger Explorer 需要首先从对等点获取新交易,因此与 1/2 相比,这种方法有一些额外的延迟。