我试图了解Kademlia在寻找资源方面是如何工作的。现在有相当好的描述来构建一个最接近自节点的节点树,如何找到节点之间的距离,如何启动进程等等。我不明白的是文件信息散列是如何与这张图片相匹配的。所有的描述都告诉我们如何进入剧本并构建您自己的分布式哈希表,但事实并非如此。我们这样做实际上是为了找到一个资源,一个带有特定信息哈希的文件。它是如何存储在这个节点树中的,还是有一个单独的节点树?如何找到具有此信息散列的节点,从而获得文件。
这里简要地提到了这样一个事实,即具有相同20字节长度代码的节点id和info散列以及节点id XOR信息哈希是节点与资源之间的距离,但我无法想象这如何以及如何帮助查找资源?毕竟,实际拥有资源的节点id与资源的异或距离最大。
谢谢你,亚历克斯
发布于 2015-04-30 05:14:54
我建议您不仅阅读bittorrent DHT规范,而且阅读原卡德玛纸,因为前者相当简洁,只是顺便提到了一些内容。
Bittorrent的get_peers查找等价于本文描述的find_value操作。
简而言之:就像您可以进行迭代查找一样,根据相对于目标键的xor距离,查找K-最近的节点集--最近的节点集--对于您自己的节点ID,您可以这样做。
对于get_peers,您只需使用info散列作为目标键。
特定信息哈希的K最近节点集是一组被认为负责存储所述信息哈希数据的节点集。虽然由于实现和节点的不精确性,但目标密钥周围的节点可能会存储感兴趣的数据。
https://stackoverflow.com/questions/29958613
复制相似问题