Наверное вы слышали о новом протоколе BitTorrent v2, работа над которым велась с 2008-го года, и наделала шум с выходом второй версии популярной торрент-библиотеки Libtorrent, которой пользуются знакомые вам торрент-клиенты, такие как QBittorrent, Deluge и многие другие.

Первая полноценная бумага для стандартизации BEP0052 (некоторый RFC в мире BitTorrent) вышла в 2017 году, а через три года её наконец-то освоили в некоторых из проектов, почему так долго, спросите вы?
Дело в том, что протокол BitTorrent поддерживается обществом, и как вы уже догадались имеет открытый исходный код, и как во многих открытых проектах, имеется больше хороших фич, чем людей, которых могли бы их реализовать.
Выход BitTorrent v2 по большому обусловил тот факт, что каждая скачанная вами раздача имела уникальный info хеш, и эту раздачу могли поддерживать только те, кто общался по этому хешу. Радикально повлиять на значение этого хеша могло расположение файла, имя и содержание. Т.е переименовав или переместив файл из одной папки в другую полностью менялся хеш раздачи и терялась поддержка со стороны предыдущих сидов скачавших раздачу.
BitTorrent v2 же имеет в составе .torrent файлов каждый рут Merkle хеш файла раздачи, которые можно анонсировать в децентрализованную сеть DHT. Таким образом, если скажем раздача обновилась (добавили серию вашего любимого сериала), вы можете найти предыдущих пиров и взять с них большинство предыдущих файлов, добавляя себе в скорость скачивания, также увеличивается в несколько раз жизнь раздач, решается проблема дубликатов файлов, найти и скачать нужный вам файл становится гораздо проще, даже если раздача древняя и не имеет сидов на данном трекере, уменьшается нагрузка на конечных пользователей и увеличивается связность сети, эта фича называется Cross Swarm Seeding.
В новом протоколе также произошёл переход от уязвимого к коллизиям sha1, теперь хеши генерируются через sha2.
Но к большому сожалению, с реализацией этих функций в клиентах всё ещё есть задержка, больше ухудшает ситуацию нехотение администраций трекеров включать его поддержку, скажем показом хешей файлов на страницах раздач. Так появилась бы возможность искать нужные файлы среди разных раздач веб/встроенным поиском, легко извлечь же корневые хеши из торрент и обычных файлов, можно с помощью таких программ, как tmrr.
Для сосуществования двух стандартов были созданы гибридные .torrent файлы, которые имеют в составе старый v1 и новый v2 формат. К сожалению версии Transmission, ниже четвертой имеют баг с обработкой таких ссылок и работают некоррентно, но признаться ради, это уже проблема конечных пользователей не желающих обновляться.
Также некоторых смущает факт существование папки .pad в гибрид раздаче, в новых торрент клиентах она не показывается и не занимает места, это был необходимый шаг для сосуществования форматов, но это уже проблема администраций трекеров, это папка легко идентифицируется и необходимо её скрыть.

В связи с данными проблемами тормозится вхождение и узнаваемость пользователями протокола. Некоторые релизеры не зная, что такое гибрид, и ссылаясь на проблему с Transmission и .pad папку, навсегда забивают на гибрид формат, как на костыль, так и теряется возможность скачать эту же раздачу через Cross Swarm Seeding в будущем, после реализации всех заявленных фич протокола.
Как и было сказано, пока не найдутся разработчики для libtorrent, сам разработчик которого не успевает и на данный момент и занят написанием более эффективного алгоритма дискового кеша, BitTorrent v2 несколько лет будет бродить среди туманного сада недореализованных протоколов, за ручку с IPv6.
ссылка на оригинал статьи https://habr.com/ru/post/717820/
Добавить комментарий