Skip to content

Add gas limit schedule (EIP-8261) - #5533

Merged
jtraglia merged 7 commits into
ethereum:masterfrom
barnabasbusa:feat/gas-limit-schedule
Aug 13, 2026
Merged

jtraglia merged 7 commits into
ethereum:masterfrom
barnabasbusa:feat/gas-limit-schedule

Conversation

@barnabasbusa

@barnabasbusa barnabasbusa commented Aug 11, 2026 •

Copy link
Copy Markdown
Member

Summary

Adds the optional GAS_LIMIT_SCHEDULE field from EIP-8261 to the standard configs and defines it in the Gloas spec.

EIP-8261 (Informational) recommends an optional CL configuration field giving, per fork epoch, the default gas limit for unconfigured validators and the recommended maximum:

GAS_LIMIT_SCHEDULE:
  - EPOCH: 500000
    GAS_LIMIT: 60000000

Changes

  • configs/mainnet.yaml / configs/minimal.yaml: add GAS_LIMIT_SCHEDULE: [] under the (renamed) Scheduling section.
  • specs/gloas/beacon-chain.md: define the schedule as a list-of-records configuration (mirroring Fulu's BLOB_SCHEDULE) plus a get_scheduled_gas_limit(epoch) helper returning the active scheduled gas limit, or None when the schedule is empty or the epoch predates every entry.

The field is advisory: it introduces no new validity rules, clients that do not support it ignore it, and an empty schedule is a no-op for clients that do.

make lint passes; the generated pyspec picks up the new configuration variable and helper.

https://claude.ai/code/session_017jVHwwK1C3h1caJFyabeVm

Comment thread configs/minimal.yaml Outdated
Comment thread configs/mainnet.yaml Outdated
Comment thread configs/mainnet.yaml Outdated
@jtraglia jtraglia changed the title Add optional EIP-8261 GAS_LIMIT_SCHEDULE field to configs Add gas limit schedule (EIP-8261) Aug 11, 2026
Rename the config section to Scheduling, drop the config comments, and
define GAS_LIMIT_SCHEDULE in specs/gloas/beacon-chain.md as a
list-of-records with a get_scheduled_gas_limit helper, mirroring the
Fulu BLOB_SCHEDULE pattern.

Claude-Session: https://claude.ai/code/session_017jVHwwK1C3h1caJFyabeVm
@barnabasbusa barnabasbusa changed the title Add gas limit schedule (EIP-8261) Add optional EIP-8261 gas limit schedule Aug 11, 2026
@github-actions github-actions Bot added the gloas label Aug 11, 2026
@barnabasbusa barnabasbusa changed the title Add optional EIP-8261 gas limit schedule Add gas limit schedule (EIP-8261) Aug 11, 2026
Comment thread specs/gloas/beacon-chain.md
nflaig added a commit to ChainSafe/lodestar that referenced this pull request Aug 13, 2026
Implements [EIP-8261](https://eips.ethereum.org/EIPS/eip-8261) as an
advisory epoch-based gas limit schedule

- add `GAS_LIMIT_SCHEDULE` config parsing, serialization, validation and
epoch lookup
- evaluate the schedule per duty from Gloas for builder registrations
and proposer preferences
- honor explicit operator preferences and warn when they exceed the
active recommendation
- keep the current 60M default before Gloas, before the first schedule
entry or when the field is absent
- leave built-in schedules empty until network configs define canonical
entries
- keep block validity and fork digests unchanged, the current EIP
introduces no consensus rules

See ethereum/consensus-specs#5533
@jtraglia
jtraglia merged commit 2359a5e into ethereum:master Aug 13, 2026
17 checks passed
gitToki pushed a commit to gitToki/prysm that referenced this pull request Sep 9, 2026
- Bump consensus spec tests from v1.7.0-alpha.12 to v1.7.0-beta.0,
through alpha.13 and alpha.14
- alpha.13: Look up payload availability at the parent block's slot
([consensus-specs#5473](ethereum/consensus-specs#5473))
- alpha.13: Enable equivocation tracking by default, gated on the early
cutoff window, required by the `should_apply_proposer_boost` fork-choice
tests
([consensus-specs#5441](ethereum/consensus-specs#5441))
- alpha.13: Source KZG spec test vectors from
ethereum/cryptography-specs
([consensus-specs#5398](ethereum/consensus-specs#5398))
- alpha.14: Explicitly set bid fields, including the slot, when
upgrading to Gloas
([consensus-specs#5550](ethereum/consensus-specs#5550),
[consensus-specs#5553](ethereum/consensus-specs#5553))
- alpha.14: Disallow proposer reorgs at epoch boundaries before Fulu
([consensus-specs#5547](ethereum/consensus-specs#5547))
- alpha.14: Refresh ethspecify references, add exceptions for named SSZ
collections
([consensus-specs#5528](ethereum/consensus-specs#5528)),
executable gossip validation functions
([consensus-specs#5294](ethereum/consensus-specs#5294)),
and the gas limit schedule
([consensus-specs#5533](ethereum/consensus-specs#5533))
- beta.0: Reject bids whose block hash equals the parent block hash, in
state transition and gossip
([consensus-specs#5594](ethereum/consensus-specs#5594),
cherry-picked from OffchainLabs#17443)
- beta.0: Read the parent slot from the latest block header when
applying the parent payload
([consensus-specs#5554](ethereum/consensus-specs#5554))
- beta.0: Rename the PTC SSZ types to `PayloadTimelinessCommittee*` in
ethspecify references
([consensus-specs#5558](ethereum/consensus-specs#5558))
- The beta.0 `minimal.tar.gz` is not published yet, so the WORKSPACE
minimal hash still points at alpha.14 and will be updated once the asset
lands

---------

Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
mergify Bot pushed a commit to sigp/lighthouse that referenced this pull request Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants