Kadelmia 中的查找节点操作:为什么它从桶中挑选元素而不是查看整个路由 table?

Find Node Operation in Kadelmia: why does it pick elements from bucket instead of looking through the entire routing table?

查找节点操作的第一步如下(如paper所述):

The lookup initiator starts by picking α nodes from its closest non-empty k-bucket (or, if that bucket has fewer than α entries, it just takes the α closest nodes it knows of).

为什么它直接从桶中选取元素,而不是在所有桶中的所有元素中寻找 k 最近的元素?我相信后者是在算法的第 2 步中发生的事情,并且可以在 visualization 此处看到。

我想这只是在α≤k的假设下。在这种情况下,您将自动从最近的桶中获取 k 个最近的节点,或者如果桶包含的节点少于 α 个节点,则括号条件将适用

(or, if that bucket has fewer than α entries, it just takes the α closest nodes it knows of)

另请注意,您查看的是论文的预录版本,其中不包含完整的 kademlia 描述。您可以找到完整的论文 here.