WETH
Giáo trìnhConsensus layer

CL Clients

Các client của Consensus Layer

Consensus Client

Consensus clients, formerly known as eth2 clients, run Ethereum's proof-of-stake consensus algorithm allowing the network to reach agreement about the head of the Beacon Chain. Consensus clients do not participate in validating/broadcasting transactions or executing state transitions: that is done by execution clients. Consensus clients do not attest to, or propose new blocks: that is done by the validator client which is an optional add-on to the consensus client.

Overview Table

These clients are developed in different programming languages, provide have unique features and offer different performance profiles. All clients support Ethereum mainnet out of the box along with active testnets. Variety of implementations allows the network to benefit from client diversity. If you are choosing a client to use, current client diversity should be one of the main factors.

ClientLanguageDeveloperStatus
LighthouseRustSigma PrimeProduction
LodestarTypeScriptChainSafeProduction
NimbusNimStatusProduction
PrysmGoPrysmatic LabsProduction
TekuJavaConsenSysProduction
GrandineRustGrandine DevelopersProduction
CaplinGoErigonDevelopment
LambdaClassElixirLambdaClassDevelopment

Distribution

The overwhelming majority of node operators are currently using either Prysm or Lighthouse as a Consensus Client. In the interest of supporting the health of the Beacon Chain (formerly ETH2), it is recommended to use different clients. Why?

Lighthouse

Lighthouse, written in Rust by Sigma Prime, emphasizes security and performance. It's widely adopted but caution is advised as a supermajority could potentially lead to chain splits. Lighthouse is licensed under Apache 2.0 and known for its robustness in production environments.

Lighthouse provides binaries for every platform including ARM and allows cross compilation. There are portable versions which are compromising compiler performance options for a better platform compatibility. Released binaries are signed by gpg key 15E66D941F697E28F49381F426416DC3F30674B0 from security@sigmaprime.io.

Noteworthy Features:

Lodestar

Lodestar is a TypeScript-based Ethereum consensus client by ChainSafe, tailored for rapid prototyping and browser compatibility. It supports beacon node and validator client functionalities, offering essential libraries like BLS and SSZ for Ethereum protocol development. Lodestar is double-licensed under the Apache License 2.0 and the GNU Lesser General Public License (LGPL), allowing users to choose between a permissive and a copyleft licensing model.

Noteworthy Features:

Prysm

Prysmatic Labs' Prysm client, written in Go, focuses on usability and reliability. It includes a full beacon node implementation and validator client, leveraging gRPC for interprocess communication, BoltDB for storage, and libp2p for networking. Prysm is designed for secure participation in Ethereum's proof-of-stake consensus.

Noteworthy Features:

Nimbus

Nimbus, developed in Nim by Status, is optimized for resource efficiency. It supports lightweight devices like smartphones and Raspberry Pi's, conserving resources for other tasks when run on powerful servers. Nimbus features integrated validator client support, remote signing, performance analysis tools, and robust validator monitoring capabilities.

Noteworthy Features:

Teku

ConsenSys' Teku is a Java-based Ethereum consensus client offering comprehensive enterprise-grade features. It includes a full beacon node implementation, validator client, REST APIs for node management, Prometheus metrics for monitoring, and external key management for validator signing keys. Teku is suited for enterprise-level Ethereum deployments requiring scalability and operational control.

Noteworthy Features:

Grandine

Grandine is a fast and lightweight Ethereum consensus client designed with a focus on high performance and simplicity. It's written in Rust, same as Lighthouse and shares some of its libraries. Developed with parallelization and efficient resource utilization at its core, Grandine aims to push the boundaries of Ethereum's consensus layer by offering a streamlined alternative to existing clients. Its architecture is optimized to minimize latency and maximize throughput on high end machines, making it well-suited for environments where high performance is critical.

Noteworthy Features:

Caplin

Caplin is a consensus client integrated within Erigon execution client. It's basically an extra feature in Erigon that allows to run it without any external CL.

LambdaClass

LambdaClass develops a client written in Elixir. It has been started during EPF4 and grew into fully featured implementation. It is still actively developed and not used in production.

Additional resources

On this page