Pull to refresh

Что такое BitTorrent v2, и что с ним произошло?

Reading time3 min
Views44K

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

Первый полноценный документ для стандартизации BEP0052 (некоторый RFC в мире BitTorrent) вышел в 2017 году, а через три года его наконец-то освоили в некоторых из проектов. "Почему так долго", спросите вы?

Дело в том, что протокол BitTorrent поддерживается обществом, и, как вы уже догадались, имеет открытый исходный код, и как во многих открытых проектах, имеется больше хороших фич, чем людей, которых могли бы их реализовать.

Релиз BitTorrent v2 по большому обусловил тот факт, что по устарел хеш алгоритм SHA-1, были найдены коллизии.

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

Привязка хешей файлов

.torrent файлы созданные с поддержкой BitTorrent v2 имеют в составе корневой Merkle хеш каждого файла раздачи (используется модифицированный SHA256), которые можно вбить в поиск. Решается проблема дубликатов файлов, найти и скачать нужный вам файл становится гораздо проще, даже если раздача древняя и не имеет сидов на данном трекере.

Экономия ресурсов

Обязательное выравнивание, также полезно тем, что если вы скачиваете единственный файл размером в 1 мегабайт, при размере части в 8мб в раздаче, вам не придётся скачивать и хранить остальные 7.

Чтобы убедиться, что кусок не битый или что пир не шлёт нам ложные данные, скачать придётся только 16кб, благодаря Merkle хешу.

Торрент файлы только v2 формата могут весить меньше чем v1, раньше в торрент файле к каждому файлу присоединялось его местоположение, как к примеру folder1/folder2/file, и так для каждого файла, теперь же формат позволяет нам единожды указывать расположение в виде ключа массива со всеми вложенными файлами, как folder1:folder2:file1 file2 file3..fileN

Приём со стороны общества

Но к сожалению, с реализацией некоторых из этих функций в клиентах всё ещё есть задержка.

Больше ухудшает ситуацию нежелание администраций трекеров включать его поддержку, скажем показом хешей файлов на страницах раздач. Так появилась бы возможность искать нужные файлы (включая древние артефакты Интернета) среди разных раздач веб/встроенным поиском. Можно извлечь корневые хеши из торрентов и обычных файлов, сравнить на дубликаты с помощью созданной мной программой tmrr.

Примерный вариант показа хешей файлов в раздаче на BitTorrent v2 поддерживаемом трекере.
Примерный вариант показа хешей файлов в раздаче на BitTorrent v2 поддерживаемом трекере.

Совместимость

Для сосуществования двух стандартов были созданы гибридные .torrent файлы, которые имеют в составе старый v1 и новый v2 формат, которые поддерживаются всеми старыми торрент клиентами. Только лишь версии Transmission, ниже исправленной четвертой, имеют баг с обработкой таких торрентов, и работают некорректно, но признаться ради, это уже проблема конечных пользователей не желающих обновлять устаревший торрент клиент.

Так как поддержка v2 вшита в инфо-раздел торрента, новые торрент клиенты умеют апгрейдить соединения, если у пиров есть дополнительный формат, т.е. скачав v1 торрент с магнит ссылки, вы подцепите v2 аналогичной раздачи автоматически, или наоборот.

Пример гибридной магнит ссылки:

magnet:?xt=urn:btih:ХЕШ_v1&xt=urn:btmh:ХЕШ_V2

Папка .pad

Также некоторых смущает факт существования папки .pad в гибрид раздаче, она нужна для функции выравнивания.

В новых торрент клиентах она не показывается и не занимает места, в старых её скачивать необязательно, это был необходимый шаг для сосуществования форматов, эта папка легко идентифицируется (в секции files она и файлы имеют ключ "attribute", который равен "p") и необходимо её скрыть.

В связи с данными проблемами тормозится вхождение и узнаваемость пользователями протокола. Некоторые релизеры не зная, что такое гибрид, и ссылаясь на проблему с Transmission и .pad папку, навсегда забивают на гибрид формат, как на костыль, так и теряется возможность скачать эту же раздачу со всеми преимуществами протокола.

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

Как создать гибридный торрент:

Клиенты поддерживающие протокол:

qBittorrent (ветка с библиотекой lt20), Tixati, PicoTorrent, BiglyBT, GoTorrent.

Обновление 2024:

Движок TorrentPier (на котором основан Rutracker, NNMClub и т.п.) теперь с нативной поддержкой BitTorrent v2.

Tags:
Hubs:
Total votes 100: ↑97 and ↓3+94
Comments248

Articles