我正在构建一个超级账本结构区块链应用程序,其中有多个用户进行交互。似乎正在工作。使用hyperledger Explorer,我还可以查看区块链中的区块和交易。
但是,我不清楚如何查看1位用户的交易历史记录(基于他/她的身份密钥)?
[基本上,就像对于银行的客户一样,我只想获取与特定用户有关的交易,以便向他/她提供交易概览。
是否有用于此的工具?是否集成在Fabric中?
有几种不同的解决方法。
On-chain:您将编写一个chaincode函数以返回相应的交易。为此,您需要通过以链码状态(stub.PutState
)存储事务UUID来跟踪每个用户提交的事务。使用stub.getState
,您以后可以检索状态并返回交易清单。 (受this StackOverflow answer启发)
Peer SDK:就独立于链码的交易历史而言,我尚不清楚任何支持此功能的API调用。您只能通过其UUID获得交易。
Off-chain:由于您已经在使用Hyperledger Explorer,因此您应该有一个Postgres database,其中包含索引的交易数据。您可以通过过滤creator_id_bytes
从应用程序中查询交易表。由于Hyperledger Explorer需要首先从对等方获取新事务,因此与1/2相比,此方法存在一些额外的延迟。