Skip to content

Glamsterdam devnet-7: adopt EIP-7688 SSZ types#126

Open
barnabasbusa wants to merge 3 commits into
mainfrom
glamsterdam-devnet-7
Open

Glamsterdam devnet-7: adopt EIP-7688 SSZ types#126
barnabasbusa wants to merge 3 commits into
mainfrom
glamsterdam-devnet-7

Conversation

@barnabasbusa

Copy link
Copy Markdown
Contributor

Summary

Bumps `github.com/ethpandaops/go-eth2-client` to the `pk910/eip-7688` branch (`v0.1.5` → `v0.1.6-0.20260629130636-6d2ee1978c4e`) to adopt EIP-7688 progressive SSZ merkleization for Glamsterdam devnet-7.

Why

On devnet-7, ePBS bid submission fails with:

```
status 400: {"code":400,"message":"Invalid execution payload bid: Invalid payload execution bid signature"}
```

Root cause is the hash-tree-root, not the key/domain/fields (all verified correct: `builders[0].pubkey` matches our BLS key, domain type `0x0B000000`, Gloas fork version `0x80000038`, genesis validators root all match).

EIP-7688 changes the `ExecutionPayloadBid` merkleization from a plain binary tree to a progressive container with active-fields:

```

  • StartTree(TreeTypeBinary) / MerkleizeWithMixin / Merkleize
  • StartTree(TreeTypeProgressive) / MerkleizeProgressiveWithMixin / MerkleizeProgressiveWithActiveFields(…, {0xff,0x0f})
    ```

buildoor on v0.1.5 signed the old binary root while Teku (devnet-7) verifies the progressive root → BLS verification fails. The bumped go-eth2-client regenerates the SSZ code with progressive merkleization, producing the matching signing root.

Notes

  • The `pk910/eip-7688` branch lives on the ethpandaops fork, so no `replace` directive is needed.
  • Existing `dynamic-ssz v1.3.2` already provides the progressive hasher APIs — no dynssz bump required.
  • One-line dependency change (`go.mod`/`go.sum`).

Testing

  • `go build ./...` — clean
  • `go test` — green for `builderapi`, `fulu`, `gloas`, `validators`, `chain`
  • `build-docker-image` label applied so a devnet-7 image is produced from this PR.

🤖 Generated with Claude Code

Adopts progressive SSZ merkleization (EIP-7688) for consensus types.
Fixes 'Invalid payload execution bid signature' on ePBS bid submission:
the ExecutionPayloadBid hash-tree-root now uses progressive-container
merkleization with active fields, matching Teku's devnet-7 root instead
of the old plain binary-tree root.

go-eth2-client v0.1.5 -> v0.1.6-0.20260629130636-6d2ee1978c4e
barnabasbusa and others added 2 commits July 2, 2026 13:26
The old EIP-8282 builder deposit predeploy 0x0000884d...8282 has no code
on Glamsterdam devnet-7, so deposit txs succeeded as bare value transfers,
emitted no builder-deposit request, and the builder never entered
state.builders (registration timed out and re-deposited in a loop).

Point BuilderDepositContractAddress at the devnet-7 predeploy
0x00006AE84ed173D4394de5E28F9ED56b28008282. Exit contract unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant