Infrastruktur
Die ByNinja Trading Bot-Infrastruktur ist für den langfristigen autonomen Betrieb in instabilen realen Umgebungen ausgelegt. Krypto-Handelssysteme müssen 24/7 betriebsbereit sein, sich automatisch von unerwarteten Ausfällen erholen und Ausfallzeiten minimieren, ohne dass manuelle Eingriffe erforderlich sind.
Um dies zu erreichen, umfasst die Infrastruktur:
- •Watchdog-Ausführungsschleifen
- •Automatische Absturzwiederherstellung
- •Prozess-Neustart-Orchestrierung
- •Kontrolliertes Herunterfahr-Handling
- •Persistente Laufzeitumgebung
- •Isolierte Modulausführung
Die gesamte Architektur ist auf Fehlertoleranz und Betriebskontinuität ausgelegt.
Watchdog-Skripte
Die Hauptausführungsebene des Systems wird durch ein dediziertes Watchdog-Launcher-Skript gesteuert:
./run.sh trading
./run.sh telegramDas Watchdog-Skript fungiert als leichtgewichtiger Prozess-Supervisor, der verantwortlich ist für:
- •Umgebungsvalidierung
- •Aktivierung der virtuellen Umgebung
- •Modulstart
- •Absturzerkennung
- •Automatische Neustartbehandlung
Dieser Ansatz vermeidet die Notwendigkeit externer Prozessmanager während der Entwicklung oder bei leichtgewichtigen Bereitstellungen und bietet dennoch produktionsorientierte Resilienz.
Umgebungsvalidierung
Bevor ein Modul gestartet wird, validiert das Skript:
- •Eingabeargumente
- •Existenz der virtuellen Umgebung
- •Laufzeitkonfiguration
Beispiel:
if [[ "$MODULE" != "trading" && "$MODULE" != "telegram" ]]; then
echo "Invalid argument"
exit 1
fiDas Skript stellt auch sicher, dass die Python-Virtual Environment existiert:
if [ ! -f "$VENV_PATH" ]; then
echo "Virtual environment not found"
exit 1
fiDies verhindert versehentliche Starts mit defekten Abhängigkeiten oder falschen Ausführungsparametern.
Isolierte Laufzeitumgebung
Die Infrastruktur aktiviert vor der Ausführung eine dedizierte Python-Virtual Environment:
source "./env/bin/activate"Dies garantiert:
- •Abhängigkeitsisolierung
- •Stabile Paketversionen
- •Reproduzierbares Laufzeitverhalten
- •Saubere Bereitstellungstrennung
Der Launcher definiert auch explizit PYTHONPATH:
PYTHONPATH="$(pwd)/src" python3 -c "$CMD"Dies gewährleistet zuverlässige Importe unabhängig vom aktuellen Shell-Kontext oder Bereitstellungsort.
Automatisches Neustartsystem
Eines der wichtigsten Infrastrukturmerkmale ist die automatische Neustartschleife.
Der Launcher überwacht kontinuierlich den Bot-Prozess:
while true; do
PYTHONPATH="$(pwd)/src" python3 -c "$CMD"
doneWenn der Prozess unerwartet beendet wird, erkennt der Watchdog sofort den Fehler und startet das Modul automatisch neu.
Absturzerkennungslogik:
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
echo "[CRASH] Restarting..."
sleep $RESTART_DELAY
fiDies schafft ein sich selbst heilendes Ausführungsmodell, das sich von Folgendem erholen kann:
- •Unerwarteten Ausnahmen
- •Netzwerkausfällen
- •API-Ausfällen
- •Deadlocks
- •Vorübergehender Systeminstabilität
- •Externer Prozessbeendigung
Kontrollierte Neustartverzögerung
Die Infrastruktur fügt absichtlich eine Neustart-Abklingzeit hinzu:
RESTART_DELAY=3Dies verhindert:
- •Endlose schnelle Neustartschleifen
- •CPU-Spitzen bei wiederholten Abstürzen
- •API-Hammering
- •Protokollüberflutung
Die kurze Verzögerung gibt externen Systemen Zeit, sich zu erholen, bevor die Ausführung erneut versucht wird.
Getrennte Dienstarchitektur
Das System trennt die Infrastruktur in zwei unabhängig neustartbare Dienste:
| Dienst | Verantwortlichkeit |
|---|---|
| Handelsmodul | Handelsengine und Strategieausführung |
| Telegram-Modul | Fernsteuerung und Benachrichtigungen |
Diese Isolierung bietet mehrere Vorteile:
- •Ein Subsystem kann unabhängig ausfallen
- •Die Telegram-Überwachung kann bei Handelsabstürzen online bleiben
- •Der Handel kann auch bei Telegram-Ausfall fortgesetzt werden
- •Einfachere Fehlersuche und Wartung
Module kommunizieren über die interne TCP-Ebene anstatt über direkte Kopplung.
Kontrolliertes Herunterfahr-Handling
Die Infrastruktur unterstützt kontrolliertes Herunterfahrverhalten durch Signalverarbeitung.
Beispiel:
signal.signal(signal.SIGINT, signal_handler)Beim Herunterfahren:
- •Der Handel stoppt sicher
- •Die Persistenz wird auf die Festplatte geschrieben
- •TCP-Verbindungen werden sauber geschlossen
- •Threads werden ordnungsgemäß beendet
Beispielhafter Herunterfahrabulauf:
🛑 Shutdown signal received...
💾 Forcing save to disk...
✅ PersistentMap stoppedDies ist in Handelssystemen kritisch, da unsachgemäße Herunterfahren andernfalls zu Folgendem führen können:
- •Verlorenem Positionszustand
- •Beschädigter Persistenz
- •Inkonsistenten Wiederherstellungsdaten
- •Nicht geschlossenen Orders
Absturzwiederherstellungsphilosophie
Die Infrastruktur folgt einem einfachen, aber leistungsstarken Prinzip:
Crash → Detect → Restart → Recover State → Continue TradingDer Bot ist unter der Annahme konzipiert, dass Abstürze in lang laufenden verteilten Systemen unvermeidlich sind.
Anstatt zu versuchen, jeden möglichen Fehler zu verhindern, konzentriert sich die Architektur auf:
- •Schnelle Erkennung
- •Zuverlässigen Neustart
- •Persistente Zustandswiederherstellung
- •Betriebskontinuität
Dies erhöht die langfristige Zuverlässigkeit erheblich.
Integration mit der Persistenzschicht
Die Infrastruktur arbeitet eng mit dem Persistenzsubsystem zusammen.
Vor dem Herunterfahren oder Neustart:
- •Der Laufzeitzustand wird gespeichert
- •Positionen werden persistiert
- •Die Konfiguration bleibt intakt
- •Wiederherstellungsmetadaten werden gespeichert
Nach dem Neustart:
- •Der Zustand wird automatisch neu geladen
- •Der Handel wird sicher fortgesetzt
- •Bestehende Positionen werden wiederhergestellt
- •Die Telegram-Konnektivität kehrt automatisch zurück
Dies schafft eine widerstandsfähige Wiederherstellungspipeline selbst nach unerwarteten Abstürzen oder Serverneustarts.
Telegram-Infrastrukturüberwachung
Das Telegram-Subsystem fungiert auch als leichtgewichtige betriebliche Überwachungsschicht.
Infrastrukturereignisse werden direkt an Telegram weitergeleitet:
[CRASH] Module trading exited with code 1
Restarting in 3 seconds...Dies gibt Betreibern sofortige Einblicke in:
- •Abstürze
- •Neustarts
- •Herunterfahrungen
- •Wiederherstellungsereignisse
- •TCP-Konnektivitätsprobleme
Das Ergebnis ist eine fernbeobachtbare Infrastruktur, die keine komplexen Überwachungs-Dashboards erfordert.
Produktionsorientiertes Zuverlässigkeitsdesign
Die ByNinja-Infrastruktur kombiniert mehrere produktionsreife Betriebskonzepte:
- •Watchdog-Ausführungsschleifen
- •Automatische Absturzwiederherstellung
- •Kontrolliertes Herunterfahr-Handling
- •Persistenter Laufzeitzustand
- •Dienstisolierung
- •Selbstheilendes Neustartverhalten
- •Fernüberwachung über Telegram
- •Unabhängige Subsystemwiederherstellung
Zusammen schaffen diese Komponenten eine Infrastruktur, die kontinuierliche autonome Handelsoperationen mit minimaler manueller Überwachung unterstützt.