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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Наверное вы слышали о новом протоколе 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/


Интересные статьи

Интересные статьи

Мы в облачном провайдере T1 Cloud уделяем серьезное внимание защищенности клиентских сервисов, поэтому решили подготовить серию материалов о разработке приложений в облаке. Начнем с вводных и расскаже...
Меня зовут Маша, я автор курса по С++ в Яндекс Практикуме. Все вопросы, задачи курса, его тексты и описания решений — это всё наша команда. И сегодня я хочу поговорить про красоту кода. О...
Сравнивать CRM системы – дело неблагодарное. Очень уж сильно они отличаются в целях создания, реализации, в деталях.
«Битрикс» — кошмар на костылях. Эта популярная характеристика системы среди разработчиков и продвиженцев ныне утратила свою актуальность.
Райан Даль, создатель Node.js, потратил последние полтора года на работу над проектом Deno. Это — новая среда выполнения для JavaScript, которая должна исправить проблемы, присущие Node.js. Не...