Bittorrent KRPC - 为什么节点 ID 的大小是 info_hash 的一半并使用每个字符 a-z?
Bittorrent KRPC - Why are node ID's half the size of an info_hash and use every character a-z?
这让我很困惑。
最初的 Kademlia 提供像 sha1 这样的 160 位十六进制应该被使用,原因很明显:
当搜索与 infohash 相关的节点时,您只需搜索 nodeID,因为它们应该与 sha1 infohash 相同的系统。
但是读到这里:
http://www.bittorrent.org/beps/bep_0005.html
ID 是 abcdefghi0123456789
即:
1) 一半大小
2) 使用比标准十六进制编码更多的字符。
那我错过了什么?
为什么节点id是这样的?
要使示例中的原始二进制文件 node_id 可打印,
它被巧妙地选择为仅包含字母数字字符。
例子中的node_id其实是:abcdefghij0123456789
如您所见,如预期的那样有 20 个字符 = 20 个字节 = 160 位。
abcdefghij0123456789
hex-encoded 是:0x6162636465666768696A30313233343536373839
这让我很困惑。
最初的 Kademlia 提供像 sha1 这样的 160 位十六进制应该被使用,原因很明显: 当搜索与 infohash 相关的节点时,您只需搜索 nodeID,因为它们应该与 sha1 infohash 相同的系统。
但是读到这里: http://www.bittorrent.org/beps/bep_0005.html
ID 是 abcdefghi0123456789
即:
1) 一半大小
2) 使用比标准十六进制编码更多的字符。
那我错过了什么?
为什么节点id是这样的?
要使示例中的原始二进制文件 node_id 可打印,
它被巧妙地选择为仅包含字母数字字符。
例子中的node_id其实是:abcdefghij0123456789
如您所见,如预期的那样有 20 个字符 = 20 个字节 = 160 位。
abcdefghij0123456789
hex-encoded 是:0x6162636465666768696A30313233343536373839