Торрент. Поднимаем свой BitTorrent трекер
Что такое Torrent / Торрент рассказывать не приходиться, даже те, кто никогда в жизни не слышал о html и думают, что сайты "обжигают" боги, качают с торрентов (не "совсем" на легальных основаниях) музыку, фильмы или программы.
150 миллионов пользователей в мире — это лучшее доказательство того, что система работает и невероятно популярна. Ведь найти и скачать что-то с торрентом намного проще, чем искать в сети (и часто не находить).
Протокол BitTorrent — тот самый случай, когда хочется сказать «все гениальное просто». И правда! Несмотря на всеобщее признание и многомиллионную армию пользователей, в самом протоколе лежат самые что ни на есть «родные» принципы, вроде «Я тебе — ты мне». И в тоже время, это не просто пиринговая сеть, где пользователи закачивают друг у друга расшаренные (открытые для скачки) файлы, непременно простаивая в очереди в ожидании, пока для них, наконец-то, освободится заветный слот. Напротив, это технология, позволяющая получить файл максимально быстро — зачастую быстрее, чем просто скачав его с HTTP-сервера (хотя, часто совсем наоборот). Большую роль здесь играют так называемые torrent-трекеры, которые изначально подразумевались лишь как координаторы процесса передачи файлов между пользователями, но впоследствии превратились в информационные порталы о расшаренных файлах с бешеной популярностью. Разобравшись во внутренней организации протокола BitTorrent, запустить трекер можно и самому. Затем – раскрутить и эффективно использовать в своих целях. Итак, начнем?
Общие принципы работы протокола
Чтобы не прыгать с места в карьер, предлагаю сначала разобрать общие принципы работы технологии BitTorrent. Протокол впервые представлен общественности 2 июля 2001 года, когда программист Bram Cohen опубликовал его первую реализацию на языке Python. Сейчас существует огромное количество клиентов, которыми пользуются более чем 150 миллионов пользователей BitTorrent по всему миру. Такой популярности способствуют несколько причин:
* самая высокая скорость работы по сравнению с другими пиринговыми сетями;
* отсутствие очередей, практически моментальный старт закачек;
* возможность просмотра детальной информации о скачиваемом файле (например, для музыкального альбома – это информация о битрейте, треклист, лог-файл программы риппера, обложка), благодаря информационным сайтам, на которых выкладываются торренты;
* возможность закачки файлов по частям;
* раздача файлов происходит напрямую между пользователями, сервера лишь координируют процесс соединения и передачи файлов.
Для обмена файлами пользователю необходим так называемый BitTorrent-клиент — программа, в которой реализован протокол BitTorrent. Чтобы скачать какой-либо файл, необходимо сначала найти для него так называемый torrent-файл, внутри которого содержатся специальные метаданные. Во-первых, это информация о самом файле (его хэш-сума) и, во-вторых, координаты так называемого трекера — компьютера-сервера, который координирует распространение файла. Torrent-файл может хранить информацию не об одном, а сразу множестве файлов, сохраняя сложную иерархию папок.
Прочитав из torrent-файла метаданные, клиент подсоединяется к трекеру и сообщает ему свой адрес и хэш-сумму запрашиваемого файла. На что в ответ получает адреса других пиров, скачивающих или раздающих этот же файл. Клиент подключается к ним и сразу обменивается информацией об имеющихся сегментах файла. Если кто-то из пиров готов отдавать нужные части, начинается закачка. После того, как хотя бы один сегмент скачан, клиент проверяет его контрольную сумму и оповещает всех присоединенных пиров о наличии у него этого сегмента. Процесс продолжается до полного скачивания файла.
Получается, что клиенты соединяются друг с другом, обмениваются без непосредственного участия трекера, который лишь регулярно обновляет информацию о подключившихся к обмену пирах и прочую статистику. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения. Нужно, чтобы у них были открыты следующие TCP-порты: 6881—6889. Впрочем, они могут быть изменены в случае необходимости, чтобы, например, обойти ограничения файрвола.
Что находится внутри torrent-файла?
Как уже было сказано, для распространения любого файла обязательно создается файл метаданных, в котором содержится следующая информация:
* общая информацию о закачиваемом файле (имя, длина и пр.);
* контрольные суммы сегментов закачиваемого файла;
* URL трекера.
Естественно, вручную ничего делать не надо. Всю работу берет на себя специальная программа, включенная в любой современный torrent-клиент. Именно она разбивает файл на части, размером от 64 до 4 Мб. Для каждого из кусочков высчитывается контрольная сумма (используя алгоритм SHA-1) и записывается в torrent-файл с другими метаданными. Надо сказать, что подсчет контрольных сумм является неотъемлемой частью протокола: как только пользователь скачивает сегмент какого-то файла, он тут же сверяет реальную и заявленную контрольную суммы. Таким образом, обеспечивается отсутствие ошибок на любом этапе закачки. После создания torrent-файл выкладывается в публичное место, чтобы другие пользователя могли его найти — обычно это вебсайты, связанные с трекером.
Поговорим о трекерах
Несмотря на то, что трекер координирует обмен файлами между клиентами, он зачастую даже не знает, какие файлы через него передаются. Ведь пиры, обращаясь к нему, не указывают имена или даже описания, а передают только ничего не говорящие хэш-суммы. С другой стороны, трекеры уже давно перестали быть исключительно технической составляющей, необходимой для работы с системой. Практически все они сейчас имеют специальный веб-интерфейс с дополнительными функциями. Индивидуальная для каждого пользователя статистика раздач, текущее количество сидов и пиров для каждого торрента, общие объемы переданных между клиентами данных… – давно стали стандартными фишками любого torrent-трекера. И что самое главное, такой интерфейс используется как площадка для хранения и публикации новых torrent-файлов.
Доступ к трекеру может быть открытый или частный. В связи с появлением большого количество халявщиков или, иначе говоря, личеров, закачивающих в огромном количестве файлы, но ничего при этом не отдавая, появились так называемые частные трекеры. Доступ к такому – исключительно после регистрации, которая зачастую возможна только по приглашению уже зарегистрированного пользователя. Для идентификации конкретного клиента трекер использует либо IP-адрес пользователя, либо уникальный для каждого юзера пароль, добавляемый трекером в торрент-файл при его скачивании. Особенность частных трекеров – это специальная система рейтингов, учитывающая количество переданных другим пирам и скачанных себе данных. Администраторы трекера требуют поддержания некоторого минимального соотношения этих двух величин. Как результат, доступность и скорость скачивания торрентов на частном трекере обычно выше, чем на открытом.
Выбираем трекер
Существуют разные реализации torrent-трекеров, но основным языком, на котором сейчас разрабатывают подобный софт, является PHP! Одним из самых распространенных, безусловно, является TBDev/TBSource и его различные модификации, которые в огромном количестве распространяются по Сети (еще бы, ведь подогнать PHP-скрипт под себя ничего не стоит). В частности, на этом движке «крутятся» такие популярные трекеры, как what.cd и waffles.fm. Помимо этого мне удалось столкнуться и с другими реализациями PHP-трекеров: BtiTracker, xbtit, AKNova, TorrentTrader. Все они требуют установленного на сервере PHP-интерпретатора и используют в качестве данных СУБД MySQL.
Другая часть трекеров, появившаяся значительно ранее, была написана на компилируемых языках. К ним относятся:
* XBTT – известный трекер, первая версия которого появилась еще в далеком 2004 году, однако разработка и поддержка продолжается до сих пор;
* BNBT – портированный на C++ оригинальный Брама Коэна, который был разработан на Python. Сам BNBT, а также два его форка CBTT и XBNBT, к сожалению, больше не развиваются;
* Opentracker, который некогда использовал The Pirate Bay до проблем с ассоциациями звукозаписывающих компаний.
Если выбирать не из скриптовых трекеров, то выбор, очевидно, падет на XBTT и Opentracker, однако, связываться с ними по ряду причин я не рекомендую. На первых порах лучше всего использовать именно PHP-реализации – TBDev/TBSource либо xbtit. В качестве примера мы возьмем модификацию TBDEV YSE, которую можно скачать с bit-torrent.kiev.ua либо взять с нашего диска.
Приступаем к установке
Итак, что нужно для установки?
1. Веб-сервер с поддержкой PHP (например, Apache или LightTPD);
2. PHP версии 5.1.1 или выше;
3. Сервер базы данных MySQL версии 4.1 или выше, лучше 5.0;
4. Любая оболочка для работы с СУБД MySQL (например, phpMyAdmin или EMS SQL Manager 2007 Pro for mySQL).
Требования настолько минимальные, что для размещения торрент-трекера подойдет даже бесплатный хостинг. Однако вероятность того, что твой торрент скоро откажет или вообще будет удален, очень велика. Поэтому не скупись потратиться на платную площадку: на первых порах вполне сойдет самый обычный хостинг, цена на которые не превышает $10-15. Если дело пойдет и трекер будет набирать обороты, можно задуматься о VPS/VDS и, в конечном итоге, выделенном сервере. Единственный тонкий нюанс — это настройки PHP интерпретатора:
* memory_limit = 16M
* error_reporting = E_ALL ^ E_NOTICE
* display_errors = On
* display_startup_errors = On
* log_errors = On
* report_memleaks = On
* short_open_tag = On
* register_globals = Off
* magic_quotes_gpc = Off
* file_uploads = On
* upload_max_filesize = 8M
* allow_url_fopen = On
Если все ОК, можно приступать к установке. После распаковки архива со скриптами обрати внимание на папку SQL, в которой лежит один единственный файл database.sql — с его помощь ты сможешь создать базу данных с нужной структурой. Чем мы сейчас и займемся.
1. Практически на любом хостинге установлен скрипт phpMyAdmin, специально предназначенный для удобного управления базами данных через браузер. Обратиться к нему можно так: http://
2. Далее создаем новую базу данных, указываем ее имя (скажем, tbdev), а в качестве параметра «Сравнение» выбираем кодировку cp1251_general_ci. Жмем «Создать».
3. Переходим на вкладку «Импорт». Может оказаться так, что такой вкладки не окажется – тогда подойдет вкладка с названием SQL. Так или иначе, тебе будет предложено указать файл SQL, содержащий последовательность SQL-команд.
4. Жмем на кнопку «Обзор» и указываем путь к нашему SQL-файлу. Не забывая выбрать cp1251, даем команду на импорт.
5. Теперь нужно указать параметры базы данных и самого SQL-сервера нашим скриптам. Для этого перейдем в папку /include и отредактируем следующие параметры в файле secrets.php:
$mysql_host = "localhost";// 99%, что тебе не потребуется менять это значение
$mysql_user = "user";// имя пользователя MySQL
$mysql_pass = "password";// ...и пароль
$mysql_db = "tbdev";// имя базы данных
$mysql_charset = "cp1251";// это не трогаем
Все, теперь файлы трекера можно заливать на сервер. Скрипты написаны таким образом, что ничего больше настраивать не надо. Достаточно набрать в адресной строке браузера путь к только что закачанным скриптам, – и перед тобой появится страница твоего собственного трекера! Первый зарегистрированный пользователь автоматически становится администратором, который может управлять настройками трекера, удалять и редактировать учетные записи, модерировать внутренний форум и т.д., и т.п. Словом, делать все, чтобы трекер служил на благо общества. Описывать особенности работы было бы лишним, в виду простоты всего процесса. Замечу лишь, что часть настроек, влияющих на поведение трекера, находятся также в файле secrets.php.
Обзор торрент-трекеров
Торренты (http://torrents.ru)
Один из самых крупных российских трекеров. Его ежедневно посещают порядка 160 тысяч пользователей, что очень хорошо для проекта, основанного на чистом энтузиазме. Стоит отметить, что таким популярным он стал за относительно небольшой временной промежуток — всего лишь три года. Среди основных преимуществ можно выделить: большое количество разнообразного контента (начиная от раритетных аудио- и видеозаписей и заканчивая свежими билдами программных продуктов) и высокую скорость закачки за счет большого количества пиров.
Demonoid (http://Demonoid.com)
Крупнейший трекер во всем мире, которому объявили настоящую войну ассоциации звукозаписывающих компаний. Еще недавно, когда Демоноид пропал на несколько месяцев, казалось, они эту войну выиграли. Однако весной сервер снова ожил и отлично чувствует себя на украинских площадках. Для регистрации необходимо приглашение от одного из пользователей.
НоваФильм (http://novafilm.tv)
«НоваФильм» – сообщество, специализирующееся на переводе и озвучке популярных телешоу (преимущественно, сериалы). Все свои релизы они оформляют в виде раздач на одноименном трекере. Особенность «НоваФильм» в эксклюзивности и хорошем качестве контента. Новые эпизоды популярных сериалов появляются через день-два после их премьеры за бугром. Благодаря такой оперативности, novaFilm.tv стал трекером номер один для всех любителей новых и старых телесериалов.
Лучшие сериалы (http://lostfilm.ru)
«ЛостФильм» можно смело назвать зеркалом «НоваФильм». Почему? Да потому что это еще один трекер, целиком и полностью посвященный распространению популярных сериалов. У любителей сериалов уже давно возник обычай – если желаемый сериал не нашелся на novafilm, то значит, он непременно найдется на lost'e.
HD Tracker (http://hdtracker.ru)
Основной контент этого трекера – новинки фильмов в формата HD DVD, Blu-ray и HDTV. Основные посетили ресурса – любители кино с хорошим качеством изображения и широчайшим интернет-каналом. Простым смертным с тормознутым инетом на этом трекере делать нечего, так как средний размер фильма, как правило, не меньше 4-х гигов, а значит, с толщиной канала 64/128 КБит быстро стянуть ничего не получится. Ах да, чуть не забыл. Для регистрации необходимо получить приглашение от одного из пользователей ресурса.
Sharereactor (http://tracker.sharereactor.ru/)
Достаточно хороший и «живой» трекер. Из контента здесь представлено только видео. Причем имеются как новинки, так и достаточно старые и раритетные фильмы. Многие из релизов можно назвать эксклюзивными, ведь созданием озвучки занимаются постоянные посетители ресурса. Только благодаря таким энтузиастам многие могут посмотреть фильм, который еще не был официально дублирован в РФ (а возможно, что и не будет…), а таких фильмов очень-очень много.
TFile (http://tfile.ru/)
Крупный торрент-трекер, который по количеству пользователей и объему представленного контента можно сравнить с torrents.ru (хотя до полноценного torrents.ru ему еще далеко). Контент на трекере самый разнообразный: новые фильмы, фильмы в HDTV качестве, сериалы, soft, мультики, аниме, литература и т.д. Из особенностей можно выделить – стабильность и душевную атмосферу, царящую на форуме. Стабильность работы действительно на высоте. Трекер такого масштаба редко уходит в даун и всегда рад новым гостям. Среди минусов можно отметить достаточно быстрое «остывание» раздач.
Free Exchage (http://tracker.freeexchange.ru)
Один из немногих трекеров, который позволяет качать файлы без регистрации и без каких-либо ограничений. На первый взгляд это хорошо, но если посмотреть с другой стороны, то плохого больше. Отсутствие регистрации порождает халявщиков, которые только качают и совершенно ничего не отдают. Вследствие этого, новинки на трекере появляются не всего оперативно, а раздачи долго не живут.
The Pirate Bay (http://thepiratebay.org)
Один из крупнейших трекеров в мире и по количеству пользователей, и по контенту. Контент на любой вкус. Тут и игры, и фильмы, и все, что душе угодно. Причем от посетителя не требуется регистрироваться и выполнять сложных телодвижений – можно сразу переходить к закачке. Благодаря большому количеству пользователей, скорость закачки всегда на высоком уровне, поэтому счастливы будут как владельцы широких инет-каналов, так и совсем узеньких.
Torrent Finder (http://torrent-finder.com)
Это не торрент-трекер, а специализированный поисковик torrent-файлов. С помощью этого сервиса очень удобно искать какие-нибудь эксклюзивные вещи. Вбил запрос, подождал несколько секунд и вуаля – куча ссылок на торрент-файл с похожим названием. Torrent Finder производит поиск по самым крупным забугорным трекерам, но, к сожалению, обходит стороной отечественные ресурсы.
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей Индийская пословица |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.