因此,我们可以确定XOR距离量度是一个真实的量度(它是对称的,满足三角不等式等)
在阅读有关Kademlia及其k-buckets之前,我曾想过,每个节点只会简单地找到自己的id并存储其最近的k个邻居,反之亦然。节点将不定期对其邻居进行ping操作,如果它们不响应,则将其从列表中逐出。
现在,如果我想找到某个关键X,我只需要向与X相邻的邻居中最近的节点发出此请求,然后递归地进行下去,直到获得一个在X自身及其所有邻居中与X最为接近的节点。该节点将属于那些存储X值的节点,然后他们将颠倒步骤(即展开堆栈)以将值返回给请求者。
节点在加入网络时只需查找自己的ID,然后添加每个ots邻居。
似乎比Kademlia更直接。这行得通吗?是否因为每次查找可能会有更多的跃点而慢很多?
最佳答案
没有。
没有kademlia的路由表,您将无法保证任何节点的邻居列表实际上都包含更接近目标键的联系人,从而可以帮助您的查询向目标收敛。
这甚至可能发生在第0跳,即您的本地路由表可能只包含比您自己离目标节点更远的邻居。您将没有更好的联系人要查询。实际上,您必须在距离度量上倒退,但是xor距离不允许负距离,因为它只是一个以N为模的正整数环,因此负距离会缠绕到最远的节点,这相当于kademlia的存储桶共享0个前缀位。
关于xor - 可以在没有Kademlia的情况下使用XOR度量来实现DHT吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50169345/