0%
Overview page background
HomeOverviewsEthereum
Execution Layer (EL) and Consensus Layer (CL) Node Clients

Execution Layer (EL) and Consensus Layer (CL) Node Clients

Alchemy headshot

Written by Alchemy

Brady Werkheiser headshot

Reviewed by Brady Werkheiser

Published on July 8, 20223 min read

Ethereum’s rampant success in recent years has propelled its popularity amongst blockchain enthusiasts. As a result, Ethereum has experienced a wide array of scalability issues, commonly observed with its high gas fees, slow block times, and network congestion.

By separating Ethereum into two highly-optimized layers, an execution layer (EL) and a consensus layer (CL), the network becomes more scalable. Each layer requires slightly different node client infrastructure.

In this article we will highlight the main Ethereum node clients:

  • Geth (Go Ethereum)

  • Nethermind

  • Erigon

  • Hyperledger Besu

We will also highlight the main consensus layer node clients:

  • Prsym

  • Teku

  • Lighthouse

  • Nimbus

  • Lodestar

In the current blockchain ecosystem, popular blockchain execution layer clients are Geth (80.1%), Erigon (8.7% Adoption), Besu (3.0%), and Nethermind (2.6%). 

Execution layer clients run on the execution layer to maintain and manage the overall state of the blockchain while also completing the transactions using virtual machines.

Using Geth, developers can interact with the Ethereum blockchain via Ethereum nodes using the command line and the Go programming language. Developers can use Geth to enact Ethereum transactions or mine Ethereum’s native cryptocurrency, ETH. 

Copied
brew tap ethereum/ethereum brew install ethereum brew install ethereum --devel

Erigon is an Ethereum execution layer client written in the Go programming language. Erigon provides an optimized implementation of Ethereum that emphasizes speed, and is primarily used to run archive nodes which manage large amounts of state data.

Copied
git clone --recurse-submodules -j8 https://github.com/ledgerwatch/erigon.git cd erigon make erigon ./build/bin/erigon

While Erigon is a popular client implementation for archive nodes, clients like Silkworm (C++) and Akula (Rust), have demonstrated comparable, if not better performance for running archive nodes.

Besu is an Ethereum execution layer client built by Hyperledger using the Java programming language under the Apache 2.0 license, allowing engineers to run Ethereum nodes.

Developers can interact with Besu using the command line and JSON-RPC API, accessible via RPC, HTTP, or WebSockets. Besu is used for ETH mining and engineering smart contracts or decentralized applications.

Copied
brew tap hyperledger/besu brew install hyperledger/besu/besu

Nethermind is an Ethereum execution layer client built on the .NET core that allows engineers to develop on Ethereum nodes.

Copied
brew tap nethermindeth/nethermind brew install nethermind

The consensus layer serves as the new backend infrastructure for the Ethereum blockchain, hosting and verifying the efficacy of validators.

In the PoS model, the validation occurs in the form of staking, where validators stake ETH as collateral which can be taken by the network (slashed) in the case of misbehavior.

Several consensus layer clients exist including Lighthouse, Prysm, Nimbus, Teku, and Lodestar.

Lighthouse is a consensus layer client developed by Sigma Prime and written in the Rust programming language. Lighthouse’s implementation emphasizes security and performance speed amidst the Ethereum merge to PoS. 

Copied
brew install lighthouse

Prysm is a consensus layer client developed by Prysmatic Labs in the Go programming language. Prysm’s implementation comprehensively incorporates Ethereum’s PoS and staking protocol, while placing a strong focus on security and reliability.

Copied
mkdir prysm && cd prysm curl https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh --output prysm.sh && chmod +x prysm.sh

Nimbus is a consensus layer client developed using the Rust programming language. Nimbus’ consensus layer client implementation concentrates on developing a lightweight client that is capable of being hosted on a wide range of hardware devices.

Copied
git clone https://github.com/status-im/nimbus-eth1 cd nimbus-eth1 make update make nimbus ./build/nimbus

Teku is a consensus layer client developed by the Besu team, using the Java programming language. Teku’s implementation targets institutional investors rather than the general public. 

Copied
brew tap ConsenSys/teku brew install ConsenSys/teku/teku

Lodestar is a consensus layer client developed by ChainSafe Systems in the Typescript programming language. Lodestar is developed to be a deployable and lightweight client while appealing to Typescript and Javascript developers.

Copied
npm install -g @chainsafe/lodestar-cli

The separation of the execution and consensus layers was a part of the long awaited Ethereum Merge upgrade in 2022.

Overview cards background graphic
Desktop section background image

Build blockchain magic

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.

Get your API key