RPC nodes are read-only Sigil nodes that serve public JSON-RPC and WebSocket traffic. They do not produce blocks. The same sigil-node binary runs in RPC mode under a different profile.

When to run one

  • Building a wallet, indexer, or dApp that needs predictable rate limits.
  • Operating a private cluster where validator-internal traffic must be isolated.
  • Serving a region not covered by public endpoints with adequate latency.

Hardware

ResourceMinimumRecommended
CPU8 cores16 cores
RAM32 GiB64 GiB
Storage1 TiB NVMe2 TiB NVMe
Network1 Gbps10 Gbps
RPC nodes do not need the validator’s HSM. Reads are signature-free.

Modes

ModeState retentionWhen to use
pruningLast 50,000 blocksWallet, dApp, exchange use.
archiveFull historyIndexers, explorers, analytics.
lightState at finalised blocks onlyEmbedded clients.

Configuration

/etc/sigil/rpc.toml:
[node]
network = "sigil-mainnet-1"
data_dir = "/var/lib/sigil"
mode = "rpc"
pruning = "pruning"  # or "archive"

[rpc]
profile = "public"
bind = "0.0.0.0:8545"
max_request_bytes = 65536
max_send_tx_bytes = 4194304
max_batch_bytes = 16777216

[rpc.rate_limit]
rps = 25
burst = 100

[ws]
bind = "0.0.0.0:8546"
max_subscriptions_per_conn = 100

[metrics]
bind = "127.0.0.1:7778"

[p2p]
listen = "0.0.0.0:30303"
bootnodes = [
  "/ip4/65.21.46.10/tcp/30303/p2p/12D3KooW...",
]

Start

sigil-node start --config /etc/sigil/rpc.toml
Snapshot-restore is identical to the validator flow:
sigil-node sync from-snapshot \
  --network sigil-mainnet-1 \
  --snapshot-url https://snapshots.sigil.ml/sigil-mainnet-1/latest.akasha.snap

Public-facing posture

If the RPC node is open to the Internet, front it with:
  • A reverse proxy (Caddy, Envoy) with TLS termination.
  • A rate-limiting layer (per-IP token bucket, per-API-key for premium tiers).
  • A WAF (Cloudflare or equivalent) — optional but recommended.
The Sigil public RPC fleet uses Cloudflare for the default endpoint and exposes a direct (no-middlebox) endpoint for censorship-resistance. See RPC endpoints for the production posture.

Health and metrics

  • GET /health returns 200 healthy / 503 unhealthy with the failed-probe list.
  • GET /metrics returns Prometheus-format metrics.
Critical alerts:
  • sigil_block_height lag against the public RPC for the network.
  • sigil_p2p_peers_connected < 8.
  • sigil_rpc_5xx_total rate.
  • Disk usage > 70%.
See monitoring for the recommended Grafana dashboards.

Premium tiers

To offer authenticated higher-rate tiers, deploy the auth sidecar:
sigil-node auth-sidecar start --rpc-bind 0.0.0.0:8545
The sidecar issues JWTs after a challenge-response signing flow. See authentication for the protocol details.