Архив | Об архиве | FAQ | New BAN List | Полезные ссылки | Друзья архива | Архив новостей |
|
Регистрация | Справка | Правила форума | Поиск | Сообщения за день | Пользователи | Календарь |
Приёмная ArjLover-a Послания и пожелания по работе Архива |
|
Опции темы | Опции просмотра |
|
||||
AlekseyS, ты просто герой опенсорса.
думаю нам не стоит совсем уж размазывать наши усилия по трекерам. По-моему требования простые, попробую подбить: 1) поддерживать весь архив, легко добавлять и удалять торренты на автоматической обработке. 2) Иметь возможность добавления торрента из под аккаунта форума. Я надеюсь сделать эту функцию без модерации, просто немного расширить правила форума. 3) Иметь некую статистику чтобы понимать картину происходящего - это я так понимаю пишется своими скриптами. Если последний, который на порту 2710 (запутался в названиях) заработает - пусть работает. Нет - будем пробовать следующий. Тем временем я сгенерил торренты для всех фильмиков, на этом сервере отвалился один интерфейс после апгрейда ОС, но это помогло побыстрее прохэшить. Упс, тестирование откладывается, из-за потери этого интерфейса сервер почему-то не видит других серверов в своей сети. Неудачно получилось. Ладно буду чинить и хэшировать на других серверах... |
|
|||
Герой это конечно перебор, тут все проще - я в свое время изучал как и что в битторренте и общался с несколькими трекероводами на тему что у них и на чем работает. Так что просто в тему пришлись прошлые знания.
Значит подведу небольшой итог того что я выяснил: XBTT под freebsd все таки РАБОТАЕТ! Мой косяк был, он мне белым по аглицки писал что ему надо, а я не понял его сходу, как в пословице: смотришь в книгу, видишь... буквы... Так что буквально 10 минут назад провел проверку работы XBTT под фрей - торрент добавился, клиент его увидел, статистику в скуле обновил, то-есть все базовые вещи отработали нормально. Так что с движком трекера стало все ясно. (по крайней мере пока что, если что будем смотреть на BNBT, ArjLover правильно высказался: не пойдет, возьмем другой и будем пробовать с ним. Это меня вечно заносит - вижу код и просыпается в душе давно бездействующий программер... :-( Начинается новый этап работ - добавление хэшей в базу: 1. Для этого нам нужно эти самые хэши получить из .torrent-файлов, теоретически я знаю как это делается, а вот практически... консольных программ, которые это могут сделать я не видел, кроме одной грубой и недоделанной поделки... Что скажете? 2. Можно попробовать использовать, для начальной загрузки, режим авторегистрации торрентов на трекере и просто добавить торренты в mlDonkey. mlDonkey подключится к трекеру в первый раз и он в себя сам загрузит все хэши, потом выключим авторегистрацию и трекер продолжит работать в обычном режиме... Это кривой, но простой и быстрый путь. Первую партию можно конечно загрузить при помощи режима авторегистрации, а вот дальше по любому придеться научиться получать хэши из .torrent-файлов... |
|
||||
Цитата:
Цитата:
|
|
|||
mno, почти так. Содержимое .torrent-файла это несколько записей вида "имя=значение" в определенном формате. Несколько значений могут быть собраны в одну секцию, по большому счету такая секция всего одна info. В ней несколько записей:
имя файла= размер файла= размер "куска"= sha1 всех "кусков"=sha1(кусок1)+sha1(кусок2)+... В общем так. Хэш торрента это sha1 всей info секции. можно открыть любой файл, созданный createtorrent (она создает полей по минимуму, другие программы добавляют дополнительные поля): 1. Находим строчку "4:info" - это название инфо секции. 2. Сразу за ней идет символ "d" - с этого символа начинается сама секция, это первый символ который входит в расчет sha1. 3. В конце файла будут два символа "ee" - первый из них это как раз конец инфо секции, а последний это конец .torrent-файла. То-есть чтобы подсчитать хэш торрента нужно взять кусок .torrent-файла начиная с символа d и заканчивая предпоследним "e" и прогнать его через sha1. Это алгоритм. Начал писать программу, для его реализации, но я компилятор последний раз запускал лет 5-7 назад и написание идет с сильным скрипом... |
|
||||
Погодите, ну если у нас теперь проблема сместилась в сторону потрошения бинарных файлов, то от этого не легче. А какой штатный способ добавления у этого трекера? может через него будет проще?
на данный момент прохэшилось половина мультиков, а фильмики починить пока не удалось. Последний раз редактировалось ArjLover, 27.02.2008 в 17:45. |
|
||||
Погодите. я думаю сравнить файл и то что лежит в базе не так уж сложно. Наверняка с первого взгляда будет понятно что хэш начинается с какого-то места файла, вот и все. Залить пару торрентов и посмотреть. раскусить файл на перле - одна строчка.
А тем временем хэши мультов сделались и я их скормил mldonkey, самое забавное что он сразу начал их обрабатывать. при это он линки файлов переносит в директорию old, торренты вроде остаются на месте. Делает не быстро, минут 10 у него на это уйдет.. всю папку торрентов примено 2500 штук перелил в корень сервера на трекер. Mno, принимай. |
|
|||
Хэша в .torrent-файле нет в чистом виде, он вычисляется на основе части файла, которую, можно найти по шаблону, в принципе (для файлов созданный createtorrent), только нужно использовать "жадный" алгоритм поиска по шаблону. И работать с файлом как с бинарными данными.
Я завтра постараюсь закончить свою утилитку для подсчета хэша, но гарантий не даю что успею... Для нее нужен будет скрипт, который, используя утилитку, пройдется по .torrent-файлам и загрузит их хэши в базу скуля... ArjLover, в mlDonkey битторрент модуль настроен на одновременную отдачу такого количества торрентов? P.S. Наткнулся на свежую ветку форума про mlDonkey - написано что битторрент сеть в нем реализована не сильно хорошо и дает большую нагрузку на машину, так что как запустится сидирование такого количества торрентов нужно будет внимательно анализировать нагрузку на сервера, чтобы не довести их до стопора из-за mlDonkey... Последний раз редактировалось AlekseyS, 28.02.2008 в 01:54. |
|
|||
mno, чего-то не понял я: трекер стоит в открытом режиме, но в базе у него вообще ничего нет...
А я тем временем закончил свою работу: 1. Программа thash - считает Хэш торрента и выводит его на stdout. 2. Скрипты regTF (добавляет) и unregTF (удаляет) - один или несколько торрентов из базы трекера, для подсчета Хэшей используют thash. В скриптах нужно настроить параметры доступа к базе mysql - хост, порт, пользователь, пароль и т.д. Тестировал работу thash и regTF/unregTF на FreeBSD 5.4 , mysql сервер с базой был запущен на другой машине в сети. Загрузка по сети шла довольно неспешно - для каждого файла вычисляеться Хэш и стартует по новый mysql-client... Но все равно добавление 1-го торрента укладывалось в 2-3 секунды. Так как загрузка такого количество торрентов разовая задача, оптимизировать ее я не стал. запуск всего процесса загрузки: find /multiki/BT -iname "*.torrent" | xargs ./regTF соотвественно find находит все .torrent-файлы в указанной папке и передает их с полными путями regTF или unregTF (если вдруг нужно будет массовое удаление с трекера). Программу и скрипты прикрепил. .txt и .zip добавил чтобы загрузить файлы на форум. thash собирается как обычно: tar xvf thash.tgz cd thash ./configure make make install Последний раз редактировалось AlekseyS, 29.02.2008 в 10:24. |
|
||||
ГЫ: я отключил анноунсе лог на треккере, так кок он просто ел память... с одним торрентом, он скушал 4.7МБ за пару днеи... И я еше витер тот торрент, так как он бил тестовои... БД готова для впихивания торрентов! Я потом еше скопирую мои скрипт, что делаыет еженочной бекап. А то перевпихиват все может быть болезнено если база полетит...
|