Kademlia/DHT如何获取节点ID并更新离开群组的对等节点?

4
我读了论文《Kademlia:基于XOR度量的点对点信息系统》,但我仍有两个问题。
问题1:一个节点如何获得其节点ID?
BEP5说:每个节点都有一个全局唯一标识符,称为“节点ID”。节点ID是从与BitTorrent infohashes相同的160位空间中随机选择的。
那么如果你是随机选择的,你如何选择并确保你选择的ID是全局唯一的?我的意思是,有人可能会选择与你相同的ID。
问题2:存储键值的节点如何知道某些对等方离开了群集?
我在第一行提到的论文中说:为了补偿离开网络的节点,Kademlia每小时重新发布每个键值对。
但是,如果我是该节点,我想更新仍在下载某个特定文件的人,我仍然不知道谁已经离开了群集。
1个回答

3

那么如果你随机选择,你会如何选择?

通过随机数生成器。

如何确保你选择的ID全球唯一?

随机选择相同节点ID的概率非常小。密钥空间大小为160位。这是2^160种可能性。这略少于地球上的原子数量。

Q2:存储键值的节点如何知道某个对等方离开了群集?

它不知道。它只是超时未刷新的值。

但如果我是节点,我想更新谁仍在下载某个文件

DHT的目标不是准确反映谁正在下载种子,而仅是提供加入群集的初始联系人。轻微的不准确并不重要。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接