Servizi
Eseguire un'istanza di Private Channels significa gestire i seguenti servizi Docker Compose:
| Container | Ruolo |
|---|---|
private-channel-postgres-primary | Database di stato del nodo di scrittura (PostgreSQL 16) |
private-channel-postgres-replica | Database di stato del nodo di lettura (replica in streaming) |
private-channel-postgres-indexer | Database dell'indicizzatore e dell'operatore |
private-channel-write-node | Riceve ed esegue le transazioni (porta 8900, solo loopback) |
private-channel-read-node | Gestisce le query RPC in lettura (porta 8901, solo loopback) |
private-channel-gateway | Instrada le richieste tra nodi di scrittura e lettura; applica RBAC (porta 8899) |
private-channel-indexer-solana | Monitora Solana per eventi Deposit tramite Yellowstone gRPC |
private-channel-indexer-private-channel | Monitora il canale per eventi Burn tramite polling RPC |
private-channel-operator-solana | Conia token del canale quando i depositi vengono confermati |
private-channel-operator-private-channel | Chiama ReleaseFunds su Mainnet quando i prelievi vengono confermati |
private-channel-auth | Servizio JWT/RBAC opzionale (profilo Docker: auth) |
Sono inclusi anche i container di osservabilità (prometheus, grafana, cadvisor).
Gateway
Questi valori hanno impostazioni predefinite appropriate per la configurazione Docker Compose su devnet. Sovrascriverli solo se il gateway viene eseguito al di fuori di Docker o distribuito in produzione.
| Variabile d'ambiente | Predefinito | Obbligatorio | Descrizione |
|---|---|---|---|
GATEWAY_PORT | 8899 (devnet) | No | Porta di ascolto |
GATEWAY_WRITE_URL | http://write-node:8900 (valore del file env devnet; nessun valore predefinito nel binario) | Sì | URL del nodo di scrittura - le richieste sendTransaction vengono instradate qui |
GATEWAY_READ_URL | http://read-node:8901 (valore del file env devnet; nessun valore predefinito nel binario) | Sì | URL del nodo di lettura - tutti gli altri metodi RPC vengono instradati qui |
GATEWAY_CORS_ALLOWED_ORIGIN | * | No | Valore dell'intestazione Access-Control-Allow-Origin |
JWT_SECRET | - | No | Abilita RBAC; deve corrispondere al JWT_SECRET del servizio auth |
AUTH_DATABASE_URL | - | Se JWT_SECRET è impostato | DB di autenticazione per la verifica della proprietà del wallet |
AUTH_DATABASE_MAX_CONNECTIONS | 10 | No | Dimensione del pool di connessioni al DB di autenticazione |
METRICS_PORT | 9101 | No | Porta delle metriche Prometheus |
RUST_LOG | info | No | Livello di log |
GATEWAY_WRITE_URLeGATEWAY_READ_URLutilizzano i nomi host del servizio Docker Compose (write-node,read-node) quando vengono eseguiti in Docker. Utilizzare gli equivalentilocalhostsolo quando si esegue il binario del gateway direttamente al di fuori di Docker.Il valore predefinito integrato del binario del gateway per
GATEWAY_PORTè8898. Sia.env.exampleche.env.devnetlo impostano a8899, che è il valore effettivamente utilizzato dalla configurazione Docker Compose (versions.envcontiene solo le versioni degli strumenti e delle immagini, non le porte dei servizi). Il valore predefinito8898si applica solo se si esegue il binario direttamente senza alcun file env.
GATEWAY_CORS_ALLOWED_ORIGIN ha come valore predefinito *, che consente a qualsiasi origine di chiamare
il gateway da un browser. Limitare questo valore all'origine effettiva della propria applicazione
prima di qualsiasi distribuzione in produzione.
Nodo di Scrittura e Nodo di Lettura
Il riferimento completo alla configurazione del nodo di scrittura e del nodo di lettura si trova in
docs/CONFIG.md
nel repository.
Servizio di Autenticazione
| Variabile d'ambiente | Obbligatorio | Descrizione |
|---|---|---|
JWT_SECRET | Sì | Segreto di firma HS256; deve corrispondere al JWT_SECRET del gateway |
AUTH_PORT | No (predefinito 8903) | Porta di ascolto |
AUTH_DATABASE_URL | Sì | Stringa di connessione PostgreSQL per il database di autenticazione |
CORS_ALLOWED_ORIGIN | No (predefinito *) | Valore dell'intestazione Access-Control-Allow-Origin per questo servizio (indipendente dal GATEWAY_CORS_ALLOWED_ORIGIN del gateway) |
AUTH_DATABASE_MAX_CONNECTIONS | No (predefinito 10) | Dimensione del pool di connessioni al DB di autenticazione |
Riferimento alle Porte dei Servizi
| Servizio | Porta Host | Binding |
|---|---|---|
| Gateway | 8899 | Tutte le interfacce |
| Nodo di scrittura | 8900 | Solo loopback |
| Nodo di lettura | 8901 | Solo loopback |
| Streamer | 8902 | Solo interno (expose, non pubblicato sull'host); non fa parte dello stack devnet |
| Servizio di autenticazione | 8903 | Tutte le interfacce |
| Metriche operatore | 9102, 9103 | Tutte le interfacce |
| Grafana | 37429 | Tutte le interfacce |
| Prometheus | 9090 | Tutte le interfacce |
| cAdvisor | 8080 | Tutte le interfacce |
Nota di sicurezza: Le porte del nodo di scrittura e del nodo di lettura sono associate al loopback (
127.0.0.1) soltanto. Gateway, servizio di autenticazione, metriche operatore, Grafana, Prometheus e cAdvisor sono tutti pubblicati su ogni interfaccia di rete nella configurazione Docker Compose su devnet. Proteggerli con un firewall a livello di host o di rete per qualsiasi utilizzo che vada oltre lo sviluppo locale; RBAC copre solo i metodi JSON-RPC del gateway, non gli altri servizi. Lo Streamer è l'eccezione: è un feed interno non autenticato che Docker non pubblica mai sull'host.
Requisiti di Rete
Consultare
docs/TECHNICAL_REQUIREMENTS.md
nel repository per le regole del firewall e i requisiti di larghezza di banda.
Is this page helpful?