Ethereum features require an Ethereum node to be realized. A node is the core of a blockchain: it stores its blocks and ensures its security. It also connects blockchain functionalities to external applications, enabling the development of decentralized applications (dApps).
As a top-level RPC node provider, GetBlock provides high-quality guides regarding various nodes, so we already have a lot of Ethereum node content. Here, let’s explore what is an Ethereum node and how one can set up and use it.
What is Ethereum node
A node is a computer that hosts a copy of the Ethereum blockchain and synchronizes it with other nodes. While it’s a general definition, every node can additionally be customized to be used for:
- transaction processing
- ETH staking
- Web3 development
There are other, more specialized ways of using a blockchain node, but these are the most common ones. What is important is that every node requires specialized software to run: a client.
What is Ethereum client
A client is a software that ensures the proper node functioning. It oversees the blockchain synchronization, consensus execution, transaction processing, and remote procedure call (RPC) connections for Web3 development. For Ethereum, there are two types of clients: consensus and execution clients.
Source: Ethereum documentation
Clients can be adjusted in many ways, for example:
- to regulate disk space for the blockchain ledger
- to manage connections with peer nodes
- to create a remote procedure call (RPC) connection
Detailed information can be accessed in each client’s documentation. Explore a variety of Ethereum clients in our specialized article to dive deeper, while here we’ll cover the main node use cases.
Ethereum is distinct from other chains, as it supports client diversity and highlights its importance for a secure and decentralized ecosystem. There is a variety of both execution and consensus client realizations, compared to other chains, where it’s usually only one official client.
Types of nodes and clients
Here, we’ll focus on various types of Ethereum nodes and how node operators can benefit from them. Let’s start with the basics.
Full and lightweight nodes
A full node contains the full copy of the current Ethereum state, plus the most recent historical states. It allows the node operator to synchronize blockchain data with other nodes, ensuring their validity. If one node contains an illegitimately modified blockchain copy, the synchronization will note it and restore the right blockchain copy. New blocks can only be recorded via the validation process, following the Ethereum’s Proof-of-Stake (PoS) consensus.
Full nodes are used for most of the blockchain operations, so they are the main subject of this article. In many cases, they can be pruned, reducing the amount of space, but the required disk space is still at least 1 TB.
For node operators who are limited in hardware capacities but need to realize some Ethereum features, lightweight nodes are available. They use light client versions and require much less disk space: usually, 100 GB or even less.
Source: O’Reilly
Lightweight nodes cannot participate in staking, maintain blockchain integrity, or be used for Web3 development. However, they can process transactions and smart contracts, which makes them useful, for example, in embedded systems that check ownership or process payments.
If a node has not just the full copy of the current Ethereum state, but the whole sequence of historical blocks since the genesis block, it’s called an archive node. It requires much more disk space compared to an ordinary full node: currently, about 15 TB. These nodes aren’t usually used in Web3 activities, but can be instrumental for research and analytics purposes.
Now we can explore node clients.
Consensus clients
Consensus clients are used to maintain Ethereum consensus, so they contribute to the network stability and security. They can also be referred to as a beacon node, as the Ethereum consensus layer is also known as the Beacon Chain.
Here is the list of the four most popular Ethereum consensus clients, with the programming languages they use.
- Lighthouse
Language: Rust - Lodestar
Language: TypeScript - Prysm
Language: Go - Teku
Language: Java
Consensus clients can be used to validate transactions and, therefore, participate in Ethereum Proof-of-Stake consensus, earning staking rewards. It has additional requirements, which we’ll discuss later.
Execution clients
Execution clients work to execute smart contracts according to the Ethereum consensus, ensuring that all transactions and programs proceed as expected. While consensus clients are responsible for the Ethereum inner functionality, execution clients enable the wide variety of programs, decentralized applications, tokens, and NFTs developed on Ethereum.
Similarly, let’s look at the four most popular execution clients and their programming languages.
- Geth
Language: Go - Nethermind
Language: C# - Besu
Language: Java - Erigon
Language: Go
Most Ethereum nodes use both a consensus and execution client, as they are both required for proper node functionality. The choice depends on the programming language that is most suitable for the node operation and the node pruning options.
Let’s explore two full node specializations: RPC nodes for Web3 development and validator nodes for staking.
RPC nodes
An RPC node is a full node that uses an execution client with an active JSON-RPC specification. It has an API endpoint with a URL that can be used for Web3 development. Ethereum methods are programmable actions that enable various blockchain functionalities and can be implemented in code written for different programming languages, requiring an RPC URL to be called.
Source: Ethereum documentation
Every full node can be customized as an RPC node by setting up its JSON-RPC connection and obtaining an endpoint.
Validator nodes
Last, every full node can also be specialized as an Ethereum validator, directly contributing to maintaining Ethereum consensus and earning staking rewards. For that, specialized staking software should be downloaded from the official site.
Also, a node operator must have at least 32 ETH on their associated account. As the sum is quite hefty, there are liquid staking services that help reduce this sum by sharing it between participants.
Functionalities of Ethereum nodes
One can see a quick breakdown of basic Ethereum node types in the table below.
Full node | Validator node | RPC node |
---|---|---|
Processes transactions, verifies smart contracts | Validates transactions and earns staking rewards | Connects to dApps and realizes Ethereum methods |
Required for basic Ethereum functionality | Required for staking and governance | Required for Web3 development |
Running an Ethereum node
Let’s now explore how to work with an Ethereum node. We have a dedicated guide on this topic, so here we’ll focus on specific use cases.
Setup process
The basic process is easy:
- Gather all required hardware
- Download the chosen node client
- Set up the client and begin synchronization
- Adjust the client settings, such as pruning and node connections
- Check for updates regularly and monitor transactions
Now, let’s look at potential synchronization issues.
Ethereum node synchronization
After the node is set up, it should begin synchronization. This process can be monitored via the node client: an operator will see whether the node is connected to peers and the current synchronization status.
If an Ethereum node doesn’t sync, it’s essential to ensure that the node client is able to communicate with other nodes. Check the node’s ports and ensure proper connections, according to the consensus client’s documentation. Another obstacle can be a lack of disk memory: if it’s less than 1 TB, full clients will usually be unable to synchronize the node.
Ethereum staking
If one doesn’t have 32 ETH, there are options to use liquidity pools on various services. They offer shared staking pools, and often even 0.1 ETH (or less) is enough to participate. Examples are Kelp and StakeWise.
Such services usually require one to connect an Ethereum wallet (mostly MetaMask), and it’s easy to add a custom RPC endpoint to MetaMask using its settings. Thus, a node operator can contribute their ETH to secure the blockchain, earn rewards, and participate in the chain governance even without 32 ETH.
Using a node provider
For enterprise purposes, a node provider may be a much better solution compared to a self-hosted node, as it reduces the time and costs required for node setup. GetBlock, for example, offers shared Ethereum nodes for as low as $39/month, and the number of computational resources required can be customized, adjusting the price. For personal usage, one can order a free node, with limited request rate.
Benefits of Ethereum node
Running an Ethereum node contributes to blockchain development and security, and also offers a range of benefits for node operators.
Fast and efficient smart contract processing is the most obvious benefit. One can send and receive money, verify NFTs, automate governance, and realize other blockchain functionalities with their node. Node operators can also earn ETH for transaction processing and invest their ETH to get staking rewards. While the official staking service requires 32 ETH minimum, various liquid staking dApps lower the threshold.
In case of Web3 development, an RPC node is a necessity, as it connects decentralized applications to the blockchain and implements its methods. Without it, it’s not possible to make an app decentralized: all its blockchain parts won’t work.
GetBlock is a premium node provider for all ranges of blockchain users and developers, dedicated to supporting the Web3 community. We offer shared and dedicated nodes for as low as $39/month, and they can be customized to suit your needs for the best price. From aspiring Web3 startups to large-scale enterprises, we back blockchain businesses with our infrastructure. Sign up now to order your best Ethereum API, and contact us to know more!