Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.
1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок. 2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами. 3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.
Добрий вечір вам, малята, любі хлопчики й дівчата (с).
Сегодня я расскажу о том, как нужно правильно запускать раздачи ваших файлов (будь то сборки клиентов игры, видео про котиков или что другое). Большинство пользователей действуют по принципу создал торрент, запустил, выложил куда-то файл и забыл про него. Проблемы скачивающих раздающего не волнуют, но это не правильно. Если вы раздаете игру - именно ваша задача сделать так чтобы клиент игры качался быстро и без проблем, и качался бы еще раз через год и через несколько лет по тому же торрент файлу. Для начала разберемся, как работает торрент и что это такое.
Протокол BitTorrent - P2P протокол для обмена данными в децентрализованной сети. Идентификаторами раздач являются хеши (20-байтная двоичная последовательность, которая "читабельными буквами" кодируется в виде 40 символов) и задачей клиента, который хочет скачать тот или иной файл является узнать у кого этот файл еще есть, подключиться к тому узлу и забрать какую-то часть файла. За счет того, что скачивание с одного источника в 1 поток происходит значительно медленнее, чем в несколько потоков и с разных источников, скачать через торрент можно существенно быстрее. Раздающий не расходует столько же трафика, сколько ушло бы при скачивании этого же файла такое же количество раз с веб сервера (а трафик часто это деньги) так как первые закачки обязательно идут с его машины, а в дальнейшем, как минимум половина файла скачивается уже с машин других скачавших.
Начинается все с того, что клиент скачивает файл .torrent, который вы выложили на своем сайте, посвященном раздаче очередной сборки игры "от Васи с третьей парадной" либо какую-то музыку с популярного портала типа Рутракер (* запрещен в одной отдельно взятой стране РосКомНа...ркоКонтролем). Этот файл содержит хеш и список трекеров. Тут, чтобы не было путаницы, внесу поправку: сайт, который называется торрент трекером это одно, по сути каталог или поисковая система, а битторрент трекер - это специальный скрипт работает в глубине всей этой системы и обеспечивает ее работоспособность.
Так вот, клиент скачивает файл и достает из него список битторрент трекеров. Далее он обращается к ним ("анонс"), сообщает какой файл он хочет скачать, и получает в ответ список компьютеров, которые этот файл уже скачали. Теперь он может подключиться к нескольким из них и с каждого скачать по куску нужного файла, и собрать эти куски в одно целое. На самом деле все намного сложнее, но по быстрому, на пальцах и в сферическом приближении это выглядит именно так.
Есть еще такая штука, которая называется DHT (distributed hash table) - это хитрая система, сделанная в том числе и на случай если трекеры лежат под мощным дудосом. Тогда компьютеры сами обмениваются между собой списками хешей раздач. Если знают о существовании друг друга.
Теперь о разного рода лаже и причине ее возникновения.
1. Что бы там умные люди не присали по поводу безтрекерных раздач - это все бред. От момента запуска скачивания торрента до момента непосредственно найденного хотя бы одного пира (раздающего компьютера) может пройти и час, и сутки. Если этот же файл можно скачать еще откуда - то, скачивающий уйдет. Не создавайте безтрекерные раздачи если у Вас не медиабомба, которую будет качать половина населения вашей страны.
2. Второй вариант лажи с отсутствием связи между скачивающим и раздающими очень легко проиллюстрировать на следующем примере. Был такой крупнейший украинский файлообменник EX.UA, переживший несколько налётов копирастов, но испугавшийся широты души (или ширины лица) действующих лиц новой власти. Некоторое время к каждому залитому через Веб файлу они создавали торрент раздачу, трекер имел адрес http__tracker.ex.ua/announce. Далее эти торрент файлы раскладывались по многочисленным сайтам, в том числе игровой тематики. Когда сайт закрылся, трекер тоже потушили навеки. Что произошло с такими раздачами? Популярные раздачи как раздавались, так и раздаются благодаря DHT, а если вы качаете что-то редкое - скорее всего качать будете сутки если не неделю, если вообще сможете скачать. Еще примеры по теме - мертвые домены трекеров и ретрекеров tracker.openbittorrent.com, tracker.publicbt.com, tracker.ccc.de и многие другие, которые перестали поддерживаться владельцами, но присутствуют чуть менее чем в половине раздач, в том числе раздач сборок CS 1.6. Что делать? Нужно больше трекеров! Конечно, в рамках разумного, штук 5 а не 20. Умные люди пишут в интернетах о том, что не нужно добавлять больше одного трекера. Читайте выше. DHT и заграница нам не поможет. А еще есть шанс что разные трекеры сообщат скачивающему разные списки раздающих, в результате у скачивающего будет больше источников для скачивания файла.
3. Бывает, конечно, ситуация когда с трекерами все в порядке, но файл не раздается. Например, если вы только что создали торрент раздачу, добавили туда адреса трекеров как положено, они все живые, да вот только скачать файл никто не может. Особенно это касается новых раздач на популярных сайтах или или любых раздач, размещенных на сайтах с общим числом закачек 7 штук в неделю. Причин может быть много: либо вы стали на раздачу, но сидите вы в нехорошей локальной сети где провайдер блокирует торрент трафик или к вашему компьютеру нельзя подключиться с улицы, либо вы выключили компьютер и пошли спать, а кому-то захотелось скачать ваш файл именно ночью либо родители не оплатили интернет и вы уже неделю играете в карты во дворе :) Если это ваш случай - поможет поднятие своего так называемого сидбокса (если что - это такой сервер, на котором установлен торрент и он только для этого и создан). О создании сидбокса на Linux и настройке всего необходимого софта я напишу в следующей статье. Для этого пойдет абсолютно любая машина с нормальным интернет каналом.
Итак, нам нужно выполнение нескольких пунктов: наличие трекера, достаточное количество трекеров на случай недоступности одного или нескольких из них, и наличие раздающего на раздаче.
Считаем что файл, который мы раздаем, уже готов. Кладем его на диске в то место, откуда мы его в ближайшее время точно не удалим. Запускаем uTorrent (именно его, я не рассматриваю MediaGet из за обилия встроенных в него свистелок и перделок, а остальными клиентами под Windows просто не пользовался). Выбираем Файл - Создать новый торрент.
Вверху "Выбор источника" - указываем наш раздаваемый файл или несколько файлов. Ниже список Трекеры. Вопреки инструкциям, составленным сайтами, которые сами добавляют свой трекер при обработке данного файла, мы сюда вносим список нужных нам трекеров, разделенных пустыми строчками. Итого в 1 строке адрес, 2я пустая, 3я- адрес, 4я - пустая и так далее.
Когда выбираете из этих трекеров нужную вам пачку, обязательно позаботьтесь о том, чтобы в списке были и адреса, начинающиеся с http и адреса с udp. Отдельно скажу про адреса rarbg - это болгарский трекер, достаточно стабильно работает, и даже несмотря на то что первое время раздачи он может показывать ошибку "трекер не вернул поле пиров", в дальнейшем он будет исправно возвращать их адреса. Из нескольких адресов в домене rarbg.com нужно оставить один, аналогично смотрим rarbg.me - предполагаем что это резервный домен на случай если кровавая гэбня украдет основной домен, из них тоже один оставляем и не с тем же портом с которым был rarbg.com. То же самое делаем с остальными доменами, если видим на один адрес http и udp можно из них оставить только один, но опять же смотрим чтобы в раздаче были и http и udp трекеры.
Далее веб сиды. Сюда не помешало бы добавить адрес скачивания файла по прямой ссылке (если файл один). Ссылки с Яндекс Диска и файлопомоек не подходят! Проблем несколько - не все клиенты это поддерживают, нельзя использовать домены и адреса на кириллице, и главное не положить сервер большим числом одновременных запросов если сработает пункт 3 и все начнут массово качать через веб.
Описание. Лучше напишите сюда что-то умное, что раздаете, откуда оно и кому оно надо, а то потом в сотнях файлов разобраться трудно. Включите опцию "начать раздачу" и жмите кнопку "Создать и сохранить".
Раз вы нажали запустить - очевидно что файл появится в списке раздач торрент клиента. Найдите его, нажмите на нем, внизу на вкладке Трекеры (подождав минуту-две) посмотрите что происходит и нет ли трекеров в статусе "ошибка", "узел недоступен", "раздача не зарегистрирована на трекере" и подобных. Если есть - удаляйте их из вашего списка, удалите раздачу и создайте ее заново. Последний отлаженный торрент файл можно уже выкладывать в паблик. Далее обязательно попробуйте скачать его с другого компьютера или попросите друзей сделать это - чтобы убедиться что все в порядке.
Другие мои статьи:
Отредактировал: Metal Messiah, - 13.1.2018, 17:39
Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.