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

Roh*_*tri 3 blockchain hyperledger hyperledger-sawtooth

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

例如,如果我创建一个资产fish1,然后进行交易以更新鱼的位置,现在我想获取交易,fish1以便我可以获取列表geopoints并将它们绘制在地图上。

如果有人做过这样的事情,请帮忙。谢谢

Fra*_* C. 5

链上解决方案

根据您“更新”位置的方式,有两种方法。

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

当然,使用这两种方法都有利有弊。

链下解决方案

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