Kademlia/DHT 如何获取节点 ID 并更新离开群的节点?
How does Kademlia/DHT get the node ID and update the peer leaving the swarm?
我读过论文-Kademlia: A Peer-to-peer Information System Based on the XOR Metric。
但我还有2个问题。
Q1:节点如何获取节点id?
BEP5 说:每个节点都有一个全局唯一标识符,称为 "node ID." 节点 ID 是从与 BitTorrent infohashes 相同的 160 位 space 中随机选择的。
那如果是随机选择,如何选择,如何保证你选择的id是全局唯一的呢?我的意思是有人可能会选择与您相同的 ID。
Q2:存储键值的节点如何知道某个节点是否离开了集群?
我在第一行提到的论文 says:To 补偿离开网络的节点,Kademlia 每小时重新发布一次每个键值对。
但如果我是节点,我想更新谁还在下载某个文件,我仍然不知道谁离开了集群。
Then if you choose at random,how do you choose
使用随机数生成器。
how to make sure the id you choose is globally unique?
极不可能有人随机选择相同的节点 ID。密钥空间的大小为 160 位。那是 2^160 种可能性。这比地球的原子数量略少。
Q2: How does the node storing the key-value know if some peer leave the swarm?
没有。它只是使未刷新的值超时。
But if I were the node, i want to update who is still downloading one certain file
DHT 的目标不是准确反映谁在下载 torrent,它只是提供加入群的初始联系。轻微的错误并不重要。
我读过论文-Kademlia: A Peer-to-peer Information System Based on the XOR Metric。 但我还有2个问题。
Q1:节点如何获取节点id?
BEP5 说:每个节点都有一个全局唯一标识符,称为 "node ID." 节点 ID 是从与 BitTorrent infohashes 相同的 160 位 space 中随机选择的。
那如果是随机选择,如何选择,如何保证你选择的id是全局唯一的呢?我的意思是有人可能会选择与您相同的 ID。
Q2:存储键值的节点如何知道某个节点是否离开了集群?
我在第一行提到的论文 says:To 补偿离开网络的节点,Kademlia 每小时重新发布一次每个键值对。
但如果我是节点,我想更新谁还在下载某个文件,我仍然不知道谁离开了集群。
Then if you choose at random,how do you choose
使用随机数生成器。
how to make sure the id you choose is globally unique?
极不可能有人随机选择相同的节点 ID。密钥空间的大小为 160 位。那是 2^160 种可能性。这比地球的原子数量略少。
Q2: How does the node storing the key-value know if some peer leave the swarm?
没有。它只是使未刷新的值超时。
But if I were the node, i want to update who is still downloading one certain file
DHT 的目标不是准确反映谁在下载 torrent,它只是提供加入群的初始联系。轻微的错误并不重要。