I'm using Polkadot version 1.3.0-7c9fd83805c. When syncing a node with the command:

➜ ~ polkadot --tmp

I've encountered an error preventing me from retrieving the genesis block: enter image description here

-32000: Client error: Api called for an unknown Block: State already discarded for 0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3

Running an archive node:

➜ ~ polkadot --tmp --pruning=archive

enter image description here

This raises a question about the nature of node data retention in Polkadot's network.

  • Are standard nodes not designed to maintain the complete chain history?
  • Is this capability exclusive to archive nodes?

My understanding was that while all nodes maintain the chain, archive nodes store the state at each block additionally.

Any insights or explanations on how chain data is maintained across different types of nodes in Polkadot would be greatly appreciated.


1 Answer 1


Yes, the default behavior is pruning.

From my understanding, in most cases, you won't need the complete data. Pruning can significantly reduce the size of the database, making it a good choice for most node operators.

Some data suppliers, such as Subscan, use archive mode for indexing.

Check these resources to learn about the node types.

  • Does it mean that a network without archive nodes can't be synced from genesis ?
    – ALeSD
    Commented Nov 29, 2023 at 14:58
  • 1
    @ALeSD collators/validators act as archive nodes
    – Simson
    Commented Dec 1, 2023 at 15:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.