docs(snapshot): sync workspace documentation

This commit is contained in:
u1
2026-03-29 13:14:30 +02:00
parent 93a6e4aa2f
commit 0d3d110026
37 changed files with 8500 additions and 123 deletions

89
rpc/software-placement.md Normal file
View File

@@ -0,0 +1,89 @@
# Strategia rozmieszczenia softu (bare metal / VPS / Vast)
Celem jest:
- **stabilny, prywatny feed danych** (Solana RPC → DLOB → statsy),
- **bezpieczne wykonanie transakcji** (klucze tylko na VPS),
- **skalowanie ML** (trening na Vast), bez kompromisu bezpieczeństwa.
Źródła kontekstu w repo:
- DLOB i przepływ danych: `doc/dlob-services.md`
- Boty i podział na planey: `doc/bots.md`
## Zasady (priorytety)
1) **RPC box jest “lean”** — żadnych baz danych, Grafany, workerów, botów.
2) **Klucze tylko w execution plane** — żadnych kluczy na Vast i w UI.
3) **Publicznie tylko read/control plane** — bez endpointu “podpisz i wyślij”.
4) **Ogranicz rynki** na start (np. `PERP_MARKETS_TO_LOAD=0,75`), żeby odchudzić cały pipeline.
## Co gdzie uruchamiamy
### Bare metal (Solana RPC box)
Uruchamiaj:
- `agave/solana-validator` jako prywatny RPC (non-voting).
- (Opcjonalnie) `geyser` / `yellowstone-grpc` plugin, jeśli chcesz feed “faster-than-RPC”.
- WireGuard + firewall + chrony.
- Monitoring: `node_exporter` + probe zdrowia RPC.
Nie uruchamiaj:
- DLOB, Redis, Hasura/Postgres, Grafana, botów.
Powód: RAM 192 GB jest cenny dla noda; trzymamy minimalną liczbę procesów i klientów.
### VPS (k3s / “app + trading box”)
Uruchamiaj:
- **Data plane**:
- `dlob-publisher-hot` i `dlob-publisher-all` (czytają z prywatnego RPC/WS lub gRPC),
- `dlob-redis`,
- `dlob-hot-redis-to-postgres-raw-writer`,
- `dlob-hot-postgres-to-postgres-derived-writer`,
- `dlob-all-redis-to-postgres-derived-writer`,
- Postgres + Hasura (GraphQL/WS dla “latest” tabel i sterowania botami).
- **Execution plane**:
- `bot-executor` (klucze, podpisywanie transakcji, risk, kill switch).
- **Control plane / UI**:
- `trade-frontend` (proxy/auth + UI),
- `trade-api` (narzędzia: tokeny, admin, pomocnicze endpointy).
- Monitoring:
- Prometheus/Grafana/Alertmanager.
Wystawianie na zewnątrz (rekomendacja):
- Publicznie: UI + GraphQL (Hasura) + ewentualnie read-only API.
- Control plane: endpointy do ustawiania `bot_config` i odczytu `bot_state/bot_events` (z auth).
- **Nie publicznie**: `bot-executor`, prywatny RPC, Redis.
### Vast (GPU / “model plane”)
Uruchamiaj:
- Trening transformera na danych wyeksportowanych z VPS (batch).
- Ewentualnie inference endpoint (jeśli chcesz oddzielić obciążenie od VPS).
Nie uruchamiaj / nie przechowuj:
- kluczy prywatnych,
- tokenów do środków,
- dostępu do prywatnego RPC po VPN (nie jest potrzebny do treningu).
## Kontrakt VPS ↔ Vast (bezpieczny)
- VPS wysyła: “feature snapshots” / dataset (bez sekretów).
- Vast zwraca: “decision” (np. target exposure/side/confidence).
- VPS decyduje o wykonaniu (risk engine) i podpisuje transakcję (executor).
## Minimalny start (2 markety)
1) DLOB:
- `PERP_MARKETS_TO_LOAD=0,75` (i analogicznie dla TOB monitoring, jeśli używasz).
2) Execution:
- `bot-executor` czyta config z DB, nie z requestów “na żywo”.
3) Public API:
- brak “sign & send”; tylko control-plane + read-only dane.