Kadelmia 路由表 - 是否需要双向路由?

问题描述

假设您有节点 u,其路由表中包含节点 w。节点 u 是否必须出现在节点 w 的路由表中?

解决方法

Kademlia 算法不需要这样的东西,而且路由表的结构方式实际上使得这种相互路由表条目不太可能出现在你的近邻之外。

,

我不确定它是否需要它,但使用异或度量作为距离函数的主要优点是 x 到 y 与 y 到 x 的距离相同。

此外,在引导节点时,加入节点应该从引导程序获取连接信息并ping这些节点......并且在第一次ping/连接时,任何节点都将保存节点的连接信息调用 rpc!

所以我不认为 Kademlia 需要它,但很可能总是如此。

唯一一次我看到这不是真的是当一个节点正在调用 find_node rpc 并且它已经收到了目标节点的连接信息(假设它不在调用者的路由表中)但还没有尚未 ping 目标节点。

如果我错了,请纠正我,但这是我从阅读论文和几个实现/文章/示例中收集到的

此外,这可能是在 Kademlia 工作时有用的资产:Kademlia Visualizer

编辑:我记得有一个案例,这不是真的,当你 ping 一个已经有完整存储桶/路由表(活动节点)的节点时,他不会用调用节点替换它的任何节点。