Общий размер битторрента от длины куска и информационного хэша - PullRequest
0 голосов
/ 09 апреля 2020

Я следую неофициальной инструкции bittorrent c, чтобы написать клиент bittorrent в python.

Я пытаюсь подсчитать общее количество элементов в моем примере файла .torrent, а затем и общее количество длина всех частей.

Длина части, которую я получил из метаинфо, составляет 2 ^ 21. И в соответствии с bittorrent spe c wiki, значение «частей» под ключом «информация» представляет собой SHA-1 га sh каждого фрагмента, объединенного в одну длинную байтовую строку.

Они говорят, что я должен получить количество штук по ceil (общая длина / размер штуки), поэтому мне интересно, смогу ли я получить общую длину от штук га sh?

У меня есть кусочки ha sh в байтовой строке, длина которой я получил 38560. 38560 * 8 бит намного меньше, чем 2 ^ 21, поэтому я предполагаю, что мне нужно декодировать это, чтобы рассчитать общую длину?

1 Ответ

0 голосов
/ 12 апреля 2020

Последний фрагмент в торренте не обязательно является полным размером фрагмента, поэтому вы можете извлечь только приблизительный общий размер из списка ha sh и размера фрагмента. Кроме того, отступы ( явный или неявный ) могут еще больше раздувать диапазоны байтов, охватываемые хэшами фрагментов.

Как вы уже заметили, вы можете получить точную общую длину с помощью суммирование по длине файла.

...