Architektura Bota

Przegląd systemu
Platforma transakcyjna ByNinja jest zbudowana jako rozproszony system wieloprocesowy, który oddziela wykonywanie transakcji od interakcji z użytkownikiem.
Architektura składa się z dwóch niezależnych aplikacji:
- •Bot transakcyjny — odpowiedzialny za analizę rynku, realizację strategii, zarządzanie ryzykiem i przetwarzanie zleceń.
- •Serwer kontrolny Telegram — odpowiedzialny za powiadomienia, zdalne sterowanie i obsługę komend za pośrednictwem Telegrama.
Oba serwisy komunikują się za pomocą lekkiej, niestandardowej warstwy TCP, co pozwala im działać niezależnie, pozostając jednocześnie zsynchronizowanymi w czasie rzeczywistym.
To rozdzielenie poprawia stabilność, skalowalność i izolację awarii. Nawet jeśli usługa Telegram stanie się niedostępna, silnik transakcyjny może kontynuować działanie bez przerwy.
Architektura procesów
System wykorzystuje projekt zorientowany procesowo, w którym każdy komponent ma dedykowaną odpowiedzialność.
Proces transakcyjny
Proces transakcyjny zarządza:
- •Integracją API giełdy
- •Monitorowaniem rynku
- •Realizacją strategii
- •Zarządzaniem ryzykiem
- •Obsługą pozycji
- •Logowaniem wewnętrznym
Silnik transakcyjny działa w sposób ciągły i udostępnia komendy zdalnego sterowania poprzez połączenie klienta TCP.
Proces Telegram
Proces Telegram obsługuje:
- •Komunikację z API Bota Telegram
- •Przetwarzanie komend użytkownika
- •Powiadomienia i alerty
- •Zarządzanie serwerem TCP
Proces ten działa jako pomost między użytkownikiem a silnikiem transakcyjnym.
Niezależne środowisko wykonawcze
Obie aplikacje są uruchamiane oddzielnie i działają jako niezależne procesy:
python3 -c "from trading.main import main; main()"python3 -c "from telegram.main import main; main()"Ponieważ obie usługi są izolowane, każdy proces można ponownie uruchomić, zaktualizować lub debugować niezależnie, bez wpływu na drugi podsystem.
Komunikacja TCP
Warstwa komunikacyjna oparta jest na niestandardowym protokole TCP zaprojektowanym z myślą o niskim narzucie i interakcji w czasie rzeczywistym.
Przepływ komunikacji
Telegram User
↓
Telegram Bot
↓
TCP Server
↓
Trading Bot TCP Client
↓
Trading EngineOdwrotny przepływ jest używany do logów, alertów i aktualizacji statusu.
Struktura wiadomości
Wszystkie wiadomości są przesyłane w formacie JSON z nagłówkiem o stałej długości:
{
"tag": "command",
"message": "starttrading",
"timestamp": 1750000000
}Obsługiwane funkcje
Warstwa TCP zawiera:
- •Logikę automatycznego ponownego łączenia
- •Wątki robocze wysyłania/odbierania w tle
- •Kolejki wiadomości bezpieczne dla wątków
- •Obsługę łagodnego zamykania
- •Routing wiadomości według typu
- •Monitorowanie trwałego połączenia
System poleceń
Architektura obsługuje zdalne polecenia, takie jak:
- •Rozpocznij / zatrzymaj handel
- •Włącz lub wyłącz kupowanie
- •Włącz lub wyłącz sprzedawanie
- •Wymuś kupno / sprzedaż
- •Pobieranie statystyk
- •Monitorowanie statusu systemu
Polecenia mogą być globalne lub specyficzne dla symbolu.
Projekt wieloprocesowy
Platforma jest zgodna z architekturą wieloprocesową zamiast projektu monolitycznego.
Zalety
Izolacja
Awaria podsystemu Telegram nie zatrzymuje operacji handlowych.
Skalowalność
Każda usługa może być w przyszłości wdrożona na różnych maszynach lub kontenerach.
Utrzymanie
Baza kodu jest podzielona na logiczne komponenty z jasno określonymi obowiązkami.
Niezawodność
Ponowne łączenie TCP i wątki robocze w tle pomagają utrzymać stabilną komunikację nawet podczas tymczasowych awarii sieci.
Wykonanie współbieżne
Operacje handlowe, odpytywanie Telegrama, komunikacja TCP i logowanie działają współbieżnie przy użyciu dedykowanych wątków.
Wewnętrzny model współbieżności
Wewnątrz każdego procesu system wykorzystuje wielowątkowość do operacji asynchronicznych.
Wątki aplikacji transakcyjnej
- •Wątek wykonawczy transakcji
- •Wątek komunikacji TCP
- •Wątek przekazywania logów
- •Wątki robocze monitorowania w tle
Wątki aplikacji Telegram
- •Wątek odpytywania Telegrama
- •Wątek serwera TCP
- •Wątki robocze przekazywania wiadomości
Ten projekt zapewnia, że operacje sieciowe nigdy nie blokują samego silnika transakcyjnego.