Наверное вы слышали о новом протоколе BitTorrent v2, работа над которым велась с 2008-го года, и наделала шум с выходом второй версии популярной торрент-библиотеки Libtorrent, которой пользуются знакомые вам торрент-клиенты, такие как QBittorrent, Deluge и многие другие.
Первая полноценная бумага для стандартизации BEP0052 (некоторый RFC в мире BitTorrent) вышла в 2017 году, а через три года её наконец-то освоили в некоторых из проектов, почему так долго, спросите вы?
Дело в том, что протокол BitTorrent поддерживается обществом, и как вы уже догадались имеет открытый исходный код, и как во многих открытых проектах, имеется больше хороших фич, чем людей, которых могли бы их реализовать.
Релиз BitTorrent v2 по большому обусловил тот факт, что каждая скачанная вами раздача имела уникальный info хеш, и эту раздачу могли поддерживать только те, кто общался по этому хешу. Радикально повлиять на значение этого хеша могло расположение файла, имя и содержание. Т.е переименовав или переместив файл из одной папки в другую полностью менялся хеш раздачи и терялась поддержка возможность найти предыдущих сидов скачавших раздачу.
Cross Swarm Seeding:
torrent файлы созданные с поддержкой BitTorrent v2 имеют в составе каждый корневой Merkle хеш файла раздачи, которые можно анонсировать в децентрализованную сеть DHT. Таким образом, если скажем раздача обновилась (добавили серию вашего любимого сериала), вы можете найти предыдущих пиров и взять с них большинство предыдущих файлов, добавляя себе скорость скачивания, также увеличивается в несколько раз жизнь раздач, решается проблема дубликатов файлов, найти и скачать нужный вам файл становится гораздо проще, даже если раздача древняя и не имеет сидов на данном трекере, уменьшается нагрузка на конечных пользователей и увеличивается связность сети, эта фича называется.
В новом протоколе также произошёл переход от уязвимого к коллизиям sha1, теперь хеши генерируются через sha2.
Но к большому сожалению, с реализацией этих функций в клиентах всё ещё есть задержка, больше ухудшает ситуацию нехотение администраций трекеров включать его поддержку, скажем показом хешей файлов на страницах раздач. Так появилась бы возможность искать нужные файлы среди разных раздач веб/встроенным поиском, легко извлечь же корневые хеши из торрент и обычных файлов, можно с помощью таких программ, как tmrr.
Или показом гибридных магнит ссылок; для сосуществования двух стандартов были созданы гибридные .torrent файлы, которые имеют в составе старый v1 и новый v2 формат, которые поддерживаются всеми старыми торрент клиентами. К сожалению лишь версии Transmission, ниже исправленной четвертой, имеют баг с обработкой таких ссылок и торрентов, и работают некоррентно, но признаться ради, это уже проблема конечных пользователей не желающих обновлять торрент клиент.
Пример гибридной магнит ссылки:
magnet:?xt=urn:btih:ХЕШ_v1&xt=urn:btmh:ХЕШ_V2
Также некоторых смущает факт существование папки .pad в гибрид раздаче, в новых торрент клиентах она не показывается и не занимает места, это был необходимый шаг для сосуществования форматов, но это уже скорее администраций трекеров, это папка легко идентифицируется и необходимо её скрыть.
В связи с данными проблемами тормозится вхождение и узнаваемость пользователями протокола. Некоторые релизеры не зная, что такое гибрид, и ссылаясь на проблему с Transmission и .pad папку, навсегда забивают на гибрид формат, как на костыль, так и теряется возможность скачать эту же раздачу через Cross Swarm Seeding в будущем, после реализации всех заявленных фич протокола.
Как и было сказано, пока не найдутся разработчики для libtorrent, сам разработчик которого не успевает и на данный момент и занят написанием более эффективного алгоритма дискового кеша, BitTorrent v2 несколько лет будет бродить среди туманного сада недореализованных протоколов, за ручку с IPv6.
Автор:
penetration