如何将Kademlia距离度量表示为整数

时间:2018-02-03 21:20:50

标签: p2p kademlia

我是P2P网络的新手,目前我尝试了解Kademlia论文指定的一些基本内容。我无法理解的主要是Kademlia距离度量。所有论文都将距离定义为两个ID的XOR。 ID大小为160位,因此结果也有160位。 问题:什么是将此距离表示为整数的便捷方式? 我检查过的一些实现使用以下内容: 距离= 160 - 前缀长度(其中前缀长度是前导零的数量)。 这是正确的做法吗?

1 个答案:

答案 0 :(得分:1)

  

我检查过的一些实现使用以下内容:distance = 160 - 前缀长度(其中前缀长度是前导零的数量)。这是正确的做法吗?

这种方法is based on an early revision of the kademlia paper并不足以实施最终论文的后续章节。

一个成熟的实现应该使用一个树状的路由表,它按照它们在密钥空间中的绝对位置来命令桶,当桶分裂发生时可以调整大小。

  

ID大小为160位,因此结果也有160位。问题:什么是将此距离表示为整数的便捷方式?

距离指标是160位整数。您可以使用大整数类或基于数组滚动自己的类。要获得共享前缀位计数,您只需计算前导零,它与网络大小呈对数比例,一旦完成,通常应该适合更小的整数。