我读过论文 Kademlia: A Peer-to-peer Information System Based on the XOR Metric。但我还有 2 个问题。
Q1:节点如何获取节点id?
BEP5 说:每个节点都有一个全球唯一的标识符,称为“节点 ID”。节点 ID 是从与 BitTorrent infohashes 相同的 160 位空间中随机选择的。
那么如果你随机选择,你如何选择以及如何确保你选择的id是全局唯一的呢?我的意思是有人可能会选择与您相同的 id。
Q2:存储key-value的节点如何知道是否有peer离开了swarm?
我在第一行提到的论文说:为了补偿节点离开网络,Kademlia 每小时重新发布一次每个键值对。
但是如果我是节点,我想更新谁还在下载某个文件,我仍然不知道谁离开了集群。