core/txpool: drop support for v0 blob sidecar - #35191
Merged
Merged
Conversation
healthykim
requested review from
MariusVanDerWijden,
fjl,
jwasinger and
lightclient
as code owners
June 18, 2026 19:16
fjl
approved these changes
Jun 22, 2026
healthykim
added a commit
that referenced
this pull request
Jun 26, 2026
This PR drops support for v0 blob sidecar in blobpool. Since the osaka fork activation time has passed, these code paths are now unused. It is assumed that only v1 transactions exist in the blobpool.
This was referenced Jun 26, 2026
Merged
dicethedev
pushed a commit
to dicethedev/ethrex
that referenced
this pull request
Jun 30, 2026
…heck (lambdaclass#6919) **Motivation** The `devp2p` hive suite (`TestBlobTxWithoutSidecar`, `TestBlobTxWithMismatchedSidecar`) started failing main-wide with "unexpected disconnect". The trigger is go-ethereum [#35191](ethereum/go-ethereum#35191) ("V0 Blob Sidecar Support Removal"), which makes geth always produce **v1 (EIP-7594 cell-proof)** blob sidecars — even pre-Osaka — instead of v0 (EIP-4844 blob proofs). The hive simulator builds its `devp2p` test peer from go-ethereum at image-build time, so once that picked up #35191 the peer began sending v1 sidecars, which ethrex rejected, disconnecting an otherwise-valid peer. **Description** Two independent issues surfaced, both on the mempool/propagation path (blob sidecars are never included in a block, so neither change affects consensus): 1. **Blob sidecar version acceptance** (`crates/common/types/blobs_bundle.rs`, `validate_cheap`): previously a fork-exact check (`v0` before Osaka, `v1` on Osaka+) rejected v1 sidecars pre-Osaka. The network is mid-migration to cell proofs and peers switch at different times, so pre-Osaka we now accept **both v0 and v1**; Osaka+ still requires v1. Updated the unit tests accordingly (`v1_sidecar_is_accepted_pre_osaka`, `v0_sidecar_is_rejected_on_osaka`). 2. **Pooled-transaction size check** (`crates/networking/p2p/rlpx/eth/transactions.rs`): `validate_requested` required the received transaction's encoded length to *exactly* equal the size announced in `NewPooledTransactionHashes`. geth's `Transaction.Size()` under-counts a v1 sidecar by exactly one byte — it omits the wrapper version byte — so the strict check disconnected geth on every v1 blob-tx announcement. The announced size is a soft hint; we now tolerate up to 8 bytes of skew, matching go-ethereum's tx fetcher (`eth/fetcher/tx_fetcher.go`). ethrex's own announcements already fall within geth's 8-byte tolerance, so the send side needs no change. Validated by reproducing the exact CI configuration (hive simulator rebuilt with fresh geth incl. #35191): the `devp2p` `eth` suite goes from `failed=3` to **21/21 passing**, including both target tests. `blobs_bundle` unit tests (8/8 with `--features c-kzg`) and clippy on the touched crates are clean. **Checklist** - [x] Reproduced the failure against a fresh-geth hive simulator and confirmed the fix (`devp2p`/`eth` 21/21).
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.
This PR drops support for v0 blob sidecar in blobpool. Now it is assumed that only v1 transactions exist in the blobpool.
Since the osaka fork activation time has passed, these code paths are now unused.