Torrent-файл. Что же у него внутри?
Введение

Добрый день.
Использую, как и многие, крупный торрент-трекер — rutracker.org, однако есть одна особенность которая меня раздражает.
Это добавление в список трекеров адреса ix*.rutracker.net, который служит для непонятных мне целей. Однако который часто (у меня — практически всегда) выдаёт ошибки (502 Bad Gateway и 0 No Response). Торрент-клиент (у меня Transmission) помечает торрент сломанным. Что само собой довольно сильно мне мешает. Особенно если учесть особенность Transmission — она задаёт статус торрента по последнему ответу трекера. То есть опрашиваем ix*, он возвращает ошибку, торрент помечается как Broken, через n минут/секунд опрашивается следующий трекер из списка — bt*.rutracker.org или retracker.local, которые возвращают успешный код и торрент снова становится нормальным. Такая чехарда не особо меня радует.
Решение банально — убрать этот нехороший адрес из списка. Однако файлов у меня много, из каждого вручную вырезать совсем не хочется, да и дополнительное действие при добавлении нового торрента выполнять тоже не было никакого желания. Поэтому принял решение разобраться в формате и автоматизировать удаление трекера из списка.
Bencode
Описываются 4 типа данных — массив байт, число, список, ассоциативный массив.
Это всё. Сам файл это последовательность таких записей. Поэтому декодирование крайне просто выполняется:
Кодирование тоже несложно:
Как я уже писал выше для кодирования используется Bencode.
Стоит добавить что если массив байт может быть интерпретирован как строка (имена элементов в ассоциативном массиве, просто строковые поля), то используется кодировка utf-8.
Необходимо упомянуть то, что файлы представлены в протоколе кусками. То есть файлы содержащиеся в торренте объединены в единый массив, и затем этот массив разделили на относительно небольшие кусочки. В таком виде данные обрабатывает BitTorrent-протокол.
В общем-то это всё.
Нам в данный момент нужно только одно поле — announce-list. Пробегаясь по этому списку находим неугодный трекер и вырезаем его:
Скомпонуем всё в один исходник:
Скачать — кроссплатформенный (win + *nix), нужен boost::filesystem.
Демоны и watch-directory.
Демона пишем на Си с использованием замечательной штуки — inotify,
Инициализируем модуль с помощью inotify_init(), затем добавляем директорию для слежения inotify_add_watch(), нас интересует только создание файла, поэтому указываем флажок IN_CREATE. А затем крутим бесконечный цикл слежения за директорией.
Блокирующий вызов read() вернёт нам управление как только произойдут нужные нам изменения в одной из директорий, за которыми следим. Таким образом мы абсолютно не грузим процессор во время ожидания.
Сама обработка файла не представляет из себя ничего интересного — пара вызовов rename() и один вызов system().
Magnet ссыки, как скачивать и открывать их через браузер
Для загрузки Magnet ссылок необходимо скачать специальную программу – торрент-клиент. Самые известные: Utorrent, Bittorrent, но их существует достаточного много. По умолчанию большинство браузеров воспринимает Magnet ссылку, как набор символов и не может ее загрузить. Торрент-клиенты при установке автоматически заносят информацию в реестр для открытия таких ссылок. Если вы пользуетесь портативной версий софта или случайно стерли запись при чистке реестра или запретили своему браузеру открывать сторонние предложения, придется вручную прописать путь к программе в реестре или настроить браузер. Самый легкий путь: открыть любой браузер на движке Chromium и с помощью инструмента “обработчик” научить его распознавать Magnet ссылки.
Как открыть magnet-ссылку с помощью Google Chrome
Шаг 1: откройте настройки браузера, выберите пункт «Конфиденциальность и безопасность», затем перейдите к меню «Настройки сайта».
Шаг 2: прокрутите ползунок вниз до пункта «Дополнительные разрешения». Кликните на строку «Разрешить запрашивать установку обработчиков».
Шаг 3: в новом окне передвиньте ползунок. Ниже будут расположены все сайты, которые запрашивали подобную информацию.
После этих действий браузер по клику на Magnet-ссылку будет открывать установленный по умолчанию торрент-клиент.
Как прописать автоматический запуск торрент-клиента для любого браузера
Шаг 1: нажмите одновременно две клавиши «Win+R» и введите следующую команду «regedit».
Шаг 2: в открывшемся окне выберите «HKEY_CLASSES_ROOT», перейдите в папку «magnet», затем «shell», «open» и в папке «command» дважды кликните на файл реестра.
Обратите внимание на параметр «%1», иногда вместо него стоит 0, измените на единицу, чтобы можно было загружать ссылки автоматически.
Как скачать файлы из интернета по Magnet-ссылке
Шаг 1: Установите и запустите любой торрент клиент поддерживающий магнет ссылки (посмотрите по табличке какой).
Шаг 2: Найдите нужный торрент трекер или другой крупный портал со ссылками.
Шаг 3: выберите файл в каталоге, ознакомьтесь с описанием и нажмите на иконку магнита. В браузере откроется дополнительное окно, кликните на кнопку «Открыть приложение BitTorrent».
Шаг 4: выберите раздел диска и папку для загрузки файлов, нажмите «OK».
Если не хотите загружать какие-то файлы, снимите с них галочки. uTorrent работает по тому же принципу.
Вы можете закачивать любое количество файлов. По правилам большинства сообществ загруженные данные нежелательно удалять сразу. В основе работы пиринговой сети лежит взаимный обмен информацией.
Как работают торренты и насколько это законно
Содержание
Содержание
Многие пользователи Интернета привыкли скачивать фильмы и сериалы, хотя сейчас куча разнообразных сервисов, приложений и сайтов, где за небольшую плату можно посмотреть все, что душе угодно. Некоторые лейблы даже новинки сразу выкатывают на своих сервисах, и в кино идти не нужно. Но так называемые торренты не теряют популярности. Что это такое, как работает и насколько это законно — разберемся в этом материале.
Что такое торрент
Торрент, он же BitTórrent (в буквальном переводе — поток бит) — это пиринговый (P2P) сетевой протокол, созданный, чтобы совместно обмениваться файлами через Интернет. А пиринговая сеть — это одноранговая сеть, где узлы «общаются» без центрального элемента. Сетевой протокол является набором правил и последовательности действий. Все это вместе позволяет устройствам соединяться и обмениваться данными.
Торрент-файлы передаются частями между устройствами (для удобства будем иметь в виду ПК). Каждый клиент скачивает кусочки файлов и одновременно раздает их другим участникам сети. При этом достигается избыточность данных, которая позволяет снизить зависимость от каждого узла сети. Проще говоря, одни и те же куски файлов хранятся на многих компьютерах, и если часть компьютеров, хранящих файлы, пропадет из сети, то сеть продолжит работу.
Торренты распространяются через файлы с метаданными, имеющими расширение «.torrent». Каждый такой файл содержит обязательную информацию: URL трекера, имя и размер файла и контрольные хеш-суммы SHA1-сегментов раздаваемых файлов. Также в файле может быть необязательная информация: хеш-суммы файлов целиком и альтернативные источники, работающие не по протоколу BitTorrent.
Принцип работы протокола BitTorrent
Приложение-клиент подключается к трекеру, указанному в файле. Передает ему свой адрес и хеш-сумму файлов, которые он хочет скачать. В ответ трекер передает клиенту адреса других ПК, которые раздают нужные файлы. Далее терекер периодически передает клиенту новые адреса раздающих ПК, если такие появляются в сети.
Клиенты связываются друг с другом напрямую, без участия сервера-трекера. Чем больше устройств будет хранить нужный вам файл, тем быстрее будет происходить скачивание, так как разные куски файла можно будет одновременно скачивать из кучи источников.
При соединении клиенты сообщают друг другу об имеющихся у них сегментах. ПК, желающий скачать сегмент, — он называется личер — посылает запрос и, если второй ПК, — сидер — готов отдавать, личер получает этот сегмент. После этого клиент проверяет контрольную сумму сегмента. Если она совпала с той, что записана в торрент-файле, то сегмент успешно скачивается, а клиент оповещает всех присоединенных о том, что у него есть этот сегмент. Если же контрольные суммы различаются, то сегмент начинает скачиваться заново. Некоторые клиенты банят тех пиров, которые слишком часто отдают некорректные сегменты.
Порядок обмена сегментами выстроен, чтобы между клиентами распространялись в первую очередь самые редкие сегменты, так повышается доступность файла в сети. Сегменты могут весить от 16 до 4096 килобайт.
Режим End game
Компьютер переходит в этот режим, когда скачивание почти закончилось. В еnd game клиент запрашивает оставшиеся сегменты у всех подключенных. Благодаря этому не происходит замедление или полное «зависание» процесса скачивания файла, который почти уже загрузился, из-за каких-то медленных клиентов.
Сидирование
Когда клиент получил полный файл, он начинает отдавать данные другим участникам сети, то есть, становится сидом. Далее сид периодически подает трекеру сигналы об изменениях в состоянии закачек, обновляя списки IP-адресов.
Общие особенности протокола
На фрагменты разбивается вся раздача целиком, поэтому у «личера», который решил скачать только несколько файлов из закачки, будет храниться небольшой запас информации, для поддержания целостности фрагментов. В качестве объекта раздачи могут выступать несколько файлов, например, содержимое каталога.
Клиенты работают по протоколу TCP (Transmission Control Protocol — протокол управления передачей, один из основных протоколов передачи данных интернета). Клиенты и трекеры могут использовать любой порт, вместо стандартного 6969, чтобы избежать блокировки по порту некоторыми провайдерами.
Трекер
Трекер — это специальный сервер, позволяющий клиентам найти друг друга. Трекер хранит у себя только IP-адреса и хэш-суммы раздач и ничего не знает об имени и содержимом передаваемых файлов. Начиная с версии 4.2.0 официального клиента, выпущенного в 2015 году, появилась бестрекерная работа, которая базируется на DHT Kademlia. В этой реализации трекер доступен децентрализовано на клиентах в форме распределенной хеш-таблицы.
DHT — аббревиатура Distributed hash table, то есть распределенная хэш-таблица. Является протоколом, позволяющим битторрент-клиентам находить друг друга без использования трекера. Клиенты с поддержкой DHT образуют общую DHT-сеть и помогают друг другу найти участников одних и тех же раздач. Это позволяет участникам быстрее находить друг друга, снизить нагрузку на трекер, поддерживает участников вместе в периоды недоступности трекера.
На многих трекерах торренты раздаются с установленным флагом private, не позволяющим использовать сеть DHT. Цель этого — не допускать раздачу материала клиентам, не зарегистрированным на данном трекере. Однако для пользователя это означает уменьшение количества сидеров, иногда — значительное. Для популярных клиентов uTorrent и qBitTorrent умельцы создали бесплатные патчи, позволяющие отключить функции ограничения использования DHT для приватных торрентов.
Magnet-ссылка
magnet: — это открытый стандарт URI (Uniform Resource Identifier — единообразный идентификатор ресурса) схемы. Магнитная ссылка позволяет найти файлы без файла torrent. Эта ссылка содержит в себе только хэш-код раздачи. Также magnet-ссылки могут распространяться в виде файлов с расширением *.magnet.
Одним из преимуществ magnet-ссылок является их открытость и независимость от платформы: они могут быть использованы для загрузки файла при помощи разнообразных приложений на большинстве операционных систем. Благодаря тому, что magnet-ссылка представляет собой короткую строку текста, она может быть легко скопирована через буфер обмена, отправлена по электронной почте, через мессенджеры и SMS.
Недостатки и ограничения
Если в сети нет сидера, у которого есть все фрагменты раздачи нужного файла, то все части невозможно скачать, пока не появится клиент с полным набором. Раздача, в которой долгое время нет полного содержимого, называется «мертвой». Также в торрент-сети отсутствует анонимность, возможно узнать IP-адреса тех, кто скачивает, и тех, кто раздает. Но нельзя узнать какие еще раздачи или скачивания производятся с данного адреса.
Также некоторые из торрент-трекеров имеют открытый доступ, то есть каждый желающий может загрузить любую информацию, и эти раздачи не проверяются. Поэтому некоторые торренты могут содержать вредоносное ПО.
В 2008 году началась разработка нового поколения протокола — BitTorrent v2. В нем алгоритм хеширования SHA-1 заменен на более совершенный SHA-256. Он несовместим со старым, поэтому современные клиенты могут работать с обоими протоколами.
Законно ли пользоваться торрентами
Многие трекеры заблокированы в России за раздачу пиратского контента. Но в трекерах также содержится много авторских файлов и свободных раздач, которые полностью легальны. Если скачивать контент, не защищенный авторским правом — никаких последствий не будет.
За нарушение авторского права в российском законодательстве существует административная ответственность — уголовная и гражданская. Чтобы привлечь к административной ответственности по п.7.12 КоАП, надо доказать, что с помощью скаченного контента человек получит доход. А для привлечения к уголовной ответственности стоимость нарушения авторских прав должна превышать 100 тысяч рублей.
В России и во многих других странах в борьбе с нелегальным распространением контента в основном используется ограничение доступа. При этом пользователю фактически не грозит ответственность за незаконное скачивание. Но в некоторых государствах даже простое скачивание незаконного контента влечет за собой реальную административную или даже уголовную ответственность.
Протокол BitTorrent сам по себе не является незаконным или небезопасным. Это просто средство для обмена файлами любого типа, и существует множество легальных торрент-сервисов.
Но совместное использование и загрузка материалов, защищенных авторским правом, с помощью BitTorrent или иными способами, является незаконным процессом во многих странах. Простыми словами: торрент сам по себе легален, но загрузка несанкционированных материалов, защищенных авторским правом — это противозаконный процесс.
Лучшие торрент-клиенты
BitTorrent — это оригинальный и официальный торрент-клиент от разработчиков протокола. В бесплатной версии показывает рекламу.
BitComet — еще одно классическое приложение, появившееся чуть ли не одновременно с разработкой протокола. Но отзывы о нем протитвречивые.
BitLord — еще один собственный торрент-клиент, который доступен для платформ Windows и MacOS. Первоначально выпущенный в 2003 году, BitLord появился из вышеупомянутого BitComet и включает в себя ряд функций, которых нет на других платформах. Например, встроенный проигрыватель VLC для просмотра видео в приложении, поддержку субтитров с использованием API и встроенный торрент-поисковик.
Halite — это сверхлегкий, суперуниверсальный торрент-клиент. Поставляется со всеми программами и функциями, которые можно ожидать от современного торрент-клиента, в том числе с системой управляемых торрент-очередей, поддержкой магнитного URI, супер-заполнением и возможностью создавать торрент-файлы в приложении.
uTorrent — очень популярный клиент, который, со временем стало труднее рекомендовать из-за переизбытка рекламы. Изначально программа была легким и простым в использовании торрент-клиентом. В 2010 году uTorrent начала включать панель инструментов Conduit Engine в свою утилиту загрузки, а также делать домашнюю страницу и поисковую систему Conduit по умолчанию без согласия. В 2011 году uTorrent начал включать панель инструментов Bing, а затем объявил о платной версии приложения под названием uTorrent Plus.
qBittorrent — бесплатный клиент с открытым исходным кодом, без рекламных объявлений, регулярно обновляется.
Deluge — еще один бесплатный клиент с открытым кодом. От qBittorrent отличается меньшим размером — 34 килобайта.
Transmission — клиент для MacOS и linux, версия для Windows имеет меньший функционал.
Vuze — торрент-клиент. Имеет бесплатную и платную версии.
Сеть торрент и криптовалюты
BitTorrent, Inc. — частная американская компания со штаб-квартирой в Сан-Франциско, была основана 22 сентября 2004 года Брэмом Коэном (Bram Cohen) и Ашвином Невином (Ashwin Navin). На пике популярности аудитория сервисов BitTorrent достигала 150 миллионов активных пользователей в месяц.
В июне 2018 года компанию купил миллиардер, создатель криптовалюты TRON, Джастин Сан (Justin Sun). Протокол позволяет передавать любые типы файлов. Это помогло скомбинировать cеть BitTorrent и блокчейн TRON, так и был создан проект Atlas и криптовалюта BTT.
Проект Atlas не предполагает майнинг. Разработчики не видят смысла поощрять майнеров за огромные траты электроэнергии и дорогостоящее оборудование — принцип действия алгоритма proof-of-work (например, у биткоина).
Алгоритм консенсуса BTT — delegated proof-of-stake (DPoS). Он основан на голосовании между владельцами токенов в реальном времени. Выбираются супер представители, которые следят за стабильностью системы, и за это получают вознаграждение. Если сообщество не устраивают представители, их можно переизбрать. Такой же алгоритм у криптовалюты Tron (TRX) — основного блокчейна для проекта Atlas.
BTT можно получить через обмен на другие валюты, либо через эирдроп. Для владельцев криптовалюты Tron (TRX) производится эирдроп, запланированный на шесть лет. Чтобы получить монеты BTT бесплатно, достаточно хранить любое количество токенов TRX. Но чем больше их будет, тем больше BTT получите на эирдроп:
Эирдроп для держателей TRX производится 11 числа каждого месяца. Следить за курсом BTT можно здесь.
Что такое магнет ссылки?
Несомненно, большинство пользователей сетями интернета, знакомы с таким понятием как magnet-файлы, а многие, наверное, используют их в своей повседневной работе.
Magnet ссылки – это по сущности самое новое поколение файлообменников интернета.
Их появление, предоставляет возможность пользователям, закачивать и получать информацию в сети, не ограничивая себя множественными цензурными запретами и другим посторонним контролем.
Интернет настолько сильно вошёл в нашу жизнь, что трудно даже представить отсутствие возможности получать и делиться информационными данными с другими людьми, используя разные системы, дающие возможность обмена файлами. Поэтому, каждое сообщение о закрытии следующего трекера, который использовали тысячи пользователей, обмениваясь файлами, болью отзывается в нашей душе.
Первоначально, для загрузки файлов программой uTorrent с использованием magnet-cсылки требуется найти подходящую раздачу.
Далее, можно воспользоваться одним из двух способов.
Способ первый
Просто кликнуть на магнет-ссылку, как на любую другую ссылку в Интернете. Ваш браузер запросит разрешение на доступ для программы uTorrent, и после подтверждения откроется окно настройки параметров загрузки.
Способ второй
Кликнуть на magnet-ссылке правой кнопкой мыши и выбрать в меню пункт «Копировать ссылку», затем, перейти в главное окно программы uTorrent. В разделе Главноого меню «Файл» (File) выбрать пункт «Добавить торрент из URL…» (Add Torrent from URL…)
В открывшемся окне в текстовое поле необходимо вставить скопированную ранее ссылку и нажать «ОК».
Принцип работы Мagnet-cсылки полностью аналогичен торрент файлу. При добавлении его в очерёдность закачек, процесс получения информации начинается сразу же, после появления в сети носителя, разыскиваемой Мagnet-cсылки, или успевшего получить хотя бы кусочек раздаваемого файла. В тоже время, есть и отличия. Для торрент файлов, при обмене, обязательно присутствие сервер – обменника. Система, использующая Мagnet-cсылки, работает через децентрализованную сеть, на самом деле несуществующую. Именно поэтому Мagnet-cсылки это будущее свободных от контроля систем обмена файлами, а значит и ограничений официальных законов.
Магнитные ссылки
Технология скачивания по магнитным ссылкам (magnet-links) уникальна тем, что при скачивании вы остаетесь анонимным! Этот способ не требует регистрации на торрент-сайтах, вам не нужно поддерживать рейтинг.
Что такое magnet-ссылка?
Magnet-ссылка или магнитная ссылка — практически тоже самое что и гиперссылка, отличие лишь в том, что если гиперссылка указывает на месторасположение файла, то magnet ссылка указывает на содержимое файла. А если быть точнее, то на хеш файла.
Как выглядит magnet-ссылка?
Наверное, не стоит описывать общую формулу построения magnet-ссылки. Те, кому это интересно, без труда найдут описание в Wikipedia. Для большинства же пользователей нужно знать представление magnet-ссылки просто для узнаваемости. Итак, магнитная ссылка может выглядеть так:
Эти две ссылки одинаково рабочие.
Достоинства метода скачивания по magnet-ссылкам.
1. Магнитные ссылки позволяют обойтись без трекера (торрент-сайта). Они указывают на файлы, которые можно скачать через децентрализованную сеть.
2. Доступна раздача даже если вы не зарегистрированы на торрент- трекере.
3. Высокая скорость скачивания, как через торренты.
4. Можно одновременно раздавать файл как через трекер, так и через магнитные линки
5. Можно просматривать-прослушивать то что стоит на раздаче.
Подстраиваем торрент-клиент на magnet-ссылки

В новом окне вставляем скопированную ссылку:
Для работы магнитных ссылок (линков) необходимо включить DHT-опции. Посмотрите, как должны быть расставлены флажки в окне настройки протокола BitTorrent.
А дальше все просто! Находим магнитную ссылку. Например, самый крупный мировой торрент-трекер «Пиратская бухта» уже полностью перешёл на них. Кликаем на значок магнит. Закачка начнется в соответствии с установками торрент-клиента.
Каталоги, поисковики. сайты.
Здесь даны ссылки на различные ресурсы которые перешли на «магнитные» ссылки. Занесите эту страницу в «избранное» и всегда будете иметь возможность мгновенно находить необходимые файлы.












