【问题标题】:How to get the roothash or a proof from a child trie in substrate?如何从底层的子树中获取 roothash 或证明?
【发布时间】:2019-12-04 18:01:00
【问题描述】:

根据示例here,我看到可以使用srml_support::storage::child API 从任意数据中创建一个默克尔子树。但是我们如何使用它来获得 merkle 根或特定叶子的证明呢?我看到API 没有提供任何这样命名的函数。

【问题讨论】:

标签: rust storage substrate merkle-tree


【解决方案1】:

srml_support::storage::child API 使用了sr_io API。

sr_io 提供更多功能,例如sr_io::child_storage_root,这就是您要查找的功能。

【讨论】:

  • 如何获得子树的叶子的证明?我看上面的API没有这样的功能。
【解决方案2】:

另一种方法是直接查询包含根的父 trie 节点。对于链接的示例,它将是这样的(child_storage_root 正在计算正在进行的更改,而直接查询根获取块处理开始时的状态或最新存储的状态计算):

let id = Self::id_from_index(index);
let child_root = storage::unhashed::get_raw(id.as_ref());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 2011-06-05
    相关资源
    最近更新 更多