Introduce separate payload availability deadline - #5212
Merged
Conversation
Member
|
For the record, @potuz wants there to be a different availability deadline value in this PR. But at ACDC we agreed to use the same deadline as now. So let's merge this with the same deadline and follow up with a PR to tweak it later. |
jtraglia
approved these changes
May 15, 2026
This was referenced May 16, 2026
Merged
barnabasbusa
added a commit
to ethpandaops/ethereum-genesis-generator
that referenced
this pull request
May 16, 2026
## Summary Aligns the CL config template with consensus-specs `v1.7.0-alpha.8`. The release ([changelog](https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.8)) lands a mostly spec-internal set of changes; only two land in the YAML configs: - **`MIN_BUILDER_WITHDRAWABILITY_DELAY`** — mainnet raised from `64` to `8192` epochs ([consensus-specs#5223](ethereum/consensus-specs#5223)). Minimal preset stays at `2`. - **`PAYLOAD_DUE_BPS`** — new field, `7500` bps in both presets ([consensus-specs#5212](ethereum/consensus-specs#5212), _Introduce separate payload availability deadline_). Exposed through the env-var indirection so testnets can override it. Verified locally with `.github/check-consensus-spec-values.py` against upstream `mainnet.yaml` and `minimal.yaml` from the `v1.7.0-alpha.8` tag — both report `all 63 comparable spec fields match`. ## Test plan - [x] Render template with mainnet defaults and diff against upstream `mainnet.yaml` @ v1.7.0-alpha.8 - [x] Render template with minimal overrides and diff against upstream `minimal.yaml` @ v1.7.0-alpha.8 - [ ] Boot a CL client (lighthouse/teku/prysm/lodestar/nimbus/grandine) against the new config to confirm none reject the new `PAYLOAD_DUE_BPS` or the raised `MIN_BUILDER_WITHDRAWABILITY_DELAY`
barnabasbusa
added a commit
to ethpandaops/ethereum-package
that referenced
this pull request
May 16, 2026
## Summary Mirrors [ethpandaops/ethereum-genesis-generator#293](ethpandaops/ethereum-genesis-generator#293) and brings the package in line with consensus-specs `v1.7.0-alpha.8` ([release notes](https://github.com/ethereum/consensus-specs/releases/tag/v1.7.0-alpha.8)). Only two upstream changes touch the YAML configs: - **`MIN_BUILDER_WITHDRAWABILITY_DELAY`** — mainnet default raised from `64` to `8192` epochs ([consensus-specs#5223](ethereum/consensus-specs#5223)). Minimal preset stays at `2`. The README docs were already drifted (said `4096`), so they're corrected here too. - **`PAYLOAD_DUE_BPS`** — new field, `7500` bps in both presets ([consensus-specs#5212](ethereum/consensus-specs#5212), _Introduce separate payload availability deadline_). Added as a configurable `network_params` entry (default `7500`) so devnets can override it. Also bumps the default ethereum-genesis-generator image from `6.0.6` to `6.0.7` (the patch release that carries the upstream changes). ## Test plan - [ ] `kurtosis run --enclave alpha8 . --args-file gloas_genesis.yaml` — confirm the rendered CL config contains the new `PAYLOAD_DUE_BPS: 7500` and `MIN_BUILDER_WITHDRAWABILITY_DELAY: 8192` - [ ] Validate that omitting `payload_due_bps` from a user-provided network_params still works (default fallback) - [ ] Validate that overriding `payload_due_bps` in network_params propagates into the rendered config
This was referenced May 18, 2026
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.
In the current forkchoice algorithm, if a payload is available timely but its execution takes longer than the remaining time into the slot, the next proposer is forced to reorg the payload (it did not have time to import the payload) while attesters that finish executing the payload manage to reorg it.
This allows for builders to perform an ex-ante reorg of the next proposer by releasing a payload right before the PTC deadline, making sure that the average execution time of the payload is between the remaining time of the slot and before the next attestation deadline.
The preferred method to prevent this is to set the gas limit in a manner as to which to make it impossible for these payloads to exist. This however imposes conditions on how late the PTC deadline must be. The later the PTC deadline, the smaller the gas limit that the protocol can handle. At the same time, the earlier the PTC deadline, the smaller the blob data throughput that the protocol can handle.
This simple PR enforces the mechanism proposed by @ethDreamer by which PTC attesters record the timeliness of the payload (here set to 50% of the slot) but only send the payload attestation at the deadline (today set at 75% of the slot).