Skip to content

Add multiple execution client support with Geth, Erigon, and Reth#6

Open
jacobourar wants to merge 1 commit into
migalabs:mainfrom
jacobourar:add-execution-clients
Open

Add multiple execution client support with Geth, Erigon, and Reth#6
jacobourar wants to merge 1 commit into
migalabs:mainfrom
jacobourar:add-execution-clients

Conversation

@jacobourar
Copy link
Copy Markdown

Pull Request Description

Multiple Execution Client Support

This PR adds support for multiple Ethereum execution clients, allowing users to easily switch between different implementations while maintaining compatibility with all consensus clients.

Added

New Execution Clients:

  • Geth: Added configuration with proper JWT authentication and metrics
  • Erigon: Added with BitTorrent sync support and configurable pruning
  • Reth: Added Rust Ethereum implementation with special JWT handling

Documentation:

  • Created INTEGRATION_GUIDE.md with detailed instructions for adding new clients
  • Added CHANGELOG.md to track changes systematically
  • Updated README with client-specific instructions and configuration notes

Configuration:

  • Added EXECUTION_CLIENT environment variable for easy client selection
  • Added client-specific resource limits and configuration options
  • Implemented proper port mapping to avoid conflicts

Changed

  • Restructured Docker Compose configuration for better maintainability
  • Improved environment variable organization in .env-example
  • Prometheus configuration with client-specific metrics endpoints
  • Updated documentation to reflect the multi-client architecture

Fixed

  • Resolved JWT authentication inconsistencies between clients
  • Fixed port conflicts between execution clients
  • Improved Reth configuration with proper entrypoint syntax
  • Updated Docker image references to use the correct repositories

Testing

All execution clients have been tested with multiple consensus clients to ensure:

  • Proper Engine API communication
  • Correct metrics exposure
  • Data persistence
  • Resource limit enforcement

This implementation maintains backward compatibility while providing users with more flexibility in their node setup.

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.

1 participant