Requirements
- Rust 1.76+ (for building from source)
- Docker + Docker Compose (for the pre-built image path)
- ~2 GB free disk per node (sled DB)
Path A — Docker
The fastest way to get the full 4-validator testnet topology running locally.- 4×
yc-nodevalidators on isolated networks - 1× nginx serving the block explorer / wallet / simulator / dashboard
- 1× YScan indexer
- Shared
genesis.json
Path B — from source
For development / debugging:8546/8547/8548 pointing at the same genesis with different
validator keys.
Join an existing testnet (observer)
An observer node doesn’t propose blocks — it just syncs state and serves RPC. Useful if you want a local RPC URL without the latency of the public VPS.Logs
Troubleshooting
Genesis hash mismatch
Genesis hash mismatch
The node refuses to start if its computed genesis hash differs from what’s already in
the DB. Either restore the
genesis.json used originally, or wipe the DB
(docker volume rm youthchain_chain_data or rm -rf data/node-1).sled detected corruption
sled detected corruption
Rare, but happens after hard kills. Wipe the DB and resync — the chain is
deterministic so you’ll get byte-identical state back.
BFT quorum never reached
BFT quorum never reached
Check that at least
⌊2N/3⌋+1 peers are online and that their registered BLS keys
match what they’re actually signing with. A mismatch often means the peer has stale
keys from a previous chain.