Add Glamsterdam support to hivechain - #1589
Merged
lightclient merged 11 commits intoAug 24, 2026
Merged
Conversation
This was referenced Jul 27, 2026
4 tasks
The calltree contract and tx mods landed upstream in ethereum#1587 (with mod_calltree renamed to mod_tracetest); keep only the test that guards the coupling between the callee address constants in genesis.go and the addresses compiled into bytecode/calltree.bin.
…conly tests Validate speconly debug_trace* responses against the anyOf branch matching the tracer the test requested. The whole-schema validation was vacuous: the unconstrained named-tracer branch accepts any value. A known tracer with no matching branch is an error, not a fallback.
lightclient
reviewed
Aug 24, 2026
MysticRyuujin
marked this pull request as ready for review
August 24, 2026 19:17
Contributor
Author
|
Someone from geth maybe chime in but I think this can be updated to point back to main? |
The bpo1-bpo5 blobSchedule entries were emitted unconditionally with hardcoded fallback values, while the matching bpoNTime fields are dropped by remove_empty when their HIVE_BPON_TIMESTAMP is unset. On a chain whose last fork is Amsterdam, geth then resolved the active fork's blob schedule to the phantom bpo5 entry (target 9, max 14) rather than bpo2 (target 14, max 21), so eth_config reported blob parameters that did not match the chain and the rpc-compat eth_config test failed. Gate each entry on its HIVE_BPON_TIMESTAMP so an unscheduled BPO is omitted from the generated genesis entirely.
The expanded output list was unconditionally overwritten by
splitAndTrim("all") right below, so -outputs all failed with an
unknown output name ever since the flag was introduced in ethereum#909.
lightclient
force-pushed
the
glamsterdam-hivechain-prereqs
branch
from
August 24, 2026 23:38
19e506f to
1c5b5b8
Compare
Collaborator
|
The description of this PR says the tracer-schema related changes are included in this, but they actually are: https://github.com/ethereum/hive/pull/1589/changes#diff-e0a6b2c60f85be691cd18bc590404e13214dde4e8f8a7819a4bb404f1b20cfcaR14 |
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.
Adds the hive prerequisites to test Glamsterdam in execution-apis. This is an integration branch for ethereum/execution-apis#851. It can be rebased as the dependent PRs land.
The tracer-aware schema selection in rpc-compat is removed from this branch. It stays in #1588 as a separate change.
What it contains
glamsterdam-devnet-8.engine_newPayloadV5with block access lists and slot numbers,engine_forkchoiceUpdatedV4with three parameters, hex-encoded execution requests, and EIP-8282 builder deposit and exit transactions.baloutput that dumps each Amsterdam block's access list. Each dump carries the header hash and the hash of the assembled list, and the dump also runs when import fails. That made the fork-boundary mismatch below diagnosable.bpo1tobpo5blob schedules unconditionally, with hardcoded fallback values. On a chain that ends at Amsterdam, geth resolved the active blob schedule to the phantombpo5entry, soeth_configreported blob parameters that did not match the chain.Dependencies
go.modpins go-ethereum ataa1f2fcf, the tip ofglamsterdam-devnet-8. The publishedethpandaops/geth:glamsterdam-devnet-8image is built from the same commit, so the fixture generator and the client under test agree. The branch includes currentethereum/hivemaster.Testing (2026-08-20)
-lastfork amsterdam -length 60, Amsterdam at block 57), with all six clients on theirglamsterdam-devnet-8images:Known issues
eth_simulateV1responses:hash,stateRoot,parentHash,blockAccessListHash,size. The running clients produce differentblockAccessListHashvalues from each other and from geth for the same simulated block. Nothing pins down the access list of a simulated block. This is an execution-apis question, not a defect in one client.Base fee per gas is incorrect. This is its known pre-merge chain limitation, separate from the fixed V4 parameter handling in engine_forkchoiceUpdatedV4 rejects the spec's third parameter (custodyColumns) lambdaclass/ethrex#7074.eth_simulateV1/ethSimulate-two-blocks-with-complete-eth-sendscarries{"code": -32015, "message": "out of gas"}, and the spec requires a-32015message to match^vm execution error.*. This is a spec-versus-geth question to raise in execution-apis.