Skip to content

Setup for the Glamsterdam hardfork: schedule, block header, and fixture harness - #2870

Open
anvacaru wants to merge 10 commits into
masterfrom
amsterdam-foundation
Open

Setup for the Glamsterdam hardfork: schedule, block header, and fixture harness#2870
anvacaru wants to merge 10 commits into
masterfrom
amsterdam-foundation

Conversation

@anvacaru

@anvacaru anvacaru commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Defining the base for the Amsterdam (Glamsterdam EL) fork: the schedule, the new block-header shape, and the conformance fixture pin. Individual Amsterdam EIP PRs will build on this.

Changes:

  • AMSTERDAM schedule (inherits Osaka) wired through gst_to_kore/cli.
  • Adding new rules to parse the 23-field Amsterdam block header (with the new cells for blockAccessListHash (EIP-7928), and slotNumber (EIP-7843)). The <balHash>/<slotNumber> cells are populated and hash-validated as header fields here; their semantics land with the EIP-7928/EIP-7843 PRs.
  • Discard the per-block receipts/blockAccessList fixture bodies in the harness (_GST_DISCARD_KEYS): both are committed to by header fields (receiptTrie, blockAccessListHash), so the bodies carry no extra validation signal.
  • Amsterdam blob schedule constants.
  • Pin execution-spec-tests fixtures to tests-glamsterdam-devnet@v7.2.0 (from ethereum/execution-specs).
  • Test harness: tolerate blank lines in skip-list files.

anvacaru and others added 10 commits July 24, 2026 15:46
….py: parse Amsterdam block header (blockAccessListHash, slotNumber); discard receipts/blockAccessList fixture keys in the harness
… max 21 / fraction 11684671)

AMSTERDAM inherited the Osaka/Prague blob parameters (target 6 / max 9 /
fraction 5007716). EELS amsterdam vm/gas.py has BLOB_SCHEDULE_TARGET = 14
and BLOB_SCHEDULE_MAX = 21 (at PER_BLOB = 2^17: Gtargetblobgas = 1835008,
Gmaxblobgas = 2752512) and BLOB_BASE_FEE_UPDATE_FRACTION = 11684671,
matching the mainnet BPO2 blob schedule (EIP-8135 / EIP-7892) that
Amsterdam starts from.

Raising Gmaxblobgas from 9 to 21 blobs exposes the pre-existing missing
EIP-7594 per-tx blob limit (EELS BLOB_COUNT_LIMIT = 6, fork.py:150):
the blob_count_21 sub-case of invalid_max_blobs_per_tx was previously
rejected by the too-small inherited block max instead of the per-tx
check. Mask it in failing.llvm next to its already-masked blob_count_7/8
siblings until the per-tx limit is implemented.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
read_csv_file crashed test collection with IndexError on any blank
line in failing.llvm/slow.llvm — which the fixtures-failing-list
Makefile target itself can produce via its sort/sed post-processing.
Skip empty rows.
# Conflicts:
#	kevm-pyk/src/kevm_pyk/kproj/evm-semantics/driver.md
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.

1 participant