查找节点操作的第一步如下(如论文所述):
查找发起者首先从其最近的非空 k-bucket 中挑选 α 个节点(或者,如果该存储桶的条目少于 α 个,它只获取它所知道的 α 个最近的节点)。
k
为什么它直接从桶中挑选元素,而不是在所有桶中的所有元素中寻找最接近的元素?我相信后者是算法第 2 步中发生的事情,可以在此处的可视化中看到。
我想这只是在 α ≤ k 的假设下。在这种情况下,您将自动从最近的存储桶中获取 k 个最近的节点,或者如果存储桶包含的节点少于 α 个,则将适用括号内的条件
(或者,如果该桶的条目少于 α 个,则它只采用它所知道的最近的 α 个节点)
另请注意,您正在查看论文的预审版本,其中不包含完整的 kademlia 描述。你可以在这里找到全文。