Goal
Make the devnet genesis size configurable from the Makefile instead of the current hardcoded layout (validator1-3 in genesis, validator4 out for the GovDAO Phase 2 scenario).
Target: something like
make full-reinit GENESIS_VALIDATORS=5 GOVDAO_VALIDATORS=2
=> 5 validators in the genesis valset, plus 2 extra validators prepared (keys + node dirs) but kept out of genesis so they can be onboarded later via GovDAO. Then be able to bring any of them up on demand.
Motivation
- Test larger valsets and BFT thresholds on devnet.
- Exercise the "add a validator via GovDAO" flow with more than one candidate.
- Provide a clean, spare full-node target to test
restore-fullnode (bootstrap a brand-new node from a snapshot). See the snapshot/restore work on branch feat/devnet-snapshot-restore.
Scope / things to work out
bootstrap.sh: currently hardcodes NODES=(validator validator2 validator3 validator4 snapshotter) and extracts validator1-4 addresses/pubkeys/node IDs explicitly. Generalise to N nodes + a loop for address/pubkey/nodeID extraction and the .env SEEDS_* generation.
generate-genesis.sh: currently takes a fixed VALIDATOR1..3 list. Make it accept a variable list of (addr, pubkey, name).
docker-compose.yml: Docker Compose does not do "N dynamic services" cleanly (--scale won't work here: each validator needs its own keys/config/genesis mounts and P2P identity). Two options:
- pre-declare a pool
validator1..validatorM gated by profiles, or
- generate the compose file from a template/script during bootstrap.
- Makefile:
GENESIS_VALIDATORS / GOVDAO_VALIDATORS variables, wire through to bootstrap.
- Keep the existing scenarios (
scenario1..scenario5) working, or adapt them.
Related
- Spare-full-node service (
newnode, profile extra) to test restore-fullnode cleanly — could be folded into the parametrable pool (a node prepared but not in genesis == a restore target).
- Snapshot/restore workflow: branch
feat/devnet-snapshot-restore, runbook devnet/SNAPSHOT-RESTORE.md.
Goal
Make the devnet genesis size configurable from the Makefile instead of the current hardcoded layout (validator1-3 in genesis, validator4 out for the GovDAO Phase 2 scenario).
Target: something like
=> 5 validators in the genesis valset, plus 2 extra validators prepared (keys + node dirs) but kept out of genesis so they can be onboarded later via GovDAO. Then be able to bring any of them up on demand.
Motivation
restore-fullnode(bootstrap a brand-new node from a snapshot). See the snapshot/restore work on branchfeat/devnet-snapshot-restore.Scope / things to work out
bootstrap.sh: currently hardcodesNODES=(validator validator2 validator3 validator4 snapshotter)and extracts validator1-4 addresses/pubkeys/node IDs explicitly. Generalise to N nodes + a loop for address/pubkey/nodeID extraction and the.envSEEDS_* generation.generate-genesis.sh: currently takes a fixed VALIDATOR1..3 list. Make it accept a variable list of (addr, pubkey, name).docker-compose.yml: Docker Compose does not do "N dynamic services" cleanly (--scalewon't work here: each validator needs its own keys/config/genesis mounts and P2P identity). Two options:validator1..validatorMgated by profiles, orGENESIS_VALIDATORS/GOVDAO_VALIDATORSvariables, wire through to bootstrap.scenario1..scenario5) working, or adapt them.Related
newnode, profileextra) to testrestore-fullnodecleanly — could be folded into the parametrable pool (a node prepared but not in genesis == a restore target).feat/devnet-snapshot-restore, runbookdevnet/SNAPSHOT-RESTORE.md.