Bittorrent根据片段长度和信息哈希的总大小



我遵循非官方的bittorrent规范,用python编写一个bittorrend客户端。

我正在尝试计算我的sample.torrent文件中的片段总数,然后计算所有片段的总长度。

我从元信息中检索到的片段长度是2^21。根据bittorrent规范wiki,"info"键下的"pieces"值是每个片段的SHA-1哈希,连接为一个长字节字符串。

他们说我应该通过ceil(总长度/片大小(来获得片数,所以我想知道我是否可以从片哈希中获得总长度?

我把碎片散列在一个字节字符串中,我收到的长度是38560。38560*8位比2^21小得多,所以我想我需要解码它来计算总长度?

torrent中的最后一个片段不一定是片段的完整大小,因此您只能从哈希列表和片段大小中提取大致的总大小。此外,填充(显式或隐式(可以进一步扩大片段哈希所覆盖的字节范围。

正如您已经注意到的,您可以通过对每个文件的长度求和来获得准确的总长度。

最新更新