Kademlia 节点树与 torrent 文件的 infohash 有何关联?

ale*_*.98 5 bittorrent dht kademlia torrent

我试图了解 Kademlia 如何寻找资源。现在有很好的描述来构建最接近自身节点的节点树,如何找到节点之间的距离,如何启动该过程等。我不明白的是文件 infohash 如何适合这张图片。所有描述都告诉我们如何进入游戏并构建自己的分布式哈希表部分,但事实并非如此。我们这样做是为了实际查找资源,即具有特定信息哈希的文件。它是如何存储在这个节点树中的还是有一个单独的?如何找到具有此 infohash 的节点,从而获得该文件。

简要提到了这样一个事实,即节点 id 和 infohash 具有相同的 20 字节长度代码,并且节点 id XOR infohash 是节点和资源之间的距离,但我无法想象这是如何以及它如何帮助找到资源?毕竟,实际拥有该资源的节点id可以与该资源具有最大的异或距离。

谢谢你,亚历克斯

the*_*472 4

我建议您不要只阅读BitTorrent DHT 规范,还要阅读原始的 kademlia 论文,因为前者相当简洁,只顺便提到了一些内容。

Bittorrent的get_peers查找相当于find_value论文中描述的操作。

简而言之:就像您可以进行迭代查找来查找 K-closest-node-set(基于相对于目标键的异或距离最接近)一样,对于您自己的节点 ID,您可以对任何其他 ID 执行此操作。

get_peers您只需使用 infohash 作为目标键即可。

特定 infohash 的 K-closest-node-set 是被认为负责存储所述 infohash 数据的节点集。尽管由于实现的不准确和节点流失,目标密钥周围超过 K 个节点可能正在存储感兴趣的数据。