对 Sawtooth 中的地址进行了更改?

Changes made to an address in Sawtooth?

我已经创建了一个地址和一些使用 protobuf 序列化的负载。然后我将这个序列化的字节存储在这个地址

 context.set_state({address: account.SerializeToString()},
                                self._timeout)

现在,假设我已经更改了负载并上传到这个地址。 我只是想知道,是否可以获取对该地址所做的所有更改的历史记录以及存储在该地址的当前有效载荷。

首先:没有直接或明显的api来获取特定地址的数据历史记录。

话虽如此,如您所知,每笔交易都会获得一个上下文,然后将其写入全局状态。然而,默克尔树维护着那个交易上下文。

你有三个选择:

  1. 使用 /blocks 端点,遍历每个块中的每个事务。从事务中使用 /state 端点的 head 字段中的 state root hash 字段以及感兴趣的地址。
  2. 使用 /transactions 端点获取交易列表,使用与 #1
  3. 中描述的相同字段
  4. 检测您的 TP 以发出事件,并使用链下事件侦听器将相关信息捕获到链下数据库以根据需要进行索引和查询。