Странные вы тут все. Вы вообще читать умеете? А понимать то что прочитали? Вопрос был: "Как создать трекер?" Не сколько стоит, или сколько можно заработать, а именно как создать. И не важно будет это конкурент rutr.life или нет. Паралельно с этим существуют множество других и не умирают ведь. А вы тут словоблудием занимаетесь. Вместо того чтобы просто ответить на вопрос. Примерно так:
Поднимаем BitTorrent трекерВ уникальности технологии BitTorrent сомневаться не приходится: 150 миллионов пользователей по всему миру — лучшее доказательство того, система работает. Найти и скачать что-то из Сети? Легко! Но без существования torrent-трекеров, координирующих связь между пользователями, это было бы невозможно.
Протокол 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:///phpmyadmin/ или из панели администратора (Plesk, cPanel, DirectAdmin или другая, в зависимости от хостинга — суть у всех одна). В крайнем случае, ничего не стоит установить его самому.
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.