0

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

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

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

4

1 回答 1

2

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

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

你有三个选择:

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