(WIP) devnet4: dual hash-sig keys and GENESIS_VALIDATORS format#154
Open
ch4r10t33r wants to merge 32 commits intomainfrom
Open
(WIP) devnet4: dual hash-sig keys and GENESIS_VALIDATORS format#154ch4r10t33r wants to merge 32 commits intomainfrom
ch4r10t33r wants to merge 32 commits intomainfrom
Conversation
- Generate hosts-prepare.yml (one inventory host per remote IP) and use it for prepare.yml so apt/docker run once per machine. - Apply SSH user/key to both hosts.yml and hosts-prepare.yml. - Allow --validatorConfig with --prepare in spin-node.sh. - Ignore hosts-prepare.yml; document behavior in prepare playbook. - Add ansible-devnet/genesis/test-validator-config.yaml for multi-client tests.
ansible-playbook runs from ansible/; lookup('file') resolves relative paths
there, breaking prepare/deploy when --validatorConfig is repo-relative.
…unt check Skip expansion when the file's attestation_committee_count >= --subnets. --subnets takes precedence only when it exceeds the file's value (default 1).
…subnets skip logic
…sent When validators lack an explicit 'subnet' field, compute it as validator_index % attestation_committee_count instead of defaulting to 0. This ensures correct multi-subnet aggregator selection for hand-maintained configs that set attestation_committee_count but omit per-row subnet fields.
…tion Use cumulative count to compute the first validator index per node, matching the assignment from the beacon genesis generator tool.
Let Docker pick the native platform so the correct image is pulled on both amd64 and arm64 servers. Requires a multi-arch zeam image.
Mode selection now uses duplicate client types (not duplicate IPs) to distinguish replicate from shared-host. This lets the local devnet (all clients on 127.0.0.1) use replicate mode correctly. Port stride changes from +i to +(i * num_template_rows) so clones never collide even when all rows share the same IP.
Each of the five active nodes (zeam_0/1/2, ethlambda_0/1) is now on its own server. Ports are normalized to the base values (quic 9001, metrics 9095, api 5055) since there are no collisions. This also makes the config a valid replicate-mode template for --subnets expansion.
Add test-validator-config-subnet2.yaml: 2-subnet layout with 7 nodes per subnet (zeam, gean, ethlambda, qlean, lantern). Update validator-config.yaml to reflect current deployment. Sync validator-config-expanded.yaml.
Switch from new-style flags (--genesis, --bootnodes, --validator-registry-path, --listen-addr) to the flags gean:devnet4 actually accepts: --custom-network-config-dir, --gossipsub-port, --http-address.
KatyaRyazantseva
previously approved these changes
Apr 15, 2026
… snaiyer1/ream:latest
Switch --validator-registry-path from validators.yaml to annotated_validators.yaml in ream, lantern, qlean, and grandine — both in the local client-cmds scripts and the Ansible roles. Update qlean's yq index extraction to use .index since annotated_validators.yaml stores objects instead of bare integers.
… and metrics 9095)
Co-authored-by: Parthasarathy Ramanujam <1627026+ch4r10t33r@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Draft PR for devnet4 work: dual attester/proposer hash-sig keys, updated
generate-genesis.sh,config.yamlshape (attestation_pubkey/proposal_pubkey),parse-vc.sh/ qlean paths, Ansible genesis task, README and docs.config.yamlunder genesis dirs remains gitignored (generated locally).Multi-subnet aggregator selection (
spin-node.sh)When picking aggregators randomly (default, no
--aggregator), each client type (name prefix before the first_, e.g.zeamfromzeam_0) can be aggregator on at most one subnet. Ifzeam_*is chosen for subnet 0, nozeam_*node is eligible on other subnets. If there are more subnets than distinct clients, the script warns and picks from all nodes in that subnet. Explicit--aggregatorstill fixes that node for its subnet and records its client type so other subnets avoid it when possible. ConflictingisAggregator: trueYAML presets are dropped with a warning in default mode.