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 2022-07-083 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.

1. Geth (Go Ethereum)

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. 

How to Set Up the Geth Client on MacOS (Homebrew)

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

2. Erigon

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.

How to Set Up the Erigon Client on MacOS

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.

3. Besu

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.

How to Set Up the Besu Client on MacOS

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

4. Nethermind

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

How to Set Up the Nethermind Client on MacOS

Copied
brew tap nethermindeth/nethermind brew install nethermind

What is the consensus layer?

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.

What are the Ethereum consensus layer clients?

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

1. Lighthouse

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. 

How to Set Up the Lighthouse Client on MacOS

Copied
brew install lighthouse

2. Prysm

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.

How to Set Up the Prysm Client on MacOS

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

3. Nimbus

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.

How to Set Up the Nimbus Client on MacOS

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

4. Teku

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. 

How to Set Up the Teku Client on MacOS

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

5. Lodestar

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.

How to Set Up the Lodestar Client on MacOS

Copied
npm install -g @chainsafe/lodestar-cli

Conclusion

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

Overview cards background graphic
Section background image

Build blockchain magic with Alchemy

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