gpt4 book ai didi

implementation - 主线 DHT 引导过程

转载 作者:行者123 更新时间:2023-12-05 00:36:54 29 4
gpt4 key购买 nike

有人可以向我澄清主线 DHT 规范中的声明吗?

Upon inserting the first node into its routing table and when starting up thereafter, the node should attempt to find the closest nodes in the DHT to itself. It does this by issuing find_node messages to closer and closer nodes until it cannot find any closer.



“直到它找不到更近的地方”是什么意思?

当我的程序开始发送 find_node 消息时,它的节点集为空。 find_node 消息的每个响应返回大约 8 个 dht 节点。我的程序将它们收集在列表中。

我的程序何时必须停止发送查找节点消息?

我认为它必须在收到所有元素都在已收集节点列表中的 dht 节点集时停止发送?

我对吗?

先感谢您。

最佳答案

Mainline DHT 是一个 kademlia 实现,详情见 the paper .

从收到的 8 个节点中,按照节点 ID 与自己 ID 的接近程度对它们进行排序,然后发送 find_node到前 3 个(离您最近的 3 个)。然后您将收到 8 x 3 个以上的节点,将它们插入到您的节点列表中,仍然按照节点与您的接近程度进行排序。继续发送 find_node消息发送到 3 个顶级节点(忽略您已经发送消息的节点),直到您返回的节点已经在您的列表中。即终止条件是您已向离您最近的所有 8 个节点(在列表顶部)发送了一条消息。

正如论文所解释的,距离度量是异或。要计算您的节点 ID 与另一个节点的距离,您可以对节点 ID 进行异或。结果越低,节点之间的距离就越近。

在现实生活中,您可能希望通过在任何给定时间保留 3 个未完成的请求并在超时中途暂时打开更多未完成的请求来更复杂地执行此操作。

关于implementation - 主线 DHT 引导过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7589717/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com