Archive Data

What is an archive node?

An archive node is a simplified way of identifying an Ethereum full node running in archive mode. Ethereum full-nodes need to store block data such as headers and block contents indefinitely but they do not need to persist the generated World State from each block verification for all blocks. The full node only needs to keep the block specific state around long enough to be able to recalculate in the event of a blockchain reorg (by default this is 128 blocks in most implementations).

A full-node running without archive mode will prune generated state to conserve disk space. This helps with the sync time of a node and greatly reduces storage and computation cost. Because of the way account and contract storage works in Ethereum, this means that only an archive node can serve API request for certain RPC methods older than 128 blocks.

Do I need archive data?

The Ethereum JSON-RPC and Websocket API includes several methods which might require access to an archive node. These methods include an extra parameter for specifying a block number for the request.

If you are interested in inspecting historical data (data outside of the most recent 128 blocks) for any of the methods listed below, your request requires access to archive data.

  • getBalance
  • getCode
  • getTransactionCount
  • getStorageAt
  • call

Other Resources