Торруст-Actix Трекер
Описание проекта
Torrust-Actix Tracker — это легкий, но невероятно мощный и многофункциональный BitTorrent Tracker, созданный с использованием Rust.
В настоящее время он активно используется на https://www.gbitt.info/.
Этот проект возник на основе кода Torrust-Tracker, первоначально разработанного Миком ван Дейке и впоследствии разработанного Power2All в качестве альтернативы OpenTracker и другому коду трекера, доступному на GitHub.
Функции
Реализованные BEP
- Шаг 3: Протокол BitTorrent
- Шаг 7: Поддержка IPv6
- BEP 15: протокол отслеживания UDP для BitTorrent
- BEP 23: Трекер возвращает компактные списки пиров
- BEP 41: Расширения протокола отслеживания UDP
- BEP 48: Расширение протокола отслеживания: очистка
Начиная
Вы можете получить последние двоичные файлы из выпусков или следовать инструкциям по установке с нуля, приведенным ниже.
Установить с нуля
- Клонируем репозиторий:
git clone https://github.com/Power2All/torrust-actix.git
cd torrust-actix
- Соберите исходный код с помощью Rust (убедитесь, что у вас установлен Rustup со стабильной веткой)
Использование скрипта сборки
Использование
Запустите код, используя аргумент --help
для использования в вашей среде:
./target/release/torrust-actix --help
Прежде чем вы сможете запустить сервер, вам необходимо либо отключить постоянство, а когда оно включено, убедиться, что ваша база данных создана и работает. См. приведенный выше аргумент помощи, как исправить настройки по вашему желанию.
Представлен пользовательский интерфейс Swagger, который, если он включен в конфигурации, доступен через API через /swagger-ui/
.
Введена поддержка Sentry.io, ее можно включить в конфигурации и URL-адресе, куда отправлять данные.
Журнал изменений
v4.0.4
- Дальнейшая реализация Sentry (ведение журнала трассировки)
v4.0.3
- Исправление путей объявлений и очистки, поскольку это неправильный путь.
- Исправление различных мелких ошибок, которые не нарушают работу приложения, но требуют более тщательного устранения.
- Добавлена поддержка Sentry.io SaaS и самостоятельной установки.
- Готовится работа над версией v4.1.0, в которой будет реализована поддержка LUA для промежуточного программного обеспечения.
v4.0.2
- Добавлена опция, согласно которой система удалит данные из базы данных.
- Добавлены переменные обновления для белого/черного списка и таблиц ключей.
- Переименование «базы данных», которое должно быть «таблицами».
- Множество исправлений и ошибок, на которые я наткнулся.
v4.0.0
- Полностью переработан код трекера, для удобства чтения.
- Перешел на Actix v4, тем самым переведя это программное обеспечение на версию v4.0.0.
- Перестроен и переработан способ создания файла конфигурации (вам необходимо указать команду в качестве аргумента).
- Переделана вся система баз данных, протестирована с использованием последних доступных на данный момент версий.
- API прошел большую работу и протестирован.
- Представлен пользовательский интерфейс Swagger в качестве тестирования и документации.
- В дальнейшем было внесено множество улучшений в скорости и производительности.
- Добавлена функция импорта и экспорта, позволяющая выгружать или импортировать файлы JSON, что удобно при создании резервной копии из существующей базы данных или при переходе на другой механизм базы данных.
- Удален WebGUI, он устарел и бесполезен.
v3.2.2
- Значительно обновлены версии библиотеки, включая исправления безопасности.
- Исправлены изменения в библиотеках для правильной работы.
- Настроен код непостоянства, чтобы использовать меньше памяти.
v3.2.1
- Обновленные версии библиотеки, включая исправления безопасности.
- Исправлена ошибка в обработчике PostgreSQL.
- Какое-то забытое название от Торраст-Аксума до Торраст-Актикса.
v3.2.0
- Увеличенные версии библиотеки.
- Изменен способ планирования с помощью потоков: он может блокировать и замедлять публичные трекеры при высокой активности.
- Настройка использования базы данных SQLite3 и потребления пространства базы данных.
- Полный пересмотр того, как торренты и пиры используются в памяти. Использование карты пропуска перекрестных лучей для потокобезопасного совместного использования памяти без блокировки.
- Некоторые различные улучшения производительности кодирования, читаемости и проверки файлов.
- Заменен веб-фреймворк Tokio Axum на Actix, причина: отсутствовали важные функции, такие как тайм-аут при подключении, отключении, чтении и записи, а поддержка была слабой.
- Репозиторий GitHub переименован с torrust-axum на torrust-actix.
- Добавление поддержки отслеживания пользователей с помощью дополнительного ключа.
v3.1.2
- Увеличенные версии библиотеки.
- Добавлен файл Кодекса поведения, поскольку он необходим некоторым проектам с открытым исходным кодом.
- Добавлена функция переключения обслуживания в API и WebGUI.
- Файл конфигурации не создается, если он не существует или содержит недопустимые данные, если это не принудительно с помощью аргумента --create-config.
- Исправлены различные мелкие ошибки.
v3.1.1
- Увеличенные версии библиотеки.
- База данных для SQLite3, MySQL и PostgreSQL теперь корректно работает со всеми таблицами и будет использоваться, если она включена.
- У UDP была проблема в IPv4, исправлен код для правильного анализа массива байтов.
- Очистка и рефакторинг некоторого избыточного кода.
- Добавлены небольшие проверки там, где это необходимо для предотвращения ошибок.
v3.1.0
- Система белого списка: вы можете включить эту функцию, чтобы разрешить использование только хэшей торрентов, указанных вами в базе данных, или добавлять их через API.
- Система черного списка: вы можете включить эту функцию, чтобы запретить использование торрент-хэшей, указанных вами в базе данных, или добавить их через API.
- Система ключей: вы можете включить это, чтобы разрешить отслеживание только тогда, когда задан активированный «ключевой» хеш (тот же, что и info_hash, 20 байт или 40 шестнадцатеричных символов). Ключи с тайм-аутом, равным нулю «0», будут постоянными и не будут удалены при очистке.
- WebGUI: API имеет доступный веб-интерфейс, доступ к которому можно получить через https://your.api:8080/webgui/ и указав правильный ключ API, который вы настраиваете в файле конфигурации.
- Настраиваемую структуру базы данных можно указать в файле конфигурации.
- Система также теперь доступна через Docker Hub по адресу https://hub.docker.com/r/power2all/torrust-axum.
v3.0.1
- Исправления ошибок
- Добавлена поддержка SQLite3
- Добавлена поддержка MySQL
- Добавлена поддержка PostgresSQL.
v3.0.0
Начальная версия Торраст-Аксума.
Кредиты
Этот Torrust-Tracker был совместной разработкой Nautilus Cyberneering GmbH, Dutch Bits и Power2All. Также спасибо Наиму А. и Greatest-Ape за некоторые части кода Torrust-Tracker. Этот проект (Torrust-Actix) создан Power2All с нуля.