Skip to content

Geth hardcodes consensus-layer discv5 bootnodes instead of execution-layer ones #32841

@TayC710

Description

@TayC710

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions