Торрент – это довольно мощный инструмент для обмен файлами. Но так как он был разработан гиками и для гиков, то порой очевидные вещи, ожидаемые пользователями, не реализованы или в протоколе или в торрент-клиентах, или на самих трекерах. Здесь я собираю эти нюансы.
Никто не будет спорить, что чем больше пользователей раздает свои файлы, тем лучше для трекера. Да и пользователю хорошо, если у него рейтинг низкий. Но пользователи имеют привычку перемещать скачанные файлы. Можно конечно, изначально размещать файл туда, куда надо, но не всегда заранее знаешь, в какую папку размещать, если папки организованы по принципам качественной оценки материалов.
А как только файл перемещается, нужно соответственно, и в торрент-файле менять расположение файла.
Дублирование не всем нравится, и многие просто забывают или не хотят это делать.
В результате материалы пропадают с раздачи.
А ведь решение достаточно простое – по запросу пользователя проиндексировать всю папку со скачанными файлами и автоматом найти новое расположение файлов по хэш-кодам, хранящимся в торрент-файле.
Здесь есть маленькая техническая закавыка, которую мне пришлось лично выяснить на форумах: pornolab и rutracker.
Дело в том, что торрент-файлы не хранять хэш всего файла, а хранят хэш только отдельных частей этого файла.
Но это не крест на идее, на самом деле, все решаемо.
Для начала нужно создать общий индекс всех файлов в папке на диске по размеру и расширению.
Далее нужно для каждого торрент-файла сопоставить по этим параметрам файлы из папки на диске. Обычно размер и расширение – не уникальное, но сильно ограничивающее область поиска сочетание. Таким образом, на 1 торрент-файл придется не более 10 файлов на диске.
После этого можно рассчитать хэш частей этих файлов так, как они расчитываются для торрента и определить, какой из этих файлов и является искомым.
Данная схема поддерживает даже переименование файлов!
Я высказался об этом в ветке форума muTorrent. Сначал администратор подумал, что решения нет и поместил мое письмо в корзину. Но я объяснил, что идея рабочая и имеет место быть!
У всех торрент клиентов есть кнопка паузы. Но она действует только на выделенные файлы, при этом меняя им статус закачки. А иногда хочется просто остановить всего торрент-клиента целиком. Например, когда я смотрю видео с Youtube и нуждаюсь в максимальной скорости канала, я закрываю торрент-клиента, а когда заканчиваю смотреть – запускаю по новой. Так мне приходится делать только потому, что нет кнопки глобальной приостановки.
Высказал свое пожелание в ветке форума muTorrent.
Как оказывается, во всем интернете нет технологии, позволяющей передать файл напрямую с компьютера А на компьютер Б без лишних телодвижений. Загрузку файла на сервер с последующим его скачиванием мы не рассматриваем – это долго.
Единственная возможность – создать раздачу на трэкере и сообщить о ней получателю. Но и это долго.
Было бы хорошо, если бы можно было раздавать напрямую нескольким пользователям, при этом разрешая или не разрешая им получение файлов, без создания торрента. Это автоматически гарантировало бы простоту передачи файлов, возможность докачки при обрыве и т.п.
Понятно, что без сервера, который связывал бы получатели и отправителя, помогал бы им найти друг друга, не обойтись, в данном случае сервером вполне мог бы быть сервер коммуникаторов типа ICQ, QIP и т.п.
Они и сейчас умеют передавать небольшие файлики, правда не знаю, по p-2-p или все же сначала загружают файл к себе на сервер. Но они не умеют передавать большие файлы и прерывают передачу при обрыве связи, не продолжая передачу после восстановления обрыва.