Skip to content

clients/go-ethereum: restore amsterdam entry in blobSchedule - #1452

Merged
spencer-tb merged 1 commit into
ethereum:masterfrom
qu0b:qu0b/restore-geth-amsterdam-blobschedule
Apr 27, 2026
Merged

spencer-tb merged 1 commit into
ethereum:masterfrom
qu0b:qu0b/restore-geth-amsterdam-blobschedule

Conversation

@qu0b

@qu0b qu0b commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Re-adds the amsterdam entry to geth's genesis blobSchedule. The entry was removed in #1387, but geth's chain-config validator still rejects genesis files where amsterdamTime is set without blobSchedule.amsterdam, so any hive simulator targeting an Amsterdam-active devnet (bal-devnet-4, glamsterdam-devnet-N, …) fails immediately at:

Fatal: Failed to write genesis block: invalid chain configuration:
missing entry for fork "amsterdam" in blobSchedule

The validation lives in params/config.go::checkBlobSchedule: if a fork timestamp is set, the corresponding blob-schedule entry must be non-nil.

Why

Even though #1387 dropped the named-fork blob defaults from the mapper, geth on bal-devnet-4 (and glamsterdam-devnet-0) hasn't yet relaxed the validator to make Amsterdam optional, so hive currently can't bring up geth on those devnets at all. Restoring the entry here is the minimum-impact fix while a future geth PR (or a follow-up hive change) decides on the long-term shape of the blob schedule for named forks.

Defaults follow the bpo2 cadence (target=14, max=21, baseFeeUpdateFraction=11684671), and are overridable per-test via:

  • HIVE_AMSTERDAM_BLOB_TARGET
  • HIVE_AMSTERDAM_BLOB_MAX
  • HIVE_AMSTERDAM_BLOB_BASE_FEE_UPDATE_FRACTION

Test plan

  • hive --client go-ethereum against any Amsterdam-active simulator (e.g. eels/consume-engine with bal-devnet-4 fixtures) reaches the running state instead of dying at geth init.
  • Set HIVE_AMSTERDAM_BLOB_TARGET/_MAX/_BASE_FEE_UPDATE_FRACTION and confirm overrides land in the generated genesis.

🤖 Generated with Claude Code

Restore the amsterdam blob schedule entry in the geth genesis mapper.
Without this entry, geth's chain config validation
(`params/config.go::Validate`) errors out at genesis init whenever
`amsterdamTime` is set:

  Fatal: Failed to write genesis block: invalid chain configuration:
  missing entry for fork "amsterdam" in blobSchedule

The entry was previously removed in ethereum#1387, but the validation in geth's
bal-devnet-4 / glamsterdam branches (and on master) still rejects a
genesis where `amsterdamTime` is set without a corresponding
`blobSchedule.amsterdam`. Test devnets that activate Amsterdam (e.g.
bal-devnet-4) currently fail to launch under hive against geth.

Defaults follow the bpo2 cadence (target=14, max=21,
baseFeeUpdateFraction=11684671) — overridable per-test via
`HIVE_AMSTERDAM_BLOB_TARGET`, `HIVE_AMSTERDAM_BLOB_MAX`, and
`HIVE_AMSTERDAM_BLOB_BASE_FEE_UPDATE_FRACTION`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

@spencer-tb spencer-tb left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM! Will merge for now!

@spencer-tb
spencer-tb merged commit faf647d into ethereum:master Apr 27, 2026
6 checks passed
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