Torrust-Actix-Tracker
Projektbeschreibung
Torrust-Actix Tracker ist ein leichter, aber unglaublich leistungsstarker und funktionsreicher BitTorrent-Tracker, der mit Rust erstellt wurde.
Derzeit wird es unter https://www.gbitt.info/ aktiv genutzt.
Dieses Projekt entstand aus Torrust-Tracker-Code, der ursprünglich von Mick van Dijke entwickelt und von Power2All als Alternative für OpenTracker und anderen auf GitHub verfügbaren Tracker-Code weiterentwickelt wurde.
Merkmale
Implementierte BEPs
- BEP 3: Das BitTorrent-Protokoll
- BEP 7: IPv6-Unterstützung
- BEP 15: UDP-Tracker-Protokoll für BitTorrent
- BEP 23: Tracker gibt kompakte Peer-Listen zurück
- BEP 41: UDP-Tracker-Protokollerweiterungen
- BEP 48: Tracker-Protokollerweiterung: Scrape
Erste Schritte
Sie können die neuesten Binärdateien von Releases herunterladen oder den unten stehenden Anweisungen zur Neuinstallation folgen.
Von Grund auf neu installieren
- Klonen Sie das Repository:
git clone https://github.com/Power2All/torrust-actix.git
cd torrust-actix
- Erstellen Sie den Quellcode mit Rust (stellen Sie sicher, dass Sie Rustup mit stabilem Zweig installiert haben)
Build-Skript verwenden
Verwendung
Führen Sie den Code mit dem Argument --help
aus, um ihn in Ihrer Umgebung zu verwenden:
./target/release/torrust-actix --help
Bevor Sie den Server ausführen können, müssen Sie entweder die Persistenz deaktivieren und bei Aktivierung sicherstellen, dass Ihre Datenbank erstellt wurde und funktioniert. Sehen Sie sich das Hilfeargument oben an, um zu erfahren, wie Sie Ihr Setup nach Ihren Wünschen korrigieren können.
Die Swagger-Benutzeroberfläche wird eingeführt und ist, wenn sie in der Konfiguration aktiviert ist, über die API über /swagger-ui/
zugänglich.
Die Sentry.io-Unterstützung wird eingeführt. Sie können sie in der Konfiguration und in der URL aktivieren, an die die Daten gesendet werden sollen.
ChangeLog
v4.0.4
- Weitere Implementierung von Sentry (Trace-Logging)
v4.0.3
- Announce- und Scrape-Pfade korrigiert, da dies der falsche Weg ist.
- Behebung verschiedener kleinerer Fehler, die die App nicht zerstören, aber besser behandelt werden sollten.
- Unterstützung für Sentry.io SaaS und selbst gehostetes Setup hinzugefügt.
- Vorbereitung der Arbeiten für Version v4.1.0, die die LUA-Unterstützung für Middleware einführen wird.
v4.0.2
- Option hinzugefügt, dass das System Daten aus der Datenbank entfernt.
- Aktualisierungsvariablen für die White/Black-Liste und die Schlüsseltabellen hinzugefügt.
- Benennen Sie den Namen „Datenbank“ um, der „Tabellen“ lauten sollte.
- Viele Korrekturen und Fehler, über die ich gestolpert bin.
v4.0.0
- Zur besseren Lesbarkeit wurde der Tracker-Code komplett neu erstellt.
- Auf Actix v4 verschoben, wodurch auch diese Software auf v4.0.0 versioniert wurde.
- Die Art und Weise, wie die Konfigurationsdatei erstellt wird, wurde neu erstellt und neu erstellt (Sie müssen den Befehl als Argument dafür angeben).
- Das gesamte Datenbanksystem wurde überarbeitet und mit den derzeit neuesten verfügbaren Versionen getestet.
- Die API hat viel Arbeit durchgemacht und getestet.
- Einführung der Swagger-Benutzeroberfläche zum Testen und zur Dokumentation.
- Es wurden weiterhin viele Verbesserungen bei Geschwindigkeit und Leistung vorgenommen.
- Import- und Exportfunktion hinzugefügt, mit der JSON-Dateien erstellt oder importiert werden können. Dies ist praktisch, wenn Sie ein Backup Ihrer vorhandenen Datenbank erstellen oder auf eine andere Datenbank-Engine migrieren.
- WebGUI entfernt, war veraltet und nicht wirklich nützlich.
v3.2.2
- Die Bibliotheksversionen wurden erheblich verbessert, einschließlich Sicherheitspatches.
- Änderungen in Bibliotheken wurden behoben, damit sie ordnungsgemäß funktionieren.
- Der Nicht-Persistenzcode wurde optimiert, um weniger Speicher zu verbrauchen.
v3.2.1
- Fehlerhafte Bibliotheksversionen, einschließlich Sicherheitspatches.
- Ein Fehler im PostgreSQL-Handler wurde behoben.
- Einige vergessene Namensgebungen von Torrust-Axum bis Torrust-Actix.
v3.2.0
- Fehlerhafte Bibliotheksversionen.
- Die Art und Weise, wie die Planung über Threads durchgeführt wurde, wurde geändert. Es konnte dazu führen, dass öffentliche Tracker bei starker Aktivität blockiert und verlangsamt wurden.
- Optimierung der SQLite3-Datenbanknutzung und des Datenbankspeicherplatzverbrauchs.
- Vollständige Überarbeitung der Verwendung von Torrents und Peers im Speicher. Verwendung von Crossbeam-Skipmap für threadsichere, nicht sperrende Speicherfreigabe.
- Verschiedene Verbesserungen der Codierungsleistung, Lesbarkeit und Linting der Dateien.
- Tokio Axum Web-Framework durch Actix ersetzt, Grund: Es fehlten kritische Dinge wie ein Timeout beim Verbinden, Trennen, Lesen und Schreiben, und der Support war mangelhaft.
- Das Github-Repository wurde von torrust-axum in torrust-actix umbenannt.
- Unterstützung für Benutzerverfolgung mit einem zusätzlichen Schlüssel hinzufügen.
v3.1.2
- Fehlerhafte Bibliotheksversionen.
- Eine Verhaltenskodex-Datei wurde hinzugefügt, da einige Open-Source-Projekte dies benötigen.
- Der API und der WebGUI wurde eine Wartungsumschaltfunktion hinzugefügt.
- Die Konfigurationsdatei wird nicht generiert, wenn sie nicht vorhanden ist oder ungültige Daten enthält, es sei denn, dies wird mit dem Argument „--create-config“ erzwungen.
- Verschiedene kleine Fehler behoben.
v3.1.1
- Fehlerhafte Bibliotheksversionen.
- Die Datenbank für SQLite3, MySQL und PostgreSQL funktioniert jetzt ordnungsgemäß mit allen Tabellen und wird verwendet, wenn sie aktiviert ist.
- UDP hatte ein Problem in IPv4, der Code für die korrekte Analyse des Byte-Arrays wurde behoben.
- Bereinigen und Refactoring von redundantem Code.
- Bei Bedarf wurden einige kleine Überprüfungen hinzugefügt, um Fehler zu vermeiden.
v3.1.0
- Whitelist-System: Sie können dies aktivieren, um nur die Verwendung von Torrent-Hashes zuzulassen, die Sie in der Datenbank angeben, oder sie über die API hinzuzufügen.
- Blacklist-System: Sie können dies aktivieren, um die Verwendung von Torrent-Hashes zu verhindern, die Sie in der Datenbank angeben, oder sie über die API hinzuzufügen.
- Schlüsselsystem: Sie können dies aktivieren, um die Nachverfolgung nur zu ermöglichen, wenn ein aktivierter „Schlüssel“-Hash (wie ein info_hash, 20 Bytes oder 40 Zeichen hexadezimal) angegeben wird. Schlüssel mit einem Timeout von Null „0“ sind dauerhaft und werden durch die Bereinigung nicht gelöscht.
- WebGUI: Die API verfügt über eine verfügbare Webschnittstelle, auf die Sie über https://your.api:8080/webgui/ zugreifen können, indem Sie den richtigen API-Schlüssel eingeben, den Sie in der Konfigurationsdatei konfigurieren.
- In der Konfigurationsdatei kann eine anpassbare Datenbankstruktur angegeben werden.
- Das System ist jetzt auch über Docker Hub unter https://hub.docker.com/r/power2all/torrust-axum verfügbar
v3.0.1
- Fehlerbehebungen
- SQLite3-Unterstützung hinzugefügt
- MySQL-Unterstützung hinzugefügt
- PostgresSQL-Unterstützung hinzugefügt
v3.0.0
Erste Version von Torrust-Axum.
Credits
Dieser Torrust-Tracker war eine gemeinsame Anstrengung von Nautilus Cyberneering GmbH, Dutch Bits und Power2All. Vielen Dank auch an Naim A. und Greatest-Ape für einige Teile im Torrust-Tracker-Code. Dieses Projekt (Torrust-Actix) wurde von Power2All von Grund auf neu erstellt.