evstack / evstack/apex

TLS support for RPC server and upstream connections

Aperta
#23 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Go
Stelle
4
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

## Summary

Add TLS support for both apex's outbound connections (to celestia-node) and its inbound RPC server.

## Motivation

- Production deployments often require encrypted transport
- celestia-node is also tracking TLS support ([celestiaorg/celestia-node#4346](https://github.com/celestiaorg/celestia-node/issues/4346))
- Without TLS, auth tokens transit in plaintext

## Requirements

### Upstream fetcher (outbound)
- Support `wss://` endpoints for celestia-node WebSocket connections
- Support TLS for gRPC connections to upstream nodes
- Configurable CA certificate for self-signed certs
- Skip-verify option for development (with warning log)

### RPC server (inbound)
- Optional TLS termination on the JSON-RPC server
- Optional TLS on the gRPC server
- Certificate and key file paths in config

### Configuration

```yaml
data_source:
endpoint: wss://celestia-node.example.com:26658
tls:
ca_cert: "" # custom CA for self-signed
skip_verify: false # dev only

rpc:
address: 0.0.0.0:26659
tls:
cert_file: ""
key_file: ""

grpc:
address: 0.0.0.0:26660
tls:
cert_file: ""
key_file: ""
```

## Non-goals

- mTLS (mutual TLS) — add later if needed
- Automatic cert provisioning (Let's Encrypt) — use a reverse proxy for that

## Related

- #2 — JSON-RPC server
- #3 — gRPC server
- #12 — CelestiaNodeFetcher (upstream client)
- #13 — Configuration system

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia leggendo le issue correlate #2, #3, #12 e #13, quindi segui il sistema di configurazione e gli entry point upstream e server che descrivono. Il lavoro è completo quando le connessioni WebSocket e gRPC in uscita supportano le opzioni TLS specificate ed entrambi i server RPC possono caricare facoltativamente i file del certificato e della chiave, con test che coprano la configurazione e il comportamento TLS.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
go, grpc
Ambito
api, backend, networking, security
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.