XOR度量标准能否在不使用Kademlia的情况下实现DHT?

3
因此,我们可以确定异或距离度量是一种真正的度量(具有对称性、满足三角不等式等)。
在阅读 Kademlia 及其 k-buckets 之前,我曾思考过每个节点会简单地找到自己的 ID 并存储其 k 个最近邻居,反之亦然。节点会定期向其邻居发出 ping,如果它们没有响应,则从列表中清除它们。
现在,如果我想找到某个键 X,我只需向我的邻居中离 X 最近的节点发送此请求,并继续递归执行此操作,直到获得一个节点,该节点在其本身和所有邻居中最接近 X。这个节点将是存储 X 值的节点之一,然后他们只需颠倒步骤(即展开栈)以将值返回给请求者。
加入网络时,节点只需查找自己的 ID,然后添加每个邻居。
这似乎比 Kademlia 更直接。这样做可行吗?仅仅因为每次查找可能会有更多的跳数,所以速度会慢得多吗?
1个回答

2

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

这甚至可能发生在第0跳,即您的本地路由表可能仅包含比自己更远离目标节点的邻居。您将没有更好的联系人进行查询。实际上,您需要在距离度量上倒退,但是异或距离不允许负距离,因为它只是正整数模N的环,所以负距离会绕回到最远的节点,这相当于共享前缀位为0的kademlia桶。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接