4

我读过论文 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 每小时重新发布一次每个键值对。

但是如果我是节点,我想更新谁还在下载某个文件,我仍然不知道谁离开了集群。

4

1 回答 1

3

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

带有随机数生成器。

如何确保您选择的 id 是全球唯一的?

某人随机选择相同的节点 ID 是极不可能的。密钥空间大小为 160 位。那是 2^160 种可能性。这比地球拥有的原子略少。

Q2:存储key-value的节点如何知道是否有peer离开了swarm?

它没有。它只是超时未刷新的值。

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

DHT 的目标不是准确反映谁在下载 torrent,它只是提供初始联系人以加入 swarm。轻微的不准确并不重要。

于 2015-07-12T15:17:07.547 回答