Skip to content

feat(collector): make blob (type-3) sidecar requirement opt-in#88

Open
curcio wants to merge 3 commits into
mainfrom
fix-blob-tx-sidecar-rejection
Open

feat(collector): make blob (type-3) sidecar requirement opt-in#88
curcio wants to merge 3 commits into
mainfrom
fix-blob-tx-sidecar-rejection

Conversation

@curcio

@curcio curcio commented Jun 4, 2026

Copy link
Copy Markdown
Member

📝 Summary

This pull request introduces a new configuration option to control the handling of EIP-4844 (type-3) transactions with missing blob sidecars. By default, the collector is now permissive and accepts canonical-only blob transactions, but a new flag allows restoring the previous strict validation behavior. The main changes are as follows:

Configuration and CLI changes:

  • Added a new CLI flag require-blob-sidecar (and corresponding environment variable) to enable strict validation for blob transactions, rejecting those without a sidecar. This restores pre-v1.4 behavior when enabled. (cmd/collect/main.go)
  • Passed the require-blob-sidecar flag through the collector and transaction processor configuration structs. (cmd/collect/main.go, collector/collector.go, collector/tx_processor.go) [1] [2] [3] [4] [5] [6] [7]

Transaction validation logic:

  • Updated the blob transaction validation logic in validateBlobTx so that, by default, blob transactions without a sidecar are accepted, and strict rejection only occurs if requireBlobSidecar is set. (collector/tx_processor.go) [1] [2]

⛱ Motivation and Context

The collector's validateBlobTx rejects every EIP-4844 (type-3) transaction whose BlobTxSidecar() is nil, routing it to the trash file. In practice, this drops all blob transactions when the collector is fed by a standard Execution-Layer JSON-RPC subscription (eth_subscribe("newPendingTransactions") on geth / reth, and most public mempool feed providers).

The user-visible effect is that for collectors using JSON-RPC sources (i.e., most setups), the transactions output / ClickHouse table contains no type-3 rows at all, even though sourcelogs and other hash-level outputs do see them.

📚 References


✅ I have run these commands

  • make lint
  • make test
  • go mod tidy

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

Comment thread collector/tx_processor.go Outdated
Comment thread collector/tx_processor.go Outdated
Comment thread collector/tx_processor.go
curcio and others added 2 commits June 4, 2026 14:42
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@curcio curcio requested a review from metachris June 4, 2026 17:46
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