What is Ethereum client

What is Ethereum client

Grab the concept in 3 minutes!

Β·

3 min read

Intro

In this episode of "Ethereum & Me" I wanted to move the topic of Ethereum clients. What are they, how do they work, what are their components & more!

Enjoy!


What is Ethereum Client

An Ethereum client is basically a piece of software that can, using Ethereum protocol, communicate with other Ethereum clients. And as there are a few implementations of these clients, they can interoperate! So no matter the client a Node is using, they will all be able to speak to each other. πŸ‘

How is that possible? Through the power of MAGI.. community πŸ˜‰

As Ethereum is open-source it means that anyone can read the Ethereum source code & build something based on that.

You don't have to take my word for it -> Check it out

Most popular Ethereum Clients

As Ethereum is open-source anyone really can implement their own client, question is, whether it will be used by others. But the ones that are most popular (during writing of that article) are:

  1. GETH
  2. erigon
  3. nethermind
  4. besu
  5. Others (below 1%)

Here's a graph to please your eyes (27.10.2022):

image.png

As this information might devaluate in the future, here's a link to check for yourself: Ethernodes

Types of clients

Currently there are 3 types of clients available:

FULL CLIENT

It's main characteristic is that it holds ENTIRE Ethereum blockchain. So.. You need a lot of space if You wanna run a full Node. For today (27.10.2022) 2 Terabyte SSD... πŸ‘ŒπŸ» But once You set it up it can support the network with all the operation it needs:

  • transaction & block validation
  • executing smart contracts

LIGHT CLIENTS

Light clients tend to differ based on implementation and purpose. But usually they are used for keys & address management with some dApps interactions.

REMOTE CLIENTS

These are wallets mostly. They rely on connecting to other clients: Light or Full.

How do they function

As You could see on the pic above, the Go-Ethereum client or GETH is used by almost 80% of Nodes! 😱 So I will explain how it functions based on that implementation.

The Go-Ethereum client is considered the official implementation of the client as it's being very actively developed by the Ethereum Foundation.

But.. HOW DOES IT WORK? Generally the client is characterized by it's modular design as it consists of two main components:

  • Beacon Node
  • Execution Engine

Sketches 8.png

The Execution Engine's main role is to listen for newly broadcasted transactions in the network and executing them inside of the EVM (What is EVM?). It also holds the latest state of the Ethereum blockchain.

The Beacon Node is responsible for implementation of Proof of Stake consensus mechanism and throughout the network agreement. That is achieved via the input data acquired from the execution engine.

The Engine API is responsible for syncing these two above together for the sake of Ethereum state verification.


Summary

Ethereum clients come in various implementations such as the most popular GETH, to others like erigon or nethermind. They come also in many sizes: Full, Light or Remote. Their main task is to keep the latest blockchain state, verify it constantly and to keep the whole Ethereum network up & running securely.


If You've got that tinkerer spirit, go and check the Go-Ethereum client website -> LINK Maybe You'll be the one that will setup a new Node πŸ˜‰πŸ«ΆπŸ»

Β