可以使用XOR度量来实现没有Kademlia的DHT吗?

时间:2018-05-04 07:20:04

标签: xor distributed-system dht kademlia

因此我们可以确定XOR距离度量是一个实际度量(它是对称的,满足三角不等式等)。

在阅读Kademlia及其k-buckets之前,我在想,每个节点都会找到自己的id并存储其最近的k个邻居,反之亦然。如果他们没有回应,节点会定期ping他们的neghbors并从列表中驱逐他们。

现在,如果我想找到一些密钥X,我只是将这个请求发送到我的邻居到X中最近的节点,并且这会递归地继续,直到你得到一个最接近X的节点本身及其所有邻居。此节点将存储X的值,然后它们只是反转步骤(即展开堆栈)以将值返回给请求者。

一个节点在加入网络时只会查找自己的id,然后添加每个邻居。

似乎比Kademlia更直截了当。这会有用吗?它只是慢得多,因为每次查找可能有更多的跳跃?

1 个答案:

答案 0 :(得分:1)

没有

如果没有kademlia的路由表,您无法保证任何节点的邻居列表实际上都包含更接近目标密钥的联系人,从而可以帮助您的查询收敛到目标。

这甚至可以在第0跳发生,即您的本地路由表可能只包含比您自己更远离目标节点的邻居。你没有更好的联系人来查询。你实际上必须倒退距离度量,但xor距离不允许负距离,因为它只是一个模N的正整数环,所以负距离环绕最远的节点,这相当于kademlia&#39 ;共享0个前缀位的存储桶。