Форум by ArjLover

Форум by ArjLover (http://forum.arjlover.net/index.php)
-   Приёмная ArjLover-a (http://forum.arjlover.net/forumdisplay.php?f=3)
-   -   Нам нужен торрент-трекер (http://forum.arjlover.net/showthread.php?t=3636)

mno 24.02.2008 23:18

ArjLover, да, так оно и работает. Вся идея в BitTorrent была именно в этом. Сами торрент файлы ничего не легального не хранят, только ссылки где можно это нелегальное скачать. Таким образом, некоторое время обходили все законы и тд и тп.

AlekseyS, у нас сейчас поменялся IP и domain треккера, так что нужно будет исправить ваши скрипты. Вместо tp3.rtcomm.ru, мы теперь называетмся torrent.arjlover.net. Все остальное (включая порт) не изменилось. Впринципе, старый домейн тоже будет работать...

mno 24.02.2008 23:23

Я предлагаю сделать размер куска динамичным, и менять его по размеру фильма:

> 700MB = 2MB piece
200MB - 700MB = 1MB
< 200MB = 512KB

Думаю таким путем, мы достигним неплохого компромиса. Если файл маленький (до 100Мю) а куски по 2Мб, то у нас мало кто будет раздавать кроми нашего сервера - так как пока кто-то скачает достаточно кусков что-бы раздавать, то он уже будет довольно близок к концу качания (если считать что у нас есть те, кто качают по 100-300Кб/с). Как вы считаете?

ArjLover 25.02.2008 01:49

с кусками хорошо, но думаю сложно реализовать методами шела.

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

AlekseyS 25.02.2008 02:57

Вложений: 2
Не все ушли спать - кое-кто переписал скрипт...

(1). Значит итоговый вариант скрипта с изменениями:
1. Новый адрес трекера.
2. Выбор размера куска исходя из размера файла, точно по той таблице что привел mno. (а можно настроить как угодно). Протестировал в своей фре на 3-х мультиках скачанных с архива.

(2). С mlDonkey у меня получилось просто:
1. Перенацелил папку Shared на мультики. Я думаю это уже сделано на каждом архивном сервере чтобы он раздавал через ED2K.
2. Закинул .torrent-файлы в папку
mlDonkey/torrents/seeded/
3. Через консоль дал комманду
reshare_torrents

(3). Можно немного расширить тестирование:
у меня есть на диске 3 мультика с архива, можно сделать для них .torrent-файлы и выложить на трекер и в mlDonkey, я поставлю их на сидирование в двух своих клиентах. Итого на каждом мультике будет по 3 сида, все интереснее...
alenkin.cyplenok.avi
kroshka.enot.avi
vovka.v.tridev.tsarstve.avi
Я сделал для них .torrent-файлы новым скриптом и прикрепил к сообщению, так что можно прямо их и подкинуть трекеру и mlDonkey...

(4). Перенос трекера на машину форума:
---(4).1. Это нужно продумать заранее. В .torrent-файлы включается строка с адресом трекера для анонса, ее можно изменить в любой момент, но для этого нужно будет перелапатить все торренты специальной программой, так что лучше это решить до начала создания .torrent-файлов для всего архива.
---(4).2. Нагрузка, скорее всего, будет не большой, но при той схеме БД которую использует этот трекер, после загрузки торрентов для всех файлов архива в базе будет порядка 10000 таблиц. При том что mlDonkey будет все время сидировать, то база будет постоянно держать 10000 открытых таблиц. Я не силен в mySQL, по-этому что это значит для нее я сказать не могу, просто привел цифры...

(5). Как я понимаю нужно еще сделать ссылки на .torrent-файлы на info страничках??

AlekseyS 25.02.2008 03:20

ArjLover, в файле donkey.ini в папке mlDonkey нужно изменить параметр:
upload_power = 5
на
upload_power = 1

чтобы mlDonkey не зажимал BT, а то по умолчанию приоритет отдан ED2K.

mno, у меня вопрос по базе трекера - в какой момент создаются таблицы x* y*? В модуле добавления торрента о них, вроде, речи не идет, значит они создаются в другом месте.
Можно попробовать добавить торрент на трекер и не подключая клиента посмотреть базу.
У меня, в принципе, есть предположение что эти таблицы создаются в момент первого подключения клиента, но это нужно проверить. Я завтра еще раз просмотрю код, может чего пропустил, но если будет возможность - гляньте, пожалуйста, все таки по базе.

ArjLover 25.02.2008 12:46

вот черт... по две таблицы??? Слона-то я и не приметил. :( Не очень хорошая нагрузка на БД, да и на файловую систему тоже. Как же живут трекеры по миллиону торрентов? Используют другой трекер? Мда, неоптимальная БД - это точно, куча мелких таблиц, теперь понятно почему их все переписывают под себя. Задача не особо сложная, но не для нас.. Ладно, чего тут плакать, другой трекер все равно малореально выискивать, попробуем потестить этот, может и не все так страшно..

AlekseyS 25.02.2008 13:09

Ну другой я уже давно предлагал:
http://xbtt.sourceforge.net/tracker/
на С++, скорость, размер, ресурсы все в его пользу, но это сложнее все, то-есть почти с нуля все нам начинать нужно будет... :-(

ArjLover, mno обдумайте еще вот что:
по-моему, нужно попробовать сделать так чтобы анонс трекера был что-то типа

torrents.arjlover.net:55555/announce

без всяких дополнительных путей и php и на ином, нежели http порту, причины:
1. Скрыть реализацию трекера, вдруг будете менять движок или переносить его куда.
2. Порт не 80, а, к примеру, 55555 если нужно будет запускать nginx, или опять же менять трекер на питоновский, сишный или еще какой. Плюс еще развести http и трекер.
Я не силен в апаче, и ничего сказать не могу насколько это реализуемо и насколько сложно...
Но плюс очевиден - не зависим от движка, при смене сервера, движка или еще чего не нужно будет менять .torrent-файлы:
Новый движок - сделали настройку на этот адрес и все пошло.
Новый сервер - заменили ip в DNS и все пошло.
Поставили nginx - ну и чего он нам, будет слушать 80 порт, а у нас на 55555 будет стоять апача и делать все что нам надо...
В общем, сразу не отбрасывайте эту мысль, обмазгуйте немного...

mno 25.02.2008 13:18

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

По поводу когда он создает эти таблици, я еще должен глянуть. Мне сейчас тоже кажется что только при первом подсоеденении. Но, еще появилась идея, что авто аплоад не работает только по тому, что он эти таблици не находит... посмотрю!

ArjLover 25.02.2008 17:55

полностью "за" этот урл
torrents.arjlover.net:55555/announce
движок еще может поменяться и не всегда удастся из под веба анонсить.

P.S. mno, включи плиз лог на апаче - мне интересно посмотреть как часто и много обращаются к трекеру.
AlekseyS, сейчас у меня вся доп.инфа по фильмам лежит в их персональных директориях, скриншоты и т.п. Логично наверно сделать так же и для торрент-файлов, но непонтяно как их потом все ликновать в диру к mldonkey. Впрочем если их держать в одной директории, то вопрос тот же. Еще их иногда надо удалять и создавать новые при замене файла. ну и конечно публиковать линк на странице инфы.. Что-то складный процесс жизни файла не вырисовывается пока... Особенно не нравится линкование каждого файла. потом еще и симлинк удалять... Может сделать одну директорию и ее целиком залинковать в mldonkey?

AlekseyS 26.02.2008 01:34

1. Если все .torrent-файлы сложить в одну папку, то ее просто подцепить вместо mldonkey/torrents/seeded/
Можно создать одну папку "BT" и сложить в нее все .torrent-файлы. В скриптах генерации info страниц пропишем что .torrent-файлы нужно брать из нее.
2. Если .torrent-файлы раскидать по папкам с информацией, то нужно будет делать линки для каждого файла или копировать их в папку mldonkey.
Для этого способа еще нужно будет немного изменить скрипты проверки и генерации .torrent-файлов чтобы они работали с персональными папками для каждого файла и в добавок к этому делали линки в папке mldonkey - это все не сложно...

По-этому, ArjLover, я не вижу какой-то мега-разницы в способах... Хотя, по мне, способ с одной папкой для всех .torrent-файлов (1) как-то проще, в 2 раза меньше файловых объектов будет.
Как я понимаю нужно еще будет обработать info страницы всего архива чтобы добавить ссылку на .torrent-файл... Мне бы увидеть пример такой страницы, я бы по нему мог накидать скрипт, который переделает все страницы на автомате для начального запуска, так сказать.

AlekseyS 26.02.2008 01:49

Пока логи не включили, можно прикинуть сколько отрабатывает апача:
1. интервал обновления на сервере стоит 60 минут, вроде - значит на каждый торрент, каждый клиент производит 1 подключение к трекеру каждый час с GET-запросом и получает на него ответ, в среднем это несколько Кб.
1.1. Некоторые клиента не смотрят на интервал трекера и долбают его когда хотят...
2. Почти у всех клиентов включен scrape, а на трекере я не знаю есть ли он вообще? Значит это еще 2-3 обращения на каждый торрент от каждого клиента в час и 0.5-1Кб.
3. Судя по таблицам трекера, он проверяет открыт ли порт у пира, а значит он сам устанавливает соединение на него, это еще 1 подключение и 0.5Кб
В общем все...
Итого:
6-7 подключений и около 4-6Кб в час на каждый торрент от каждого клиента.
Для всего архива это будет:
5000 постоянных сидеров (сервера архива) + 500-700 пиров-клиентов = 40000 подключений в час и 30-35Мб трафика.

mno 26.02.2008 01:52

Логи включены, я их не выключал:
/var/log/apache2

mno 26.02.2008 01:54

Статистика примерно такая:

Цитата:

91.76.56.24 - - [25/Feb/2008:13:28:35 +0300] "GET /tracker/tracker.php/scrape?info_hash=J%df%05%fel%20%ff%ec%f1%b0%9f%c$
91.76.56.24 - - [25/Feb/2008:13:29:07 +0300] "GET /tracker/tracker.php/announce?info_hash=J%df%05%fel%20%ff%ec%f1%b0%9f$
92.113.213.65 - - [25/Feb/2008:13:29:24 +0300] "GET /tracker/tracker.php/announce?info_hash=J%df%05%fel%20%ff%ec%f1%b0%$
91.77.129.187 - - [25/Feb/2008:13:29:35 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0%$
92.113.213.65 - - [25/Feb/2008:13:29:59 +0300] "GET /tracker/tracker.php/scrape?info_hash=J%df%05%fel%20%ff%ec%f1%b0%9f$
212.1.104.228 - - [25/Feb/2008:13:30:40 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0%$
200.121.214.101 - - [25/Feb/2008:13:30:44 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B$
212.1.104.228 - - [25/Feb/2008:13:31:09 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0%$
212.1.104.228 - - [25/Feb/2008:13:31:19 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0%$
93.81.87.248 - - [25/Feb/2008:13:32:05 +0300] "GET /tracker/tracker.php/scrape?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0%9F%$
91.76.56.24 - - [25/Feb/2008:13:32:13 +0300] "GET /tracker/tracker.php/announce?info_hash=J%df%05%fel%20%ff%ec%f1%b0%9f$
212.1.104.228 - - [25/Feb/2008:13:32:38 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0%$
69.149.220.243 - - [25/Feb/2008:13:32:46 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0$
212.1.104.228 - - [25/Feb/2008:13:32:48 +0300] "GET /tracker/tracker.php/announce?info_hash=J%DF%05%FEl%20%FF%EC%F1%B0%$
91.76.56.24 - - [25/Feb/2008:13:32:48 +0300] "GET /tracker/tracker.php/announce?info_hash=J%df%05%fel%20%ff%ec%f1%b0%9f$
89.176.231.200 - - [25/Feb/2008:13:33:13 +0300] "GET /tracker/tracker.php/announce?info_hash=J%df%05%fel%20%ff%ec%f1%b0$
89.176.231.200 - - [25/Feb/2008:13:33:14 +0300] "GET /tracker/tracker.php/scrape?info_hash=J%df%05%fel%20%ff%ec%f1%b0%9$
91.77.122.33 - - [25/Feb/2008:13:35:00 +0300] "GET /tracker/tracker.php/announce?info_hash=%87a%a72%e4a%29%e4%c6%c5%09%$
91.77.122.33 - - [25/Feb/2008:13:35:00 +0300] "GET /tracker/tracker.php/announce?info_hash=%7d_%98R%de%c1bE%d2%1f%c7%d5$
91.77.122.33 - - [25/Feb/2008:13:35:00 +0300] "GET /tracker/tracker.php/announce?info_hash=%92%1cC%88%3e%22%05%d8%1bA%8$

mno 26.02.2008 01:55

Перенести на иной порт не будет сложно, и сделать редирект с /announce на наш путь должно быть не сложно... хотя, не уверен если треккеры поймут редирект... нужно будет подумать как это через Апачи сделать...

ArjLover 26.02.2008 02:04

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

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

И приближается самый интересный вопрос. Сейчас у нас полностью закрытый трекер, точнее наоборот. Нет. :) У нас трекер без регистрации, но и без возможности добавлять в него свои торренты. Я бы хотел видеть такую возможность для зарегистрированных участников форума. Надо будет писать свои скрипты? Как минимум хак форума для вытягивания его регистрации и для добавления инфы в базу трекера...

P.S. mno, спасибо, глянул лог - ответы просто копеечные, ни про какие килобайты речь не идет или 72 байта или 200-300 байт. Длина урла больше. :) А частота запросов уже впечатляет.

AlekseyS 26.02.2008 02:09

ArjLover, а с каким адресом анонса трекера генеряться или будут генериться .torrent-файлы?

ArjLover 26.02.2008 02:11

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

mno 26.02.2008 02:24

Да, там все под Апачи, так что стоит только правильно написать Rewrite. Только, почему порт 55555? Вроде стандарт 2710? Думаю что есть смысл наш треккер поставить под отделный vhost? А все остальное (т-е, БД админку) держать под настоящим хостом?

По поводу заброса всего в админ через cURL, я ща на это гляну. Там будет два/три этапа:

1. логин через POST: http://tp3.rtcomm.ru/tracker/adminis...ogin_check.php
2. сохранить сессийную инфо, передать назад (т-е: SESSION_ID)
3. забросить новый файл через POST: http://tp3.rtcomm.ru/tracker/administration/bta_add.php

Вроде не так плохо? :)

Turtle 26.02.2008 02:33

Цитата:

Сообщение от ArjLover (Сообщение 35658)
дизайн-бы кто переделал...

Ты скажи, что конкретно сейчас не так, по-твоему?

По-моему:

1. Название фильма слишком мелкое, теряется в углу, я его просто не вижу.

2. Размер шрифта инфо мелкий.

3. Нет ссылок на FAQ и форум, а которые есть — тоже не видны, т.к. за нижней границей страницы, да ещё и слишком крупный шрифт.

Если ты про это, то я немного поверчу в таком направлении, и покажу, что получилось.

А про новый дизайн варианта с базой можно будет говорить, как только оживёт форма оператора — просто поля посчитать, их тип, и т.д... :)

ArjLover 26.02.2008 02:39

mno, да, но все же это СКРИПТ. Кто его сможет изобразить? я крайне слаб в сессиях. :(

да стандарт вроде 2710, но у большинства, кстати, он висит на 80.

Что-то перед самым запуском мне никак не дают покоя эти толпы таблиц. Может имеет смысл глянуть на другие трекеры? Все же таблица-файл - это крайне не оптимальная структура. У меня наконец-то появилось понимание принципов работы трекера и в общем-то незатейливая штука во всей системе - можно попробовать сейчас один заменить на другой. Главное что вся остальная система останется как мы ее задумали и разработали.


Часовой пояс GMT +3, время: 11:06.

vBulletin® Version 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot