На Новый Год состоялся релиз
TorrentPier Cattle.
Многие популярные трекеры рунета, включая NNMClub, оперируют на данном движке, хоть они и давно не обновлялись.
Спустя несколько месяцев разработки, рады вам сообщить о переходе на PHP 8.1, поддержке BitTorrent v2, исправленных уязвимостях, и других новых функциях, которые последуют в этой статье.
Начнём с
BitTorrent v2 (
статья на русском). Это следующая версия протокола BitTorrent, которая имеет ряд улучшений:
- Так как хеш каждого файла вшит в торрент файл, клиенты не тратят трафик на скачивание дубликатов.
- Хеш дерево Меркля и вложенность структуры папок, позволяет сократить размер торрент файлов.
- Благодаря хеш дереву, для проверки на битость части файла, необходимо скачать лишь 16Кб листа, раньше приходилось скачивать вcю часть.
- За счёт выравнивания частей (BEP-47), данные каждого файла начинаются на новой части, таким образом при скачивании отдельных файлов, пользователям не приходится скачивать и хранить часть других файлов, это файлы ."parts", ".dat" и т.д.
- Можно скачивать раздачу без дубликатов файлов (станет возможным на следующей версии торрент-библиотеки libtorrent).
В движке реализована отдельная страница для показа информации о содержимом v2 поддерживаемых торрент файлов, таких как клиент, дата создания, имена файлов, их хеши. Это позволяет поисковикам кешировать эту информацию, как в DHT индексаторах, что поможет вашим пользователям находить отдельные файлы по их хешу, имени файла, направляясь на ваш ресурс.
Как это выглядит:
Страница с раздачей и ссылкой на этот список:
Список:
Из улучшений анонсера:
- Поддержка IPv6 (по стандарту BEP 7), форум его тоже теперь поддерживает.
- Переработанная система кеша (анонсер+скрейп), для значительного снижения нагрузки на трекер.
- Multi-scrape (BEP 48), позволяет торрент-клиентам узнавать количество раздающих/скачивающих без обращения к анонсеру. Скрейп не затратен как анонсер, так как не записывает в базу данные и даёт возможность торрент-клиентам показывать реальную статистику, помогать в раздаче, если соотношение раздающих/скачивающих требует этого.
- Показ полных скачиваний (сколько раз этот торрент скачали, со всеми файлами).
- Показ торрент-клиентов пользователей на статистиках раздач.
- Показ последнего раздающего бывшего на раздаче.
- Показ числа торрент-клиентов в статистике трекера администраторской панели, также возможность гибкой корелляции версий этих клиентов.
- В анонсере список пиров сортируется с приоритетом на скачивающих, что позволяет улучшить связность роя.
Из других улучшений (некоторые из этих функций были модификациями, которые переработаны и включены в движок по умолчанию):
- Закрыты две критические уязвимости.
- Инвайт коды по событиям.
- Кнопка "Спасибо".
- Поддержка .webp изображений.
- Поддержка IDN доменов.
- Бан торрент-клиентов или их версий.
- Увеличена длина passkey (предыдущие будут работать).
- Раздачи можно просматривать и скачивать напрямую с Atom (настраиваемо в config.php).
- Инфо-хеши замороженных раздач теперь не показываются, их нельзя скачать, даже через dl.php.
- Показ информации о бан-статусе пользователя в теме и профиле.
- Флаги стран в профиле.
- И многое другое.
Установка движка теперь очень простая, он поддерживает composer и нетребователен к ресурсам, любой желающий может создать свой публичный/приватный торрент-трекер.
TorrentPier —
первый торрент-движок, который поддерживает BitTorrent v2 из коробки.
Мы не пошли по общему методу "и так работает".
Я также надеюсь, что эти несколько месяцев баг фиксов и улучшений кода будут полезны администраторам ресурсов.