【问题标题】:Riak, merkle tree, implementationRiak,默克尔树,实现
【发布时间】:2014-02-13 19:34:16
【问题描述】:

有人可以向我解释一下 riak-core 中的 merkle 树实现是如何工作的吗?

https://github.com/basho/riak_core/blob/develop/src/merkerl.erl

例如,我不明白偏移量是什么。

谢谢!

【问题讨论】:

标签: hash tree erlang riak


【解决方案1】:

这棵树或多或少是一棵 K/V 查找树和一棵 Merkle 树。通过查看 160 位 sha1 哈希来定义树。 160 位提供 20 个字节。在树的第一层,我们根据散列的第 0 个字节存储多达 256 个子树。在下一级,它是第 1 个字节,然后是第 2 个字节,依此类推。

这是一种称为数字树的方案,其中哈希中的数字对要在树中采用的路径进行编码。这允许我们替换树中的数据。或者,查找概念trie。同时,我们用 sha1 对每个节点 kids 进行签名,以跟踪给定子树的变化。因此,在运行查找差异时,我们可以忽略具有相同签名的子树,因为它们必须通过构造等效。

offset 编码我们当前在 160 位密钥中的距离。 offset_key/1 函数偏移到要查看的键中的正确字节。

【讨论】:

    猜你喜欢
    • 2019-05-17
    • 2023-01-05
    • 2019-06-04
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多