我今天第一次读到关于Kademlia的内容,但有些地方我觉得还没有理解清楚。
节点和键之间的距离是它们值的异或值。
因此,如果我有键x和节点y,它们之间的距离是x xor y。
但是,为什么要将我所知道的节点分组并按前缀长度排序呢?这似乎与通过xor节点ID查找最接近我的节点没有直接联系?
当我收到一个请求来寻找值时,我会在距离我最近的桶中搜索节点,也就是那些与我的共享前缀最长的节点,例如前160个桶吗?
或者,我是检查我所知道的所有桶中的所有节点,并计算我要查找的键与那些节点ID之间的异或值,然后根据与键ID的异或结果发送我的请求给前k个匹配项?
抱歉,我对DHT还比较新,并且发现在线的解释不太清晰。