0.2.0 |
|
---|---|
0.0.3 |
|
0.0.2 |
|
0.0.1 |
|
#11 in #mmr
56KB
1K SLoC
arber
arber 是一个Merkle-Mountain-Range (MMR)实现。
以下描述摘自这篇优秀的介绍。
Merkle Mountain Ranges [1] 是Merkle树 [2] 的替代方案。虽然Merkle树依赖于完美平衡的二叉树,但Merkle Mountain Ranges可以看作是一系列完美平衡的二叉树,或者是一个从右上角截断的单个二叉树。Merkle Mountain Range (MMR)是严格追加的:元素从左到右添加,一旦有两个子节点,就添加一个父节点,相应地填充范围。
这展示了包含11个插入叶子的范围,总大小为19,其中每个节点都注有其插入顺序。
Height
3 14
/ \
/ \
/ \
/ \
2 6 13
/ \ / \
1 2 5 9 12 17
/ \ / \ / \ / \ / \
0 0 1 3 4 7 8 10 11 15 16 18
这可以表示为一个扁平列表,这里存储每个节点在插入位置索引的高度
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
0 0 1 0 0 1 2 0 0 1 0 0 1 2 3 0 0 1 0
这个结构可以通过其大小(19)完全描述。
🚧 arber 目前正在建设中 - 建议在此点之后戴上安全帽 🚧
[1] Peter Todd, merkle-mountain-range
依赖
~4MB
~81K SLoC