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