Types of Ethereum Nodes: Full vs. Archive vs. Light
The Ethereum blockchain is a worldwide distributed network of computers across which nodes pool processing power, resources, and share block verification responsibilities so the network can reach consensus (i.e. agree on a shared state).
This post examines the different types of Ethereum nodes used on the Ethereum blockchain (full nodes, archive nodes, and light nodes), and their differences.
What is a full node?
A full node keeps a complete copy of the blockchain data, and contributes to the network by receiving transactions and blocks from other full nodes, validating them, and forwarding them to other full nodes.
When a smart contract transaction is executed, Ethereum full nodes execute all of the instructions in the smart contract. Together, full determine whether the smart contract execution is producing the desired result. However, running full Ethereum nodes is expensive to run and consume a great deal of power.
Full Node Clients
A client is an Ethereum software implementation that verifies all transactions in each block, ensuring that the network is safe, and that the transaction data is valid. Ethereum full node clients validate all transactions in each block, providing the network with security and data accuracy.
Each Ethereum client comes with its own set of capabilities and advantages. Implementations can be tailored to different user groups due to their diversity. Consider features, support, web3 programming language, and licenses when selecting an Ethereum node client.
Full Node Client Software Implementations (Execution Layer Clients)
There are four primary types of execution layer full node client implementations:
Geth (Go Ethereum) - written in Go
Nethermind - written in C# and .NET
Erigon - written in Go
Hyperledger Besu - written in Java
After The Merge, when Ethereum transitions from Proof-of-Work to Proof-of-Stake, each full node will need to run a consensus layer client in conjunction with one of the aforemention execution layer clients.
Full Node Client Software Implementations (Consensus Layer Clients)
There are five primary consensus layer clients:
Prsym - built by Prysmatic Labs in Go
Teku - built by the Besu team in Java
Lighthouse - built by Sigma Prime and written in Rust
Nimbus - built by the Nimbus team written in Rust
Lodestar - built by ChainSafe Systems in Typescript
What is a light node?
A light node stores block header data, such as the preceding block's hash and a timestamp, rather than the complete block data like a full node does. Light nodes send on-demand requests to full nodes, validating only the parts of the state that their user's require.
Low-capacity devices, such as personal computers, may benefit from light nodes because they do not perform expensive data storage and writing tasks.
Examples of use cases for light nodes include:
Validating if a transaction was confirmed by the network
Checking event logs
Beside personal computers, light nodes can also be efficiently run on low-capacity devices like mobile phones or Raspberry Pis.
What is an archive node?
An archive node holds all of the same data as a complete node, as well as all of the blockchain's history state data dating back to the Genesis Block (i.e. the first block).
Although full nodes can rebuild old blockchain state data, this synchronization process is time-consuming and inefficient. This data may need to be served rapidly depending on the use case. However, archive nodes can trace transactions since they have historical data dating back to the first block.
Archive nodes can store gigabytes of past data, making them less desirable to the typical user but valuable to service providers like block explorers, wallets, and on-chain analytics companies.
Erigon vs. Geth
The official Golang implementation for the Ethereum protocol is Go Ethereum (or Geth). Geth is the most popular Ethereum client, has the most users, and provides a wide range of Go-based tools for developers, all of which are open-source and licensed under the GNU LGPL v3.
Erigon is a Geth fork that focuses on speed and disk space savings. Erigon is an entirely re-architected Ethereum node client implementation developed in Go with plans tol be ported to other languages in the future. Erigon aims to deliver a more modular, quicker, and streamlined Ethereum implementation.
Compared to Geth, Erigon's parallelized development, flat storage, preprocessing, and staged synchronization, Erigon achieves smaller storage footprints, faster sync speeds, and overall a better experience for developers needing to use trace APIs.
What are the differences between a full node and an archive node?
The main difference between a full node and an archive node is that the archive node keeps track of all of the chain's previous states (i.e. a complete picture of the Ethereum ecosystem), while a full node only needs to store a snapshot of current state data.
Put simply, archive nodes contain all of the historical data since block one, whereas full nodes only contain the most important, current data necessary for validating new transactions while unnecessary blockchain data is "pruned."
How to Choose the Right Type of Node
Choosing the right type of Ethereum node to deploy depends on your use case and resources because node setup and functionality differ significantly.
You can use Ethereum in a private, self-sufficient, and trustless manner by running your node. You don't have to trust the network because the data may be verified with your own node client.
A full node has the advantage of being able to communicate directly with any smart contract on the public blockchain. Smart contracts can also be deployed now into the public blockchain by full nodes.
Unlimited data usage, storage, and direct smart contract capabilities are not free, however, and full nodes may tax the hardware and bandwidth resources of your machine.
Archive nodes store all of the information that a full node does and creates a history of blockchain states. Even after a client has completed synchronization, archive nodes will save previous data.
If your application requires historical blockchain information you will need to run your own archive node or pick a blockchain node provider that offers archive node access.
Light nodes are comparable to full nodes, however, they only handle a small amount of data. The light node saves header chain data but only receives extra data when requested. They can validate data validity, but they don't engage fully in block validation.
Alchemy Node Infrastructure
Alchemy is a web3 node infrastructure provider and blockchain developer platform that offers web3 devs supercharged scalability, stability, and data accuracy through Supernode and Alchemy's suite of tooling. Supernode increases every aspect of node functionality using specialized distributed systems and a proprietary coordinator service to ensure real-time data accuracy.
Because nodes are general-purpose and not designed to be highly available, apps that operate their own node may experience higher than average latency and downtime compared to a node provider.
Scalable, Reliable, and Accurate
Alchemy's Supernode offers a scalable node architecture with a 99.99% uptime guarantee, allowing dApp developers to continue scale without interruption to their product or users.
Alchemy's infinitely scalable node infrastructure, unmatched reliability, speed, and data correctness are used to power Polygon, which has proven to be an adoption catalyst, resulting in a significant increase in the number of dApps built on Polygon.
0x, the global backbone for decentralized exchanges, which allows hundreds of billions of trades to flow through all major blockchains, trusts Alchemy for reliable node infrastructure.
Free Archive node access
Alchemy offers a robust free tier that provides free archive access for both mainnet and testnets. To learn more about Alchemy and to get free archive access, sign up for a free account today.
What is Blockchain Sharding and How Does it Relate to Ethereum?
Explore a New Transaction Type that Guarantees Transactions are Mined and Optimized for Gas
Learn About Safe (Justified), Finalized, and Latest Commitment Levels