我读过Kademlia文件:基于XOR度量标准的点对点信息系统。 但我还有两个问题。
Q1:节点如何获得其节点ID?
BEP5说:每个节点都有一个全称唯一的标识符,称为“节点ID”。节点ID是从与BitTorrent信息相同的160位空间中随机选择的。
然后,如果您随机选择,您如何选择以及如何确保您选择的ID是全球唯一的?我的意思是有人可能选择与你相同的身份。
Q2:存储密钥值的节点如何知道某个对等方是否离开了群体?
我在第一行中提到的论文说:为了补偿离开网络的节点,Kademlia每小时重新发布一次键值对。
但如果我是节点,我想更新谁还在下载某个文件,我仍然不知道谁离开了这个群。
答案 0 :(得分:3)
然后,如果你随机选择,你如何选择
使用随机数生成器。
如何确保您选择的ID是全局唯一的?
有人会随机选择相同的节点ID。密钥空间大小为160位。这是2 ^ 160种可能性。这比地球有原子的要少一些。
Q2:存储密钥值的节点如何知道某个对等体是否离开了群组?
没有。它只会超出未刷新的值。
但如果我是节点,我想更新谁还在下载某个文件
DHT的目标不是要准确反映谁在下载洪流,只是提供初始联系人加入群。轻微的不准确无关紧要。