Сделаем битторрент лучше

в 13:18, , рубрики: DHT, p2p, Peer-to-Peer, Сетевые технологии, хеш сумма

Последнее время среди пользователей файлообменных сетей все чаще звучат призывы к переходу в подпространство: анонимные сети типа i2p tor и т.п.

Несомненно, у этой идеи есть масса положительных сторон, однако, по сути это означает сломать устоявшиеся системы обмена трафиком, некоторые из которых формировались более 10 лет и начать строить заного, пусть с учетом старых ошибок, но и постаравшись не наделать новых. На даный момент сеть битторрент – это десятки, а наверное даже сотни миллионов устоявшихся связей, «разорвав» которые крайне сложно будет восстановить всё в полном обьеме.

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

1.

Первая причина, за которую обычно критикуют битторрент – это его централизованность в виде трекера, который, как правило и является уязвимым местом для нападок копирастов, ДДоСеров и властей всех мастей (извините за каламбур).

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

Однако битторрент уже имеет решения этих проблем, которые эффективно работают. Это DHT и peer-exchange как заменители трекеров, и операции с хеш-суммами — как заменители торрент- и магнет- ссылок.

Про DHT и PE я ниже остановлюсь чуть подробнее, а пока поговорим об хеш суммах.

На самом деле это основная и необходимая составляющая магнет -ссылки и её необходимо и практически всегда достаточно для получения описываемой ей раздачи.

  • Хеш – это не торрент и не магнет файл, его не надо скачивать и сохранять на диск, его гораздо проще опубликовать в открытом виде, он не является ссылкой, его очень сложно подогнать под определение «технического средства, способствующего распространению данных», как это прописано в последнем законе РФ «о блокировках».

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

С точки зрения вашего клиента – ему почти без разницы, торрент вы ему подсунули, или магнет-ссылку или хеш — сумму. «Почти» — в том случае если, он обладает начальным облаком пиров, которое позволит ему опросить их на предмет наличия соответствующего хеш-сумме контента.

Из этого следуют простой вывод – чем больше вы качаете/раздаете – тем больше ваше облако пиров, и тем быстрее ваш клиент сможет по хеш сумме найти те пиры, которые отдадут вам ее содержимое. Так что много раздач в клиенте – это не только приятно, но еще и полезно.

И главное:

  • поиск и инициацию раздач по хеш-суммам давно пора встроить во ВСЕ битторрент клиенты. В дополнение к работе с магнет -ссылками, разумеется, которые почему то тоже не везде есть. Понятно, что сделать из хеш-суммы магнет ссылку – одно движение в текстовом редакторе, но все же для рядового пользователя и это может оказаться сложным.

    Броузеры могут (на самом деле – должны! ) научится распознавать хеш-суммы, подсвечивать их наподобие ссылок, открывая их по клику в битторрент клиенте.

Ну и как модификация технологии — алгоритм, позволяющий делать произвольное количество цифровых «алиасов» хеша. Это заметно развлечет копирастов и цензоров, многократно расширив и усложнив обьем поиска и контроля за распространением хешей, в том случае, если охота за ними развернется в полном масштабе.

Кроме того, хеш-суммы легко переводятся в QR-коды (как вариант — штрих-коды), что открывает новые возможности для наружной и баннерной рекламы, а также для оснащения каждого полицейского считывателем QR-кода, подключенного к интернету.

Последнее в этом пункте – все вышенаписанное полностью совместимо с той технологией, что мы имеем сейчас, и является ее расширением, или, что вернее, логическим продолжением.

2.

Вторая беда файлообменных систем, да и вообще всего интернета – это проблема сохранности данных участвующих в файлообмене. Файлообменник может закрыть ФБР или Роскомнадзор, данные при этом безвозвратно изчезнут, с трекером может случится тоже самое, но данные при этом останутся, хотя и разрушатся облака раздач (развеятся, облака же!), а их восстановление если и произойдет, то с большими потерями.

Есть еще один способ борьбы с файлообменом: как следует напугать пользователей. Тогда они как зомби стирают все со своих дисков и делают телевизор погромче.

Но все же главная причина потери информации в пиринговых сетях – сами пользователи… Они попросту уходят с раздач, и раздачи таким образом «умирают» (либо удаляются с файлообменников за ненужностью). Если вы скачали торрент, а на раздаче нет сидеров, максимум сколько вы прождете – месяц, иногда два. Потом вы прекратите ждать, значит раздача умерла, и виноват здесь только человеческий фактор: один из последних сидеров пролил на ноутбук кофе, другой утопил переносной диск в унитазе. А третий женился, и фильмы Ларса Фон Триера его больше не интересуют.

Количество погибшего по этой причине контента очень велико, и значительно превышает все усилия копирастов на этом поприще. Можно конечно спорить, что пропавшая информация имеет гораздо меньшую ценность, чем которая поддерживается пользователями, и уж тем более чем та, которая закрывается правообладателями, но сути дела это не меняет. Во-первых, потому что понятие «ценности» информации – относительное, а во вторых, решив однажды проблему «неудаляемости» мы заодно решим и другие.

  • Мы можем прийти к ситуации, когда любая информация выложенная в p2p-сеть, останется в ней навсегда. Возможно она будет иметь ограниченную доступность в виде малого количества источников, ввиду малой востребованости, тем не менее, она будет доступна и удалить её из сети не будет никакой возможности…

(Здесь я сознательно опущу дискуссию об иных последствиях “неудаляемости” информации, поскольку совершенно очевидно, что есть контент, который не должен распространятся по сети — даже с точки зрения The PirateBay. )

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

Не составляя единого целого, такие блоки данных не будут иметь никакой прикладной ценности для того компьютера, на котором они кешируются.

Кешируемая раздача никогда не будет скачана целиком на этом комьютере и пользователь никогда не узнает, что кешировал его компьютер.

При текущей скорости доступа в интернет и стоимости дискового пространства нет никаких неудобств пожертвовать несколькими гигабайтами на винте и несколькими процентами ширины канала в интернет, тем более что windows update делает это без спроса.

В результате этого, любая раздача кроме своих непосредственных сидеров-личеров, инициированных пользователями, будет поблочно скачана и раздаваться случайными узлами, вероятность ее «смерти» уменьшится. Сверхсложной задачей станет найти и вычистить её части из тех мест, где она закеширована, если таковая потребность возникнет.

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

Побочным эффектом сего нововведения будет и дополнительная защита релизеров – сделав раздачу, можно будет дождаться, пока она разойдется по облаку пиров, перед тем как публиковать хеш–сумму в людном месте. Установить первоисточник релиза после этого практически нереально (последователи Ассанжа и Сноудена наверняка оценят).

Эту надстройку также несложно сделать обратно совместимой с существующей технологией, как дополнительную функцию в любом битторрент клиенте (желательно, не отключаемую)

3.

Если мы хотим децентрализовать и, таким образом, защитить сеть – нам нужно от трекеров переходить к сетям DHT и Peer-Exchange как основному способу обмена пирами среди битторрент-клиентов, используя трекеры только для инициализации раздач, а возможно и просто для выдачи начального списка пиров DHT сети, безотносительно конкретной раздачи.

Это казалось бы очевидное умозаключение, однако, многие трекеры в лице своих администраций действуют ровно наоборот — искусственоо сужая и ограничивая облака своих пиров!

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

Нет, я ничего не имею против закрытых сообществ со своими правилами и внутренними правилами общения, но какой смысл создавать такие искусственые резервации для роботов, т.е битторрент-клиентов?

Здесь речь идет не только о приватных ключах в торрентах, но и правил по «перепаковке» релизов для конкретного трекера (с праздником тщеславия в виде своего файла *.nfo в раздаче), из за которого меняется хеш раздачи, и в результате появляется клон по содержанию, но с отличной хеш-суммой, который «не совместим» по пирам со источником.

Вашему битторрент клиенту ничуть не приятнее качать с IP-адресов, зарегистрированных на вашем трекере, чем с любых других, полученных по DHT. Ему абсолютно все равно! Дайте свободу в интернете хотя бы роботам!

Если немного обобщить, то, наверное, следует говорить о введении эдакого кодекса пиратской чести для трекеров, свода стандартных правил, среди которых будет запрет приватных торрентов и ключей, запрет на “запрет DHT” в торрент-файлах, запрет на «перепаковку» релизов под нужды или правила конкретного трекера или релиз группы.

  • Мы (операторы трекеров в данном случае) должны стремится к тому, чтобы раздача одного и того же контента на разных трекерах имела одинаковый хеш, а следовательно — общее облако пиров. Тогда «живучесть» такой раздачи будет расти пропорционально тому количеству трекеров, где она опубликована, а сами трекеры от этого только выиграют.

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

Автор: rutracker

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js