【问题标题】:Using chord to implement a torrent network使用 chord 实现洪流网络
【发布时间】:2019-11-28 03:54:30
【问题描述】:
据我了解,为了实现一个 torrent 网络,您需要维护一个从文件的哈希值到网络中可用的对等点列表的映射。
但是,我认为这存在一些问题。
- 列表会不断变化,因为它会在节点加入或离开时更新。
- 列表可能会变得很长?但是在 dht 网络中只能有一个版本的列表(因为它是一个哈希表)
【问题讨论】:
标签:
hashtable
dht
torrent
【解决方案1】:
您已经维护了从文件的哈希值到网络中可用的对等点列表的映射。
这是正确的,这就是 DHT 的目的。 DHT 将保存有关谁在网络上以及谁拥有特定信息的信息。
列表会不断变化,因为它会在节点加入或离开时更新。
这也是正确的,但比特洪流 DHT 的构建考虑到了这一点,并带有用于加入和删除离线对等点的协议。
列表可能会变得很长?但在 dht 网络中只能有一个版本的列表(因为它是一个哈希表)
这就是 DHT 的特点,它是分布式的,因此您无需将整个 DHT 保存在一个地方。您只需要通过网络找到您要查找的信息。
要加入网络,您需要找到一些对等点并请求 DHT。通常这是通过 bootstrap nodes 完成的。联系一个节点后,您将能够分享您拥有的信息并发现其他节点并获取他们拥有的信息。
每个 DHT 都有自己的算法,您可以找到 Chord DHT here 的一些详细信息。