Skip to content

Conversation

@Savid
Copy link
Member

@Savid Savid commented Jan 22, 2026

Introduce abstraction layer for execution nodes to support both RPC-based and embedded usage patterns.

  • Add Node interface defining the contract for execution data providers
  • Add DataSource interface for hosts to provide data directly
  • Add EmbeddedNode implementation that delegates to a DataSource
  • Rename existing implementation to RPCNode
  • Add NewPoolWithNodes() for creating pools with pre-created nodes
  • Update pool to work with Node interface instead of concrete types
  • Replace go-ethereum types (Block, Transaction, Receipt) with abstract interfaces to enable library embedding without CGO.
  • Move geth-specific RPC implementation to pkg/ethereum/execution/geth/ subpackage with build tags, allowing clean separation between embedded and RPC modes.

Savid added 2 commits January 22, 2026 12:20
Introduce abstraction layer for execution nodes to support both RPC-based
and embedded usage patterns.

- Add Node interface defining the contract for execution data providers
- Add DataSource interface for hosts to provide data directly
- Add EmbeddedNode implementation that delegates to a DataSource
- Rename existing implementation to RPCNode
- Add NewPoolWithNodes() for creating pools with pre-created nodes
- Update pool to work with Node interface instead of concrete types
Replace go-ethereum types (Block, Transaction, Receipt) with abstract
interfaces to enable library embedding without CGO. Move geth-specific
RPC implementation to pkg/ethereum/execution/geth/ subpackage with
build tags, allowing clean separation between embedded and RPC modes.
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