Rastreador Torrust-Actix
Descrição do Projeto
Torrust-Actix Tracker é um BitTorrent Tracker leve, mas incrivelmente poderoso e rico em recursos, feito com Rust.
Atualmente, está sendo usado ativamente em https://www.gbitt.info/.
Este projeto originou-se do código Torrust-Tracker originalmente desenvolvido por Mick van Dijke, desenvolvido pela Power2All como alternativa para OpenTracker e outros códigos rastreadores disponíveis no GitHub.
Características
BEPs implementados
- BEP 3: O protocolo BitTorrent
- BEP 7: Suporte IPv6
- BEP 15: Protocolo Rastreador UDP para BitTorrent
- BEP 23: Rastreador retorna listas compactas de pares
- BEP 41: Extensões do protocolo rastreador UDP
- BEP 48: Extensão do protocolo rastreador: Scrape
Começando
Você pode obter os binários mais recentes dos lançamentos ou seguir as instruções de instalação do zero abaixo.
Instalar do zero
- Clone o repositório:
git clone https://github.com/Power2All/torrust-actix.git
cd torrust-actix
- Construa o código-fonte usando Rust (certifique-se de ter instalado o Rustup com branch estável)
Usando script de construção
Uso
Execute o código usando o argumento --help
para usar em seu ambiente:
./target/release/torrust-actix --help
Antes de poder executar o servidor, você precisa ter a persistência desativada e, quando ativada, certificar-se de que seu banco de dados esteja criado e funcionando. Veja o argumento de ajuda acima como corrigir sua configuração como desejar.
A UI do Swagger é introduzida e, quando habilitada na configuração, pode ser acessada por meio da API via /swagger-ui/
.
O suporte Sentry.io é introduzido, você pode habilitá-lo na configuração e na URL para onde enviar os dados.
Registro de alterações
v4.0.4
- Implementação adicional do Sentry (registro de rastreamento)
v4.0.3
- Corrigindo caminhos de anúncio e raspagem, pois é o caminho errado.
- Correção de vários bugs menores que não quebram o aplicativo, mas devem ser tratados melhor.
- Adicionado suporte para Sentry.io SaaS e configuração auto-hospedada.
- Preparando o trabalho para a versão v4.1.0, que introduzirá suporte LUA para middleware.
v4.0.2
- Adicionada opção para que o sistema remova dados do banco de dados.
- Adicionadas variáveis de atualização para a lista branca/negra e tabelas de chaves.
- Renomeando a nomenclatura do "banco de dados" que deveria ser "tabelas".
- Muitas correções e bugs que encontrei.
v4.0.0
- Totalmente reconstruído do código do rastreador, para facilitar a leitura.
- Mudou para Actix v4, versionando este software também para v4.0.0.
- Reconstruído e refeito da forma como o arquivo de configuração é criado (você precisa fornecer o comando como argumento para isso).
- Todo o sistema de banco de dados foi refeito, sendo testado com as últimas versões disponíveis no momento.
- A API passou por muito trabalho e foi testada.
- Introduziu a UI do Swagger como teste e documentação.
- Muitas melhorias em velocidade e desempenho foram aplicadas posteriormente.
- Função de importação e exportação adicionada, irá despejar ou importar de arquivos JSON, útil para fazer um backup de seu banco de dados existente ou ao migrar para outro mecanismo de banco de dados.
- WebGUI removido, estava desatualizado e não era muito útil.
v3.2.2
- Versões de bibliotecas alteradas significativamente, incluindo patches de segurança.
- Corrigidas alterações nas bibliotecas para funcionarem corretamente.
- Ajustou o código de não persistência para usar menos memória.
v3.2.1
- Versões de bibliotecas alteradas, incluindo patches de segurança.
- Corrigido um bug no manipulador PostgreSQL.
- Alguns nomes esquecidos de Torrust-Axum a Torrust-Actix.
v3.2.0
- Versões da biblioteca alteradas.
- Modificada a forma como o agendamento era feito por meio de threads, poderia travar e desacelerar rastreadores públicos com atividade intensa.
- Ajustando o uso do banco de dados SQLite3 e o consumo de espaço do banco de dados.
- Revisão completa de como torrents e peers são usados na memória. Usando skipmap de crossbeam para compartilhamento de memória sem bloqueio e seguro de thread.
- Algumas melhorias no desempenho de codificação, legibilidade e linting dos arquivos.
- Estrutura da web Tokio Axum substituída por Actix, motivo: faltavam coisas críticas, como tempo limite para conectar, desconectar, ler e escrever, e o suporte era fraco.
- O repositório github foi renomeado de torrust-axum para torrust-actix.
- Adicionando suporte de rastreamento de usuário com uma chave extra.
v3.1.2
- Versões da biblioteca alteradas.
- Adicionado um arquivo de Código de Conduta, pois alguns projetos de código aberto precisam dele.
- Adicionada uma função de alternância de manutenção à API e WebGUI.
- O arquivo de configuração não é gerado quando não existe ou contém dados inválidos, a menos que seja forçado com um argumento '--create-config'.
- Corrigidos vários pequenos bugs.
v3.1.1
- Versões da biblioteca alteradas.
- Banco de dados para SQLite3, MySQL e PostgreSQL agora funciona corretamente com todas as tabelas e será usado se habilitado.
- O UDP teve um problema no IPv4, corrigiu o código para analisar corretamente a matriz de bytes.
- Limpeza e refatoração de algum código redundante.
- Adicionadas algumas pequenas verificações quando necessário para evitar erros.
v3.1.0
- Sistema de lista de permissões: você pode ativar isso para permitir o uso apenas de hashes de torrent especificados no banco de dados ou adicioná-los por meio da API.
- Sistema de lista negra: você pode ativar isso para impedir o uso de hashes de torrent especificados no banco de dados ou adicioná-los por meio da API.
- Sistema de chaves: você pode ativar isso para permitir o rastreamento apenas quando um hash de "chave" ativado (igual a um info_hash, 20 bytes ou 40 caracteres hexadecimais) for fornecido. Chaves com tempo limite de zero "0" serão permanentes e não serão eliminadas pela limpeza.
- WebGUI: A API possui uma interface web disponível, que pode ser acessada através de https://your.api:8080/webgui/ e fornecendo a chave API correta, que você configura no arquivo de configuração.
- A estrutura de banco de dados personalizável pode ser fornecida no arquivo de configuração.
- O sistema também está disponível através do Docker Hub em https://hub.docker.com/r/power2all/torrust-axum
v3.0.1
- Correções de bugs
- Suporte SQLite3 adicionado
- Suporte MySQL adicionado
- Suporte PostgresSQL adicionado
v3.0.0
Versão inicial do Torrust-Axum.
Créditos
Este Torrust-Tracker foi um esforço conjunto da Nautilus Cyberneering GmbH, Dutch Bits e Power2All. Também obrigado a Naim A. e ao maior macaco por algumas partes do código Torrust-Tracker. Este projeto (Torrust-Actix) foi construído do zero pela Power2All.