[О блоге] [наверх] [пред] [2022-11-25 15:33:42+03:00] [a791ca51f077b8ce7edac9c0294c20f5849d491d]
Темы: [bittorrent]

github.com/anacrolix/torrent/cmd/torrent

https://github.com/anacrolix/torrent
Решил посмотреть какие вообще ещё варианты для BitTorrent-а то бывают.
Сразу отметаются конечно же все кто GUI, а также кто использует JS-based
WebUI. Transmission я уже не раз зарекался даже пытаться пользоваться.
Уже не помню конкретику, но блог говорит о его ресурсоёмкости чудовищной
(3ccff5a1e1f61e103b92dde4fc2e01c4affb9268,
59862ce0e889b45d6872ba974d906312bfbf0a01).
rTorrent идёт нафиг из-за hardcode-а максимального размера файлов -- я
помню что не мог скачать некоторые из-за этого
(3ccff5a1e1f61e103b92dde4fc2e01c4affb9268).
aria2... не без проблем (35f498b93a95b1d620889197042db8a941aa0428),
хотя использую её уже не один год (59862ce0e889b45d6872ba974d906312bfbf0a01).
И мне уже хочется обязательно иметь DHT, PEX и полную поддержку IPv6 (и
при общении с трэкером и с DHT). Часть клиентов из-за этого отметена.
Например изначально я использовал ctorrent -- он работал, без проблем,
но даже UDP трэкеров не поддерживал, а только чистый оригинальный
классический BitTorrent протокол.

В итоге нашёл я только anacrolix-овскую реализацию на Go. Причём в ней
явно сказано что она является библиотекой, а всякие cmd/* в ней только
для примера использования. Готовых и устраивающих меня клиентов нет. Но
cmd/torrent из её состава уже сейчас годится и для скачивания и для
seeding-а вполне. Есть у меня тут один проблемный торрент, единственного
peer-а которого aria2 банит -- тут работает без проблем. В SQLite3 или
BoltDB хранит состояние скачанных кусочков. Параллельно может и качать
при проверке целостности торрента. Кроме всех фич, даже uTP поддерживает.

Пока правда полное отсутствие frontend-а к нему, кроме просто печати раз
в несколько секунд прогресса скачивания. Эх... неужели снова, вновь и
опять придётся писать самостоятельно это всё? Если для aria2 хотя бы
просто надо переиспользовать её RPC (0c40b3f99ee554b301bd40b1b4d4c6390c746834),
то тут уже все хотелки самостоятельно придётся добавлять. Благо это всё
на Go и за десять секунд я нашёл например где задаётся список DHT
bootstrap нод.

    [оставить комментарий]