Bittorrent KRPC - 为什么节点ID的大小是info_hash的一半并使用每个字符a-z?

时间:2017-02-09 17:25:56

标签: bittorrent dht kademlia

这让我很困惑。

最初的Kademlia提供了160bit hex就像sha1一样,原因很明显: 在搜索与infohash相关的对等体时,您只需搜索nodeID,因为它们应与sha1 infohash相同。

但是读到这个: http://www.bittorrent.org/beps/bep_0005.html

id是abcdefghi0123456789,它是: 1)一半大小 2)使用更多字符,然后使用标准十六进制编码。

那么我错过了什么?

为什么节点ID是这样的?

1 个答案:

答案 0 :(得分:2)

要使示例中的原始二进制node_id可打印,
巧妙地选择它只包含字母数字字符 示例中的node_id实际上是:abcdefghij0123456789
如您所见,有20个字符= 20个字节= 160位如预期的那样。

abcdefghij0123456789十六进制编码为:0x6162636465666768696A30313233343536373839