Доброго времени суток.
Вопрос как бы несовсем в раздел. Но связан с ретрекером.
На основе распространённого скрипта в интернете сделал ретрекер. Юзеры будут друг друга находить.
Так же в сети есть файловый сервер, обменник. Народ качает одно и тоже. Некоторые люди выкладывают скачаное на этот сервер. Однако остальные продолжают качать из инета. На файловом сервере уже естественно остаются только файлы. Никаких .torrent файлов нет.
Существует ли вообще такой клиент, который сможет просканировать папку\папки и понаделать запросов на ретрекер, что у него есть файлы с такими то хешами и он может их раздавать?
Даже не знаю, что толком в поисковике то написать по этому вопросу. В теории протокола причин, почему это невозможно, не увидел.
Хеш ведь создаётся из всего файла в целом?
Да, хеш создаётся из файла, но я таких программ не встречал.
Но думаю не сложно сделать скрипт который пройдётся по всем файлам и для каждого сделает .torrent файл и положит его рядом...было бы желание.
Желание есть. Впринципи возможет и такой вариант, особо даже переписывать ничего не придётся... А вообще крутились мысли ковыряния какого нибудь простого клиента с целью переписывания для подобных вещей.
Подскажите пожалуйсто от чего зависит хеш файла.
Сейчас пытался провести эксперемент.
На одной машине есть оригинальный torrent файл на видео файл.
Закачал видеофайл на сервер.
Через createtorrent сделал на него torrent файл.
В качестве трекера прописал только ретрекер свой. Открываю mysql. Раздача появилась в таблице, однако хеш не совпадает с тем, который ожидает другой клиент.
По началу имя файлы было другим, переименовал в оригинальное, хеш снова изменился, но не совпадает с ожидаемым.
Тут видимо всё зависит напрямую от количества кусков файлов. Сейчас заметил что в 2 раза отличается. в одном торенте куски по 512 кб в другом по 256 кб.
Похоже вся идея накрывается медным тазом? Или я чтото недопонимаю?
Что-то не то видимо сделали. Хеш одного и того же файла должен быть одинаков, иначе затея с ретрекерами провалилась бы не начавшись.
ТЕ по вашему даже от имени файла его хэш не будет изменятся?
Почитал в интернете, получается в торрент файл пишут не общий хэш всего файла, а хэши кусков.
А то что отображается в клиенте и в трекере это некий хэш хэшей.
Но опять же не видно связи с именем файла, а она есть!
Думаю лучше всего посмотреть алгоритм в исходнике одной из прогорамм для создания torrent файлов, например createtorrent-1.1.4
Процесс создания torrent файла для дирриктории рассматривать не будем.
В общем при работе с одним файлом обращение идёт сразу в int create_from_file( const char* src, FILE* f, long long fsize, int piecelen )
Информация об оригинальном торрент файле
Появления этого файла на месном ретрекере сейчас ждёт торрент клиен с домашнего компа
Извините что сбил вас с толку и не поправил - конечно же есть зависимость от имени и от размера кусков.
Под "одним и тем же файлом" я имел ввиду абсолютно один и тот же файл, включая и имя.
Вы чем торенты создаёте? Есть ли настройка для автоматического выставления размера куска - если есть то при её использовании думаю можно с большим шансом попасть на нужный хеш.
Однако всё меняет проблема с именами - т.к. у вас файлохранилище то имена скорее всего отличаются от тех, что висят на торентах...вобщем да, не ясно как это будет себя вести.
Можно попробовать поднять торент клиента на файловом сервере который будет раздавать только на локалку, но это уже на пляски с бубном похоже...
Имена файлов отличаются. Юзеры любят их переименоввывать.
А поднятие торрент клиента на сервере это я собственно и планировал сделать, а для этого клиента, скрипт по средством createtorrent создавал бы torrent файлы.
Но вероятность совпадения хэшей при таком количестве зависимостей ничтожно мала.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)