Ну что мне сказать... :)
Да, вроде bnbt тоже не плохой. Впринципе, я не против поменять треккер еще раз или еще раз. С xbtt все очень просто - вставляешь хеш в БД и все. Я не знаю, что нужно будет, что-бы вставить торрент файл в BNBT. Я могу написать cURL скрипты что-бы это делать. Похоже, что BNBT вообще не использует БД, а если использует, то свой внутренний формат. Похоже, что-бы добавить торрент, мы должны будем это делать через веб консоль. Увы, но в Gentoo нету BNBT. Хотя, это может и не столько важно быть, если мы разсматриваем передвинуть все это на FreeBSD со временем (а может и раньше чем позже). На чем-же он все-таки написан?? Немножко смущает, что документация не обновлялась с 2004 года. Хотя она ОООЧЕНЬ хорошо написана по сравнению со всеми остальными треккерами, что я видел. Еще -- если генерация торрентов уже пошла, то может быть важно иметь возможность поменять порт на 2710. По поводу иных треккеров, что вы предлагали, то я честно на них не смотрел. Немножко недоверие к тем, что написаны специально для какой-то проблеммы (например, как плаг-ин в систему пользователей vBulletin) потому-что не уверен, если они серьезно сделаны, или побыстрее что-бы добавить эту возможность. Хотя я могу быть не прав. |
Turtle, да, мы это помним :) Просто сейчас мы еще на стадии самой установки. Сначала хотели просто поднять на текущие фильмы. А потом уже добавлять все остальные возможности (так-как это делать нужно будет, скорее всего, вручную).
|
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 назад и написание идет с сильным скрипом... |
Погодите, ну если у нас теперь проблема сместилась в сторону потрошения бинарных файлов, то от этого не легче. А какой штатный способ добавления у этого трекера? может через него будет проще?
на данный момент прохэшилось половина мультиков, а фильмики починить пока не удалось. :( |
Штатный для XBTT - insert в таблицу скуля. А для этого нужно знать хэш...
|
Мне кажеться, что если даже мы перейдем на BNBT, то будет проблемма примерно такой-же сложности (нужно будет cURLом подключиться к треккеру и передать ему файл, хотя это можно будет делать другим путем тоже, типа, nfs).
|
Погодите. я думаю сравнить файл и то что лежит в базе не так уж сложно. Наверняка с первого взгляда будет понятно что хэш начинается с какого-то места файла, вот и все. Залить пару торрентов и посмотреть. раскусить файл на перле - одна строчка.
А тем временем хэши мультов сделались и я их скормил mldonkey, самое забавное что он сразу начал их обрабатывать. при это он линки файлов переносит в директорию old, торренты вроде остаются на месте. Делает не быстро, минут 10 у него на это уйдет.. всю папку торрентов примено 2500 штук перелил в корень сервера на трекер. Mno, принимай. :) |
Хэша в .torrent-файле нет в чистом виде, он вычисляется на основе части файла, которую, можно найти по шаблону, в принципе (для файлов созданный createtorrent), только нужно использовать "жадный" алгоритм поиска по шаблону. И работать с файлом как с бинарными данными.
Я завтра постараюсь закончить свою утилитку для подсчета хэша, но гарантий не даю что успею... Для нее нужен будет скрипт, который, используя утилитку, пройдется по .torrent-файлам и загрузит их хэши в базу скуля... ArjLover, в mlDonkey битторрент модуль настроен на одновременную отдачу такого количества торрентов? P.S. Наткнулся на свежую ветку форума про mlDonkey - написано что битторрент сеть в нем реализована не сильно хорошо и дает большую нагрузку на машину, так что как запустится сидирование такого количества торрентов нужно будет внимательно анализировать нагрузку на сервера, чтобы не довести их до стопора из-за mlDonkey... |
Я ничего делать с новым треккером не должен - просто внести все хеши в бд. На этот раз, я это сделал простым выходом. Но напишу скрипт который будет подсчитывать эту инфо и потом все будет еще проще. Думаю сейчас все должно работать.
|
Вложений: 3
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 |
Я все сделал что-бы можно было использовать эти скрипты. Теперт, MySQL слушает на 81.176.66.198, НО НЕ слушает на 127.0.0.1! Он может слушать только на один IP.
Так что в скриптах, используйте 81.... как адрес базы. Юзер и пароль я вам разослал приватными сообщениями. |
Это ты как так сделал что он только один айпи слушает? :) :)
я вообще убрал bind из конфига, теперь слушает так 0.0.0.0:3306 0.0.0.0:* LISTEN секурити потом внутренними правилами закрутим. я сейчас попробую влить все мультовые торренты... |
А оки... а то он ранше толко на 127.0.0.1 слушал...
|
Как успехи? Вижу что еше не виложил... проблеммы?
|
AlekseyS, спасибо за все скрипти! У меня в последниые две недели хроническиы не хватало времени на все :(
|
ГЫ: я отключил анноунсе лог на треккере, так кок он просто ел память... с одним торрентом, он скушал 4.7МБ за пару днеи... И я еше витер тот торрент, так как он бил тестовои... БД готова для впихивания торрентов! Я потом еше скопирую мои скрипт, что делаыет еженочной бекап. А то перевпихиват все может быть болезнено если база полетит...
|
Торренты влил, но трекер пока отдает оффлайн-меседж и все. Ждем mno...
AlekseyS, ты еще и герой шела! красивый скрипт! мда, sh, прошел как-то мимо моей молодости весь навык в перл ушел. :) mno, да таблица была весьма размерная. тоже неприятно удивила. |
Часовой пояс GMT +3, время: 17:41. |
vBulletin® Version 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot