Skip to content

feat(spec-specs,test-forks,tests): implement EIP-8198 quick slots - #3703

Merged
spencer-tb merged 7 commits into
ethereum:eips/bogota/eip-8198from
barnabemonnot:eips/bogota/eip-8198
Oct 6, 2026
Merged

spencer-tb merged 7 commits into
ethereum:eips/bogota/eip-8198from
barnabemonnot:eips/bogota/eip-8198

Conversation

@barnabemonnot

@barnabemonnot barnabemonnot commented Oct 4, 2026 •

Copy link
Copy Markdown

Description

Implements the execution-layer side of EIP-8198: Quick Slots (12s → 10s slots) in the Bogota fork. The EL never consumes the slot duration; its diff is two fork-activated parameter changes:

  • Base fee: the maximum per-block change becomes BASE_FEE_MAX_CHANGE_NUMERATOR / BASE_FEE_MAX_CHANGE_DENOMINATOR = 5/48, multiplying before dividing (target_fee_gas_delta * 5 // 48). This matches the per-second reaction rate of 1/8 at 12s to first order; at the extremes the base fee rises ~1.0% faster and falls ~1.1% slower per second.
  • Blob schedule (provisional): target 12, maximum 18, BLOB_BASE_FEE_UPDATE_FRACTION 12018519. These keep the fastest rise and fall of the blob base fee per second and the 1.5 max/target ratio; blob throughput per second is +2.9% at both target and maximum. Final values are pending a joint decision with the CL (the CL BLOB_SCHEDULE needs a matching entry).
  • Gas limit: unchanged. The ordinary ±1/1024 rule applies across the fork; tests guard this.

Test framework:

  • Adds base_fee_max_change_numerator() (1 from London) and uses it in the EIP-1559 calculators, plus an EIP8198 mixin for Bogota.
  • Fixes the state-test → blockchain-test conversion, which backed out the genesis base fee assuming a 1/8 max change (* 8 // 7); it now uses the genesis fork's fraction. Output is unchanged for 1/8 forks.

Tests in tests/bogota/eip8198_quick_slots/ cover base fee updates at max, target and small values (including the 1-wei increase floor), the base fee rule and gas limit rule on each side of the fork, and blob limits, excess blob gas and blob base fee before, at and after the fork. The ref-spec pin is the blob of the EIP text with the proposed EL values filled in (to be proposed on ethereum/EIPs#12217).

Depends on #3665 (Bogota fork module). Until it lands and this is rebased, the diff includes that module; please review only the last four commits.

Related Issues or PRs

Depends on #3665. EIP: ethereum/EIPs#12217. CL: ethereum/consensus-specs#5592. Tracker: #3664.

Checklist

  • Ran fast static checks to avoid CI fails, see Code Standards & Verifying Changes: just static
  • PR title has the form <type>(<area>): <title>, where <type> and <area> come from an appropriate C-<type>, respectively A-<area>, label. The title should match the target squash commit message.

@spencer-tb
spencer-tb changed the base branch from forks/bogota to eips/bogota/eip-8198 October 5, 2026 20:55
@spencer-tb
spencer-tb force-pushed the eips/bogota/eip-8198 branch from af38814 to 011ee1d Compare October 5, 2026 22:45
@spencer-tb
spencer-tb force-pushed the eips/bogota/eip-8198 branch from 1ad96e5 to 53ec7a8 Compare October 5, 2026 22:56
barnabemonnot and others added 7 commits October 5, 2026 23:59
…gota

Lower the maximum per-block base fee change to 5/48, as the rational
BASE_FEE_MAX_CHANGE_NUMERATOR / BASE_FEE_MAX_CHANGE_DENOMINATOR with the
multiplication before the division, and set the provisional blob
schedule (target 12, maximum 18, update fraction 12018519). The gas
limit adjustment rule is unchanged.
… mixin

Add `base_fee_max_change_numerator()` (1 from London) and use it in the
EIP-1559 base fee calculators. Add the EIP-8198 mixin to Bogota with the
5/48 maximum base fee change and the provisional blob schedule.
…ax change

The state-to-blockchain conversion assumed a maximum base fee change of
1/8 when backing out the genesis base fee. Use the genesis fork's
numerator and denominator instead; the result is unchanged for forks
using 1/8.
Cover the base fee update at its maximum, at target and at small values,
the base fee rule and the unchanged gas limit adjustment across the
fork, and blob limits, excess blob gas and blob base fee before, at and
after the fork.
@spencer-tb
spencer-tb force-pushed the eips/bogota/eip-8198 branch from 011ee1d to de5b55c Compare October 5, 2026 23:02
@codecov

codecov Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.93%. Comparing base (53ec7a8) to head (de5b55c).

Additional details and impacted files
@@                   Coverage Diff                    @@
##           eips/bogota/eip-8198    #3703      +/-   ##
========================================================
+ Coverage                 94.91%   94.93%   +0.02%     
========================================================
  Files                       672      672              
  Lines                     40846    40849       +3     
  Branches                   3775     3775              
========================================================
+ Hits                      38767    38779      +12     
+ Misses                     1445     1440       -5     
+ Partials                    634      630       -4     
Flag Coverage Δ
unittests 94.93% <100.00%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@spencer-tb spencer-tb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some commits, rebased on forks/bogota, and changed the base branch to eips/bogota/eip-8198 == forks/bogota :)

Happy to merge to eips/bogota/eip-8198 when you see fit.. once the EIPs repo PR is merged. If this gets included in focil-devnet-1 we can later PR to devnets/focil/1 and get a wider review from the team!

@barnabemonnot
barnabemonnot marked this pull request as ready for review October 6, 2026 09:14
@barnabemonnot

Copy link
Copy Markdown
Author

Thank you for the review and edits @spencer-tb ! I'm happy to merge anytime, not sure if we should block on the EIP PR itself getting merged.

@spencer-tb
spencer-tb merged commit bf250eb into ethereum:eips/bogota/eip-8198 Oct 6, 2026
28 checks passed
fselmo pushed a commit that referenced this pull request Oct 8, 2026
)

Co-authored-by: spencer-tb <spencer.tb@ethereum.org>
fselmo pushed a commit that referenced this pull request Oct 12, 2026
)

Co-authored-by: spencer-tb <spencer.tb@ethereum.org>
@spencer-tb spencer-tb mentioned this pull request Oct 12, 2026
6 tasks done
fselmo pushed a commit that referenced this pull request Oct 14, 2026
)

Co-authored-by: spencer-tb <spencer.tb@ethereum.org>
fselmo pushed a commit that referenced this pull request Oct 19, 2026
)

Co-authored-by: spencer-tb <spencer.tb@ethereum.org>
github-actions Bot pushed a commit that referenced this pull request Oct 21, 2026
)

Co-authored-by: spencer-tb <spencer.tb@ethereum.org>
@spencer-tb spencer-tb mentioned this pull request Oct 22, 2026
8 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants