我正在看 Kademlia 的论文,我遇到了一个我无法理解的问题。
In a fully-populated binary tree of 160-bit IDs, the magnitude of the distance between two IDs is the height of the smallest subtree containing them both.
d(101,010) = 5 ^ 2 = 7
but Lowest Common Ancestor height is 4:Count from one or 3:Count from zero (root)
这个结果显然是错误的,我肯定有什么地方不对劲,那这句话应该怎么理解,期待你的回复。谢谢
反过来,Kademlia 将其节点组织成二叉树。(有关 Kademlia 内部机制的深入讨论,请参阅 [2]。)节点之间的距离是使用 XOR(异或)函数计算的,它本质上捕捉了二叉树拓扑的思想。对于任何节点 A 和 B,它们的距离的大小 d(A,B)=AB,例如 d 的最重要的非零位是包含它们的最小子树的高度。
接下来我们注意到 XOR 捕获了隐含在我们基于二叉树的系统草图中的距离概念。在 160 位 ID 的完全填充的二叉树中,两个 ID 之间的距离大小是包含它们的最小子树的高度。当一棵树没有完全填充时,最接近 ID x 的叶子是其 ID 共享 x 的最长公共前缀的叶子。如果树中存在空分支,则可能存在多个具有最长公共前缀的叶子。在这种情况下,最接近 x 的叶将是通过翻转 x 中对应于树的空分支的位而产生的最接近 ID x~ 的叶。