Rastreador Torrust Actix
Descripción del proyecto
Torrust-Actix Tracker es un BitTorrent Tracker liviano pero increíblemente poderoso y rico en funciones creado con Rust.
Actualmente, se utiliza activamente en https://www.gbitt.info/.
Este proyecto se originó a partir del código Torrust-Tracker desarrollado originalmente por Mick van Dijke, desarrollado posteriormente por Power2All como alternativa a OpenTracker y otros códigos de seguimiento disponibles en GitHub.
Características
MPA implementadas
- BEP 3: El protocolo BitTorrent
- BEP 7: Compatibilidad con IPv6
- BEP 15: Protocolo de seguimiento UDP para BitTorrent
- BEP 23: Tracker devuelve listas de pares compactas
- BEP 41: Extensiones del protocolo de seguimiento UDP
- BEP 48: Extensión del protocolo de seguimiento: Scrape
Empezando
Puede obtener los archivos binarios más recientes de las versiones o seguir las instrucciones de instalación desde cero que aparecen a continuación.
Instalar desde cero
- Clonar el repositorio:
git clone https://github.com/Power2All/torrust-actix.git
cd torrust-actix
- Compile el código fuente usando Rust (asegúrese de haber instalado Rustup con una rama estable)
Usando el script de compilación
Uso
Ejecute el código usando el argumento --help
para usarlo en su entorno:
./target/release/torrust-actix --help
Antes de poder ejecutar el servidor, debe tener la persistencia desactivada y, cuando esté habilitada, asegurarse de que su base de datos esté creada y funcionando. Consulte el argumento de ayuda anterior sobre cómo arreglar su configuración como desee.
Se presenta la interfaz de usuario de Swagger y, cuando está habilitada en la configuración, se puede acceder a ella a través de la API a través de /swagger-ui/
.
Se introduce el soporte de Sentry.io, puede habilitarlo en la configuración y la URL donde enviar los datos.
Registro de cambios
v4.0.4
- Mayor implementación de Sentry (registro de seguimiento)
v4.0.3
- Arreglando rutas de anuncio y raspado, ya que es la forma incorrecta.
- Corregir varios errores más pequeños que no afectan la aplicación, pero que deberían manejarse mejor.
- Se agregó soporte para Sentry.io SaaS y configuración autohospedada.
- Preparando el trabajo para la versión v4.1.0, que introducirá soporte LUA para middleware.
v4.0.2
- Se agregó la opción de que el sistema eliminará datos de la base de datos.
- Se agregaron variables de actualización para la lista blanca/negra y las tablas de claves.
- Cambiar el nombre de la "base de datos" que debería ser "tablas".
- Me topé con muchas correcciones y errores.
v4.0.0
- Completamente reconstruido del código de seguimiento, para facilitar la lectura.
- Se trasladó a Actix v4, por lo que también se versionó este software a v4.0.0.
- Reconstruido y rehecho de la forma en que se crea el archivo de configuración (debe proporcionar el comando como argumento).
- Se rehizo todo el sistema de base de datos, se prueba con las últimas versiones disponibles en este momento.
- La API ha pasado por mucho trabajo y ha sido probada.
- Se introdujo Swagger UI como prueba y documentación.
- Se aplicaron muchas mejoras en velocidad y rendimiento.
- Se agregó la función Importar y Exportar, que volcará o importará desde archivos JSON, lo que resulta útil al realizar una copia de seguridad de su base de datos existente o al migrar a otro motor de base de datos.
- Se eliminó WebGUI, estaba desactualizado y no era realmente útil.
v3.2.2
- Se modificaron significativamente las versiones de la biblioteca, incluidos los parches de seguridad.
- Se corrigieron cambios en las bibliotecas para que funcionen correctamente.
- Se ajustó el código de no persistencia para usar menos memoria.
v3.2.1
- Versiones de biblioteca modificadas, incluidos parches de seguridad.
- Se corrigió un error en el controlador PostgreSQL.
- Algunos nombres olvidados de Torrust-Axum a Torrust-Actix.
v3.2.0
- Versiones de biblioteca modificadas.
- Se modificó la forma en que se realizaba la programación a través de subprocesos, lo que podría bloquear y ralentizar los rastreadores públicos con mucha actividad.
- Ajustar el uso de la base de datos SQLite3 y el consumo de espacio de la base de datos.
- Revisión completa de cómo se utilizan los torrents y los pares en la memoria. Uso de crossbeam skipmap para compartir memoria sin bloqueo y de forma segura para subprocesos.
- Algunas mejoras diversas en el rendimiento de la codificación, la legibilidad y la eliminación de archivos.
- Se reemplazó el marco web Tokio Axum para Actix, motivo: faltaban cosas críticas como un tiempo de espera para conectarse, desconectarse, leer y escribir, y el soporte era mediocre.
- Se cambió el nombre del repositorio de github de torrust-axum a torrust-actix.
- Agregar soporte de seguimiento de usuarios con una clave adicional.
v3.1.2
- Versiones de biblioteca modificadas.
- Se agregó un archivo de Código de conducta, ya que algunos proyectos de código abierto lo necesitan.
- Se agregó una función de alternancia de mantenimiento a API y WebGUI.
- El archivo de configuración no se genera cuando no existe o tiene datos no válidos, a menos que se fuerce con un argumento '--create-config'.
- Se corrigieron varios errores pequeños.
v3.1.1
- Versiones de biblioteca modificadas.
- La base de datos para SQLite3, MySQL y PostgreSQL ahora funciona correctamente con todas las tablas y se utilizará si está habilitada.
- UDP tuvo un problema en IPv4, arregló el código para analizar correctamente la matriz de bytes.
- Limpieza y refactorización de algún código redundante.
- Se agregaron algunas pequeñas comprobaciones cuando era necesario para evitar errores.
v3.1.0
- Sistema de lista blanca: puede habilitar esto para permitir que solo se utilicen los hashes de torrent que especifique en la base de datos, o agregarlos a través de la API.
- Sistema de lista negra: puede habilitar esto para no permitir el uso de hashes de torrent que especifique en la base de datos, o agregarlos a través de la API.
- Sistema de claves: puede habilitar esto para permitir el seguimiento solo cuando se proporciona un hash de "clave" activado (igual que info_hash, 20 bytes o 40 caracteres hexadecimales). Las claves con un tiempo de espera de cero "0" serán permanentes y la limpieza no las eliminará.
- WebGUI: la API tiene una interfaz web disponible, a la que se puede acceder a través de https://your.api:8080/webgui/ y brindando la clave API correcta, que usted configura en el archivo de configuración.
- Se puede proporcionar una estructura de base de datos personalizable en el archivo de configuración.
- El sistema ahora también está disponible a través de Docker Hub en https://hub.docker.com/r/power2all/torrust-axum
v3.0.1
- Correcciones de errores
- Se agregó soporte SQLite3
- Se agregó soporte para MySQL
- Se agregó soporte para PostgresSQL
v3.0.0
Versión inicial de Torrust-Axum.
Créditos
Este Torrust-Tracker fue un esfuerzo conjunto de Nautilus Cyberneering GmbH, Dutch Bits y Power2All. También gracias a Naim A. y a Great-Ape por algunas partes del código Torrust-Tracker. Este proyecto (Torrust-Actix) está construido desde cero por Power2All.