Skip to content

[r3.4] hive: pin more things#20399

Merged
AskAlexSharov merged 2 commits intorelease/3.4from
alex/hive_pin_34
Apr 8, 2026
Merged

[r3.4] hive: pin more things#20399
AskAlexSharov merged 2 commits intorelease/3.4from
alex/hive_pin_34

Conversation

@AskAlexSharov
Copy link
Copy Markdown
Collaborator

Summary

Pin `ethereum/execution-apis` ref in hive rpc-compat tests, the same way
`hive_ref` already pins the hive framework itself.

- Add `execution_apis_ref` to `hive-versions.json`
- Before hive builds the rpc-compat simulator image, clone
execution-apis at the pinned ref, copy the `tests/` dir into the build
context, and patch the Dockerfile to use the local copy (the Dockerfile
already has a commented-out `ADD tests` for this purpose)
- Only runs for the `rpc/compat` matrix entry, not engine sims

The rpc-compat simulator's Dockerfile clones `ethereum/execution-apis`
at `main` HEAD on every build (`ARG branch=main`). On April 6 at ~15:00
UTC, ethereum/execution-apis#747 added `testing_buildBlockV1` tests (200
→ 208 tests). Erigon doesn't implement this method, causing 4 new
failures and breaking ci-gate on **all PRs**.

The hive framework was already pinned via `hive_ref`, but the test data
it fetches was not.

To bump execution-apis in the future, update `execution_apis_ref` in
`hive-versions.json`.

- [ ] ci-gate passes (rpc-compat runs pinned 200 tests, 0 failures)
- [ ] Engine sims unaffected (step is skipped via matrix condition)

---------

Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This PR updates `engine_forkchoiceUpdatedV2` to return `-38003: Invalid
payload attributes` when the wrong `payloadAttributes` version is used.

  In particular, FCUv2 payload-attribute version mismatches such as:
  - missing `withdrawals` at or after Shanghai
  - unexpected `withdrawals` before Shanghai

should be treated as `Invalid payload attributes`, not `Invalid params`.

  ## Why

This change aligns the client with the latest Engine API spec update in:
  - ethereum/execution-apis#761

It also follows the implementation discussion and prior client-side
change in:
  - ethereum/go-ethereum#33918

The spec was clarified so that FCUv2 now behaves consistently with newer
forkchoiceUpdated versions for payloadAttributes structure/version
  mismatches.

  ## What changed

- Updated FCUv2 payload attributes validation to return `-38003` for
payloadAttributes version mismatches.
  - Added/updated regression coverage for the affected FCUv2 cases.

  ## Hive impact

This fixes the Hive `engine-withdrawals` failure caused by returning the
wrong error code for FCUv2 payloadAttributes mismatches.

  Relevant Hive failure:
-
https://hive.ethpandaops.io/#/test/generic/1773130326-4e173a80b2b6f0634fd0139743cbe0de

After this change, the client returns the expected error code for the
affected FCUv2 cases.

If my understanding or interpretation of the spec change is incorrect,
please let me know and I can adjust the implementation accordingly.

---------

Co-authored-by: muzry.li <muzry.li1@ambergroup.io>
@AskAlexSharov AskAlexSharov enabled auto-merge (squash) April 8, 2026 07:31
Copy link
Copy Markdown
Contributor

@erigon-copilot erigon-copilot bot left a comment

Choose a reason for hiding this comment

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

[SharovBot]

LGTM.

This looks like the right backport shape:

  1. Pinning

    • adds
    • pins both and
    • patches the rpc-compat simulator Dockerfile so upstream drift stops breaking CI
  2. Engine API fix

    • now validates withdrawals presence for V2+/Capella payload attributes before proceeding and returns () instead of falling through to the wrong path
    • extracting keeps the rules shared/consistent with
  3. Tests

    • the new tests cover both invalid directions:
      • missing withdrawals after Shanghai
      • withdrawals present before Shanghai

So this PR both stabilizes the moving Hive input and fixes the engine-side payload-attributes validation mismatch that rpc-compat was surfacing.

@AskAlexSharov AskAlexSharov merged commit 82c1e00 into release/3.4 Apr 8, 2026
22 checks passed
@AskAlexSharov AskAlexSharov deleted the alex/hive_pin_34 branch April 8, 2026 07:32
AskAlexSharov added a commit that referenced this pull request Apr 8, 2026
- Cherry-pick of #20370

---------

Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Muzry <muzrry@gmail.com>
Co-authored-by: muzry.li <muzry.li1@ambergroup.io>
github-merge-queue bot pushed a commit that referenced this pull request Apr 10, 2026
## Summary
Cherry-pick of release/3.4 PRs:
- #20368 rpc: use synctest for TestClientCancelHTTP to fix CI flakiness
- #20373 integrity: blk/sec fix
- #20372 execution/state: use index-based range over log topics to avoid
copy
- #20367 fix: preserve stored chain config when genesis hash doesn't
match known chain
- #20374 ParseVersion: optimize
- #20369 batchSize: more precise estimate
- #20399 hive: pin more things

---------

Co-authored-by: erigon-copilot[bot] <265817861+erigon-copilot[bot]@users.noreply.github.com>
Co-authored-by: root <giulio.rebuffo@gmail.com>
Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Muzry <muzrry@gmail.com>
Co-authored-by: muzry.li <muzry.li1@ambergroup.io>
Co-authored-by: Andrew Ashikhmin <34320705+yperbasis@users.noreply.github.com>
Co-authored-by: info@weblogix.biz <admin@10gbps.weblogix.it>
AskAlexSharov added a commit that referenced this pull request Apr 13, 2026
- Cherry-pick of #20370

---------

Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Muzry <muzrry@gmail.com>
Co-authored-by: muzry.li <muzry.li1@ambergroup.io>
github-merge-queue bot pushed a commit that referenced this pull request Apr 14, 2026
## Summary
Cherry-pick latest 20 PRs from release/3.4 to main (15 already applied,
5 new):

- #20399 — hive: pin more things
- #20457 — up x deps
- #20469 — attempt to drop oldPrune method
- #20489 — txpool: use poolDB tx for getCachedBlobTxnLocked
- #20517 — teach: Unwind beyond data in snapshots not allowed

---------

Co-authored-by: yperbasis <andrey.ashikhmin@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Muzry <muzrry@gmail.com>
Co-authored-by: muzry.li <muzry.li1@ambergroup.io>
Co-authored-by: info@weblogix.biz <admin@10gbps.weblogix.it>
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