feat(el): ENR bootnodes and discv5-only, staged for devnet-8 - #52
Draft
barnabasbusa wants to merge 1 commit into
Draft
feat(el): ENR bootnodes and discv5-only, staged for devnet-8#52barnabasbusa wants to merge 1 commit into
barnabasbusa wants to merge 1 commit into
Conversation
Discv5 bootstraps from ENRs, not enodes. Besu discards its enode bootnode list entirely once discv5 is on, and nimbus-eth1 now hard-disables discv4 upstream (status-im/nimbus-eth1#4582), so the bootnode list has to be all-ENR rather than mixed. Swap both EL bootnode sources to their ENR equivalents and turn discv4 off on every client that supports the switch. Applied to the devnet-7 inventory because devnet-8 is cut from it. Requires besu and reth images rebased on their respective mains: besu --discovery-mode landed in #10800 (2026-07-22) and reth enr: bootnodes in #26448 (2026-07-29), neither of which is in a release or on the current devnet branches.
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.
Draft — do not merge onto running devnet-7. This is the discv5-only config for devnet-8; merging it against devnet-7's current images would break besu and reth (see Image requirements).
Why
Devnet-8 runs discv5-only, and discv5 bootstraps from ENRs, not enodes:
Invalid ENR bootnode: ... must start with 'enr:'.The list has to be all-ENR rather than mixed, since besu drops the enode half.
What
Both EL bootnode sources swapped to their ENR equivalents:
ethereum_node_fact_discovery_el_enodeethereum_node_fact_discovery_el_enrbootnodoor_fact_enodebootnodoor_fact_el_enrand discv4 turned off per client:
--discovery.v4=false --discovery.v5=true--p2p.discv4=false --p2p.discv5=true--disable-discv4-discovery--Discovery.DiscoveryVersion=V5--discovery-mode=V5Applied to the devnet-7 inventory because devnet-8 is cut from it. I deliberately did not add an
inventories/devnet-8/tree: it would carry 47 live devnet-7 host IPs and copied sops secrets under a devnet-8 name, which terraform regenerates anyway and which risks deploying devnet-8 config onto running devnet-7 boxes.Image requirements
Both flags are recent and not in any release, nor on the current devnet branches — verified by running the images:
ethpandaops/besu:glamsterdam-devnet-7-caa5abfUnknown option: '--discovery-mode=V5'ethpandaops/reth:glamsterdam-devnet-7invalid value 'enr:...': Failed to parse url: no host specifiedethpandaops/besu:main--discovery-mode=V5ethpandaops/reth:mainenr:bootnodes —2.4.1-dev (c505ed2)So devnet-8's besu and reth images must be rebased on their mains: besu #10800 (2026-07-22), reth #26448 (2026-07-29).
geth, erigon, nethermind, nimbusel and ethrex on their devnet-7 tags already accept the flags and ENR bootnodes.
Depends on
ethpandaops/ansible-collection-general#568 — provides both facts. The collection is pinned to
master, so they arrive once that merges.Testing
Ran a 7-EL kurtosis enclave (geth, besu, erigon, reth, nethermind, nimbusel, ethrex) discv5-only with ENR bootnodes, using devnet-7 images plus
:mainfor besu and reth. All seven peered and began syncing:The same run on unmodified devnet-7 images had
el-2-besuandel-4-rethbothExited (2).Nethermind takes ~2 min to find its first peer (slow discv5 lookup cadence) and cannot publish its own ENR at all —
admin_nodeInfohas noenrfield — so it can dial others but cannot serve as a bootnode. Worth not making itprimary_bootnode.