如何在超账锯齿中查询特定资源的交易

时间:2018-06-25 07:59:08

标签: blockchain hyperledger hyperledger-sawtooth

我正在执行多项交易,例如资产的位置更新,但找不到任何方法可基于该资源查询交易:

例如,如果我创建资产fish1,然后进行交易以更新鱼的位置,那么现在我想获取fish1的交易,因此我可以获得{ {1}}并将其绘制在地图上。

如果有人这样做,请提供帮助。谢谢

1 个答案:

答案 0 :(得分:3)

链上解决方案

有两种方法取决于您如何“更新”位置。

  1. 如果要在同一地址更新信息,则必须采取预防措施以捕获所有更新。假设资产具有可以在交易时添加到的集合。使用这种方法,只需获取地址数据(使用/state/ REST-API调用),然后根据需要扩展数据更新的集合即可。
  2. 另一方面,如果每次更新都导致将新数据添加到区块链,那么您将使用某种地址方案(我假设),在其中可以在'/ state?address = xxx中使用前缀`调用以收集所有资产更新。除非每个地址的数据捕获某种时间信息以进行排序,否则您可能还希望获取该块以确定顺序。

使用这两种方法都各有利弊。

链下解决方案

Sawtooth提供了一个事件注册表,客户端(某种形式)可以在其中注册事件侦听器,以链下应用程序所需的任何形式存储数据。通常建议将其用于具有广泛/丰富查询需求的解决方案,因为锯齿Merkle Trie(存储区块链数据的位置)不提供这种灵活性。