7.4 KiB
7.4 KiB
Mevnode Bot Architecture
Zasada glowna
mevnode_bot nigdy nie uruchamia warstwy Solana node:
- bez
agave - bez
ledger - bez
yellowstone server - bez validator stack
mevnode_sol pozostaje jedynym hostem node-level:
agave-validatoryellowstone geyser pluginyellowstone gRPC- plugin metrics
- lokalny RPC
- opcjonalnie pozniej RPC proxy
Schemat mevnode_bot
+--------------------------------------------------------------+
| mevnode_bot |
| single-node k3s only |
| |
| ingress/web |
| - frontend |
| - api |
| |
| trading/read |
| - yellowstone-consumer |
| - market ingest / parser |
| - dlob-worker |
| |
| trading/core |
| - strategy-engine |
| - risk-manager |
| - order-manager |
| - tx-router |
| |
| tx paths |
| - tpu client |
| - jito client |
| - rpc client / later rpc proxy target on mevnode_sol |
| |
| data |
| - postgres |
| - redis optional |
| - clickhouse later optional |
| |
| ops |
| - prometheus |
| - grafana |
| - loki optional |
| |
| platform |
| - argo/flux |
| - sealed-secrets or sops |
| - internal registry access |
+--------------------------------------------------------------+
Przeplyw danych
Yellowstone on mevnode_sol
|
v
yellowstone-consumer
|
v
parser / ingest / dlob-worker
|
v
strategy-engine
|
v
risk-manager / order-manager
|
v
tx-router
| | |
v v v
TPU Jito RPC
Namespace plan
webtradedataopsinfra
Kolejnosc wdrozenia
web:frontend,apidata:postgrestrade:yellowstone-consumertrade:strategy-engine,tx-routerops:prometheus,grafana
Read i write path
Read path:
mevnode_bot -> wg0 -> mevnode_sol:10000
Metrics path:
mevnode_bot -> wg0 -> mevnode_sol:8999
Write path pozniej:
mevnode_bot -> TPU/Jito- albo
mevnode_bot -> RPC proxy -> mevnode_sol:127.0.0.1:8899
Zasada architektoniczna
mevnode_sol= source of truth dla chain accessmevnode_bot= execution and product node
K3s object map
Namespace web
DeploymentfrontendServicefrontendtypuClusterIPDeploymentapiServiceapitypuClusterIPIngressweb
Przeznaczenie:
frontendwystawia UIapiwystawia backend HTTPIngresspublikuje tylko web entrypoint
Namespace trade
Deploymentyellowstone-consumerDeploymentdlob-workerDeploymentstrategy-engineDeploymentrisk-managerDeploymentorder-managerDeploymenttx-routerServicestrategy-enginetypuClusterIPjesli inne komponenty maja sie do niego odwolywacServicetx-routertypuClusterIPtylko jesli potrzebne bedzie sterowanie po HTTP/gRPC
Przeznaczenie:
yellowstone-consumerczyta stream zmevnode_soldlob-workerrobi ingest i przygotowanie danychstrategy-enginepodejmuje decyzjerisk-manageregzekwuje limityorder-managersklada i nadzoruje lifecycle zlecentx-routerwybieraTPU,JitoalboRPC
Uwagi:
strategy-engine,order-manageritx-routermozna uruchamiac zhostNetwork: true, jesli bedzie potrzeba minimalizacji narzutu sieciowegoyellowstone-consumerpowinien miecSecretzx-tokeni endpointem10.91.0.1:10000
Namespace data
StatefulSetpostgresServicepostgrestypuClusterIPPersistentVolumeClaimdlapostgresStatefulSetredisopcjonalnieServiceredistypuClusterIPPersistentVolumeClaimdlaredistylko jesli ma byc trwaly cacheStatefulSetclickhousedopiero pozniejServiceclickhousetypuClusterIPPersistentVolumeClaimdlaclickhouse
Przeznaczenie:
postgresdla stanu systemu, pozycji, filli, konfiguracji i jobowredisdla cache, kolejek, lockow i rate limituclickhousedla ciezszej analityki i archiwizacji eventow
Namespace ops
StatefulSetprometheusServiceprometheustypuClusterIPDeploymentgrafanaServicegrafanatypuClusterIPDeploymentpromtailopcjonalnieStatefulSetalboDeploymentlokiopcjonalnie
Przeznaczenie:
prometheuszbiera metryki zk3si z aplikacjigrafanadaje dashboardyloki/promtailsa opcjonalne do logow
Namespace infra
Deploymentargocd-serveralbo kontroleryfluxDeploymentargocd-repo-serverjesli wybierzemyArgo CDDeploymentsealed-secrets-controlleralbo integracjasopsSecret/ExternalSecretdla tokenow i kluczy
Przeznaczenie:
- GitOps sync z Gitea
- zarzadzanie sekretami
- bootstrap aplikacji i manifestow
Service exposure rules
- tylko
frontendiapiwychodza przezIngress postgres,redis,clickhouse,strategy-engine,tx-routerzostaja wewnetrzne jakoClusterIP- bez
LoadBalancer - bez publicznego wystawiania komponentow tradingowych
yellowstone-consumernie potrzebuje publicznegoService
Storage rules
postgresna trwałym wolumenieclickhousetylko na szybkim lokalnym storageredisbez PVC jesli ma byc tylko cache- aplikacje tradingowe jako stateless
Deployment, jesli stan trzymamy wpostgres
Config and secrets
ConfigMapdla endpointow, feature flags i runtime configSecretdla:- tokenu Yellowstone
- kluczy API
- danych do
postgres - danych do
Jito - kluczy signing/delegate
Kolejnosc wdrozenia w k3s
infra: GitOps i secretsdata:postgresweb:frontend,api,Ingresstrade:yellowstone-consumertrade:strategy-engine,risk-manager,order-managertrade:tx-routerops:prometheus,grafana