Skip to content

Introduce PAYLOAD_BUILDER_VERSION#5377

Merged
jtraglia merged 3 commits into
ethereum:masterfrom
jtraglia:payload-builder-version
Jun 19, 2026
Merged

Introduce PAYLOAD_BUILDER_VERSION#5377
jtraglia merged 3 commits into
ethereum:masterfrom
jtraglia:payload-builder-version

Conversation

@jtraglia

Copy link
Copy Markdown
Member

This PR introduces a new constant (PAYLOAD_BUILDER_VERSION) for execution payload builders. Now that EIP-8282 is included, builders are not restricted to version 3 so this can start at 0. Builders onboarded at the fork are now hardcoded to use PAYLOAD_BUILDER_VERSION instead of the withdrawal prefix. And checks are added in gossip & process_execution_payload_bid to ensure the version is correct.

@github-actions github-actions Bot added testing CI, actions, tests, testing infra gloas labels Jun 19, 2026
@potuz

potuz commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

This I think it's more or less the same comment I had on the other PR. If we do allow builders to be created with any version, then off protocol projects may want to use that. What's the reason to restrict propagation to only 0x00 in this case? I would prefer to only restrict one reserved space and enforce this at creation

@jtraglia

Copy link
Copy Markdown
Member Author

If we do allow builders to be created with any version, then off protocol projects may want to use that.

If there's a will, there's a way. There's nothing we can do to prevent this. For instance, instead of the version they could use the first 4 values of the execution address. Ie if builder.execution_address[0:4] == "0xabcd".

What's the reason to restrict propagation to only 0x00 in this case?

Because this check also exists in process_execution_payload_bid and there's no need to forward a bid which would be considered invalid.

@potuz

potuz commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Because this check also exists in process_execution_payload_bid and there's no need to forward a bid which would be considered invalid.

Yes, I think the assert on process_execution_payload_bid should be removed if we accept any version on deposits. We can get right what we didn't with validators now.

Allowing validators with different withdrawal prefix was useful (we are using it now to onboard builders for example).

Reserving a space for builders versions is also useful (we can do whatever we want with those reserved ones).

@jtraglia

Copy link
Copy Markdown
Member Author

I'm going to make an executive decision & merge this PR.

@jtraglia jtraglia merged commit e94b3d6 into ethereum:master Jun 19, 2026
16 checks passed
@jtraglia jtraglia deleted the payload-builder-version branch June 19, 2026 16:04
nflaig added a commit to lodekeeper/lodestar that referenced this pull request Jun 19, 2026
nflaig added a commit to ChainSafe/lodestar that referenced this pull request Jun 19, 2026
nflaig added a commit to ChainSafe/lodestar that referenced this pull request Jun 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gloas testing CI, actions, tests, testing infra

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants