The Ethereum blockchain is a network of nodes. There are several different types of nodes that consume data differently and have different roles to play in the blockchain. The most important types of nodes for developers wishing to launch dApps on the Ethereum blockchain are full nodes and archival nodes.
We’ll take a look at what these nodes are, their role in the network, and why the differences between them matter. But before we get into exploring full nodes and archive nodes, we need to have an understanding of blockchain nodes in general first.
Blockchain nodes are connected in a decentralized, peer-to-peer network. Basically, any computer that downloads a copy of the blockchain ledger and uses its computational power to participate in the network can be regarded as a node. But there are certain hardware specifications needed to do so. (More on this later)
Nodes act as a gateway making it possible for users and applications to get access to the information stored on the blockchain and interact with the network.
READ MORE: Blockchain Nodes Explained
Ethereum is a distributed network of computers running specialized software that allows them to act as nodes. It enables them to download the blockchain data, verify blocks and transaction data, and communicate with the other nodes in the network.
The nodes are constantly receiving and sending out data to each other, as they work together to reach a consensus of transaction validity and commit the data to the shared ledger.
When a transaction is sent to the Ethereum network, it is sent to an Ethereum node, which checks the transaction data and also broadcasts it to the nodes it is connected to in the network. They also check the data and broadcast it to the Ethereum nodes they are connected to, and so on and so forth until all the nodes (or majority) all have the same information.
If each node has the same beginning state, same input and outputs, with the same execution logic, then consensus is guaranteed.
The nodes do the verifying independently, meaning they don’t have to trust any other nodes in the network, hence the popular blockchain mantra of “Don’t trust. Verify.”
Ethereum’s network contains different types of nodes including archive nodes, full nodes, light nodes, and miner nodes. Each has slightly different functions on the blockchain, meaning how they store and interpret data can differ. They can also have different methods of synchronization which impacts how quickly you can access updated blockchain information.
The most interesting of the Ethereum nodes for developers are the full nodes and archive nodes.
Ethereum full nodes receive, store, verify, and distribute data regarding transactions on the blockchain. They do so in accordance with Ethereum's consensus rules, helping to maintain the integrity of the blockchain.
If a node receives a transaction or block that doesn’t comply with the Ethereum specifications, they are automatically addressed. For example, if Sue has sent a transfer transaction of 50 ETH to Joe, but Sue doesn’t have enough ETH in her wallet, the full node will include it in the block but the changes suggested in the transaction will not be applied.
If the transaction includes a smart contract, the full nodes will also execute all the instructions included within it. Smart contracts can also be deployed to an Ethereum full node directly.
A full node keeps the current state of the blockchain and contains all the data on the network except for trace data for transactions beyond the most recent 128 blocks. In order to be more efficient, a full node prunes the data to save disk space and ensure faster synchronization. But despite that, the stored data is enough in most use cases.
What does it take to run a full Ethereum node?
To run an Ethereum full node you need a computer with sufficient resources. According to Github, the recommended hardware requirements to run a full node with fast sync are:
- A fast CPU with 4+ cores
- 16 GB+ of RAM
- A fast SSD drive with at least 500GB+ of space
- 25 MBit/s+ bandwidth
Archival or archive nodes are also full nodes and work in the same way, but they come with an additional archival function to give the full transactional history since the genesis block of the blockchain including trace data. Archival full nodes are what most people think of when they hear the term “full node”.
Ethereum archive nodes store a snapshot of the state database, known as the Ethereum Virtual Machine, for every single block since its origin. For example, a full archive node running at block 10,000,000 will have 10 million snapshots stored of the EVM state, each one corresponding to each block within the entire ecosystem
The benefit of an archival node is that it gives access to trace information which is needed to extract internal transactions. This can be useful for certain dApps, block explorers and other crypto solutions.
What does it take to run an Ethereum archive node?
Running an Ethereum archive node takes greater computational effort and hardware requirements, including:
- A CPU with 4+ cores
- 16 GB+ of RAM
- A fast SSD drive with at least 6TB+ of space
- 25 MBit/s+ bandwidth
There really is only one main difference between a full node and an "archive" node configuration. An archive and full have the same processes and start in the same mode (full). The key difference is that an archive node retains all trace data, which it has received since the first block mined. The full node on the other hand keeps only the latest 128 blocks' worth of trace data.
This trace data is used to extract internal transactions. Apart from the internal transactions, there really isn't any difference between the data stored in the nodes, as essentially, they are both full nodes.
Having access to nodes is a great tool for development allowing for multiple use cases and innovative dApps. However, running full nodes or archive nodes are resource intensive which can be a barrier to SMEs wishing to launch their dApp into the blockchain space or for established companies wishing to scale their business.
According to Etherscan, as of May 2022, archival nodes on Ethereum occupy more than 10.5 TB of data.
Syncing such a huge volume of data will take weeks and should the sync be interrupted or crash for any reason, it can take considerably longer. A costly inconvenience that can be avoided by using a node service provider such as Crypto APIs.
With Crypto APIs Nodes as a Service you can quickly deploy dedicated Ethereum nodes and you can also get access to Crypto APIs’ shared nodes for an instant gateway to the blockchain.
Whether you’re a blockchain startup looking for a safe and reliable way to build on the blockchain or you’re an established enterprise wanting to scale and free up resources, Crypto APIs’ Nodes as a Service can make it easy and affordable.
To find out more about Crypto APIs Node as a Service, contact the team today!