Skip to content

Conversation

@niran
Copy link
Contributor

@niran niran commented Jan 14, 2026

Summary

Backport of #446 to the v0.3.0 release branch.

Note: This cherry-pick required conflict resolution due to architectural differences between branches:

  • v0.3.0 uses ExEx (Execution Extensions) for canonical block processing
  • main has moved to a subscription-based approach

The core fix (hook accumulation via BaseBuilder) is identical. The differences are in how extensions access the underlying builder for ExEx installation.

Changes from main branch PR:

  • Made BaseBuilder.builder field public so extensions can call install_exex() directly on the inner OpBuilder
  • Updated extension call sites to use builder.builder.install_exex(...) pattern
  • Preserved ExEx-based canonical block handling (vs subscription-based on main)

Problem

Reth's extend_rpc_modules and on_node_started use a replacement model—each call overwrites the previous hook. This caused only the last extension's hooks to execute, making endpoints like base_meterBundle and base_transactionStatus unavailable.

Solution

The new BaseBuilder wrapper collects RPC and node-started hooks during extension setup, then applies them all in a single reth call when launching. The inner builder is exposed publicly for operations that don't need accumulation (like ExEx installation).

Closes #438

@niran niran requested a review from danyalprout January 14, 2026 17:59
Reth's `extend_rpc_modules` and `on_node_started` use a replacement
model where each call overwrites the previous hook. This caused only
the last extension's hooks to execute, making endpoints like
`base_meterBundle` and `base_transactionStatus` unavailable.

Introduce `BaseBuilder` wrapper that accumulates hooks in vectors,
then applies them all in a single reth call when launching. This
maintains the existing extension API while fixing the accumulation
issue.

Closes #438
@niran niran force-pushed the fix/rpc-extension-hook-accumulation-v0.3.0 branch from 4924a7b to 2f3e12c Compare January 14, 2026 19:16
@danyalprout danyalprout merged commit c2a0df0 into releases/v0.3.0 Jan 14, 2026
27 of 28 checks passed
@danyalprout danyalprout deleted the fix/rpc-extension-hook-accumulation-v0.3.0 branch January 14, 2026 20:27
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.

4 participants