Exploring the Differences Between EVM Full Nodes and Archive Nodes

·

Introduction

Ethereum Virtual Machine (EVM)-based networks typically support two types of nodes: full nodes and archive nodes.

Popular EVM networks include:

Both full and archive nodes store complete blockchain data for replaying network states. The key difference is that archive nodes additionally preserve every historical network state in an accessible archive.

This article provides a detailed comparison of their functionalities, differences, and practical implementations.


Node Clients: Geth vs. Erigon

Geth (Go Ethereum)

Erigon (formerly Turbo-Geth)

This guide focuses on Geth and Erigon implementations for both node types.


Full Nodes vs. Archive Nodes: Key Differences

Full Nodes

Default accessible history:

NetworkAccessible Blocks
Ethereum128
Polygon128
BNB Chain128
Avalanche32
Harmony128

Archive Nodes

Current storage sizes (approximate):

NetworkStorage Size
Ethereum~12 TB
Polygon~16 TB
BNB Chain~7 TB
Avalanche~3 TB
Harmony~20 TB

Practical Implementation

Deploying Nodes Quickly

Services like Chainstack's Bolt technology enable rapid node deployment:

  1. Register an account
  2. Deploy either node type in minutes

Querying Historical Data

These JSON-RPC methods support historical state queries when used with archive nodes:

1. eth_getBalance

Retrieves an address balance at a specific block.

Example (Web3.js):

web3.eth.getBalance('0x9D00f...', 14641000, (err, balance) => {
  console.log(web3.utils.fromWei(balance, 'ether'))
})

2. eth_getCode

Returns contract bytecode at deployment.

Example (cURL):

curl NODE_URL -X POST -H "Content-Type: application/json" --data '{"method":"eth_getCode","params":["0x1f984...","0xA5BC6A"],"jsonrpc":"2.0"}'

3. eth_getStorageAt

Reads contract storage at historical blocks.

Example (Web3.py):

storage = web3.eth.get_storage_at("0x954De...", 0, 7500943)
print(storage.decode("ASCII"))

FAQs

Q1: When do I need an archive node?

When your application requires:

Q2: Can I convert a full node to an archive node?

No, they require different initial sync modes. You must deploy a new archive node.

Q3: What's the cost difference between node types?

Archive nodes typically cost 3-5x more due to storage requirements.


Conclusion

Choosing the right node type depends on your specific use case and data requirements. For most developers building standard DApps, full nodes provide the optimal balance of functionality and cost-efficiency.