33 个主要重大版本发布

37.0.0 2024 年 7 月 18 日
35.0.0 2024 年 7 月 12 日
34.0.0 2024 年 6 月 24 日
33.0.0 2024 年 5 月 23 日
3.0.0 2021 年 2 月 10 日

#1093神奇豆子

Download history 405/week @ 2024-04-22 540/week @ 2024-04-29 395/week @ 2024-05-06 574/week @ 2024-05-13 851/week @ 2024-05-20 768/week @ 2024-05-27 1068/week @ 2024-06-03 920/week @ 2024-06-10 500/week @ 2024-06-17 1161/week @ 2024-06-24 746/week @ 2024-07-01 550/week @ 2024-07-08 1103/week @ 2024-07-15 856/week @ 2024-07-22 955/week @ 2024-07-29 650/week @ 2024-08-05

3,591 每月下载量
用于 13 个 crate (5 个直接使用)

Apache-2.0

2.5MB
45K SLoC

默克尔山脊

概述

有关默克尔山脊(MMR)的详细信息,请参阅此处: https://github.com/mimblewimble/grin/blob/master/doc/mmr.md

MMR 货盘从每个区块的 LeafDataProvider 获取的叶子数据构建一个 MMR。MMR 节点存储在

  • 链上存储 - 只有哈希,没有完整的叶子内容;
  • 链下存储 - 通过索引API,我们将完整叶子内容(以及所有内部节点)推送到链下数据库,以便链下工作节点可以访问数据。用于MMR的哈希可以独立于其他运行时配置(即不使用frame_system::Hashing),因此可以使用与外部链兼容的哈希算法(如Ethereum兼容性的Keccak256)。

根据使用场景(链下与链上),该组件可以

  • 验证MMR叶子证明(链上)
  • 生成叶子证明(链下)

有关如何优化由多个元素组成的叶子证明大小的文档,请参阅primitives::Compact

用途是什么?

该组件的主要用途是生成MMR根哈希,这些哈希随后可以由BEEFY协议使用(见https://github.com/paritytech/grandpa-bridge-gadget)。MMR根哈希与BEEFY一起可以使构建基于Substrate的链的超级轻量级客户端(SLC)成为可能。SLC将能够跟踪最终性,并且可以提供有关源链上发生的事的更详细证明。在这种情况下,包含该组件的链生成根哈希和证明,然后将其提交给充当轻量级客户端的另一个链进行验证。

次要用途是存档历史数据,同时仍然能够在需要时按需检索它们。例如,如果父块哈希存储在MMR中,则可以在任何时间点提供有关某些过去块哈希的MMR证明,同时这些数据可以从链上存储中安全地删除。

注意:此组件是实验性的,尚未在生产环境中得到验证。

依赖关系

~18–32MB
~551K SLoC