-
Notifications
You must be signed in to change notification settings - Fork 21.4k
Description
Description:
Currently, the Geth client hardcodes 15 discv5 bootnodes that belong to the consensus layer.
However, Geth is an execution-layer client and should only hardcode discv5 bootnodes from the execution layer.
This design causes the execution layer to depend on the consensus-layer discovery network, which is architecturally incorrect.
When consensus-layer bootnodes change, execution-layer node discovery can be affected, increasing maintenance complexity.
Expected behavior:
Geth should hardcode only execution-layer discv5 bootnodes (e.g., for Mainnet, Sepolia, Holesky, etc.),
not consensus-layer ones.
Actual behavior:
In the source file (https://github.com/ethereum/go-ethereum/blob/v1.16.2/params/bootnodes.go#L59), all 15 hardcoded ENRs belong to consensus-layer nodes.
Impact:
Breaks the separation of responsibilities between execution and consensus layers.
May confuse node operators about which discovery network they are connecting to.
When consensus-layer bootnodes are updated, execution-layer discovery could fail or degrade.
Suggested fix:
Replace the consensus-layer ENRs with execution-layer discv5 bootnodes.
Alternatively, make the bootnode list configurable and clearly document the difference between consensus-layer and execution-layer bootnodes.