Supported Clients

starknode-kit supports multiple client implementations for both Ethereum and Starknet networks.

Why Multiple Clients?

Running diverse client implementations is crucial for network health and resilience. Client diversity prevents single points of failure and reduces the impact of bugs in any one implementation.

Ethereum Clients

To run an Ethereum node, you need both an execution client and a consensus client. They work together to validate and process Ethereum blocks post-merge.

Execution Clients

Handle transaction execution and state management

  • • Geth (Go)
  • • Reth (Rust)

Consensus Clients

Handle proof-of-stake consensus mechanism

  • • Lighthouse (Rust)
  • • Prysm (Go)

Starknet Clients

Starknet clients allow you to run a Starknet full node, enabling interaction with the Starknet Layer 2 network.

Starknet Clients

Full node implementations for Starknet

  • • Juno (Go) - Full node client
  • • Starknet Validator - Validator client for staking

Client Combinations

Popular client combinations for Ethereum nodes:

ExecutionConsensusCharacteristics
GethLighthouseMost popular, well-tested
RethLighthouseHigh performance, modern
GethPrysmStable, feature-rich
RethPrysmPerformance-focused

Choosing Clients

Execution Clients

Geth

  • ✅ Most widely used and tested
  • ✅ Excellent documentation
  • ✅ Large community support
  • ✅ Stable and reliable
  • ⚠️ Higher resource usage
  • ⚠️ Larger disk footprint

Reth

  • ✅ Excellent performance
  • ✅ Lower disk usage
  • ✅ Modern codebase (Rust)
  • ✅ Fast sync times
  • ⚠️ Newer, less battle-tested
  • ⚠️ Smaller community

Consensus Clients

Lighthouse

  • ✅ Fast and efficient
  • ✅ Low resource usage
  • ✅ Great documentation
  • ✅ Active development
  • ✅ Written in Rust

Prysm

  • ✅ Feature-rich
  • ✅ Good performance
  • ✅ Strong community
  • ✅ Comprehensive tooling
  • ✅ Written in Go

Starknet Clients

Juno

  • ✅ Official full node client
  • ✅ Well-maintained
  • ✅ Fast sync
  • ✅ Active community
  • ✅ Required for Starknet validator

Resource Requirements by Client

ClientRAMDiskCPU
Geth16+ GB~1.2 TB4+ cores
Reth16+ GB~900 GB4+ cores
Lighthouse8+ GB~200 GB2+ cores
Prysm8+ GB~250 GB2+ cores
Juno8+ GB~300 GB2+ cores

💡 Recommendation

For most users, we recommend Reth + Lighthouse for Ethereum (best performance) and Juno for Starknet.

Client Diversity

Client diversity is critical for network health. If a single client has a bug and it's used by the majority of nodes, it could cause network issues or even finality problems.

Current client distribution matters! Consider using minority clients to help decentralize the network.

Switching Clients

You can switch clients at any time:

  1. Stop your current clients: starknode-kit stop
  2. Remove old client: starknode-kit remove --execution_client geth
  3. Add new client: starknode-kit add --execution_client reth
  4. Start nodes: starknode-kit start

⚠️ Note

Switching clients may require re-syncing from scratch, which can take several days. Plan accordingly and ensure you have sufficient disk space.

📖 Next Steps

Ready to dive deeper? Check out our validator guide: