Running a node¶
WaveLedger defines three node roles. All three can run on a single machine, or be split across machines (recommended for production to achieve failure-domain separation).
| Role | Purpose | Inbound? | Persistent state? |
|---|---|---|---|
| Miner | Builds blocks, mines them, propagates to peers | P2P only | Chain (SQLite) |
| Seed | Maintains chain state, serves it to new peers, doesn't mine | P2P + optional RPC | Chain (SQLite) |
| Entropy aggregator | Pulls entropy from upstream sources, serves it to miners | HTTP /api/random | In-memory pool only |
A "full node" denotes a combined miner + seed in one process. The dApp's chat node runs in this configuration.
Quick start¶
| Goal | Document |
|---|---|
| Deploy the full testnet on Fly in 15 minutes | Self-hosting on Fly.io |
| Run a miner on an existing VPS | Self-hosting on a VPS |
| Join the public testnet from a laptop or hobbyist host | Running a miner |
| Mirror chain state without mining | Running a seed node |
| Provide entropy to a private set of miners | Running the entropy aggregator |
| Reference every configuration option | Config reference |
| Operate the node in production | Operational runbook |