The title basically says it. I have synced a full node using a snapshot, and I'm wondering if there's any difference. I have noticed that the data folder weights around 18 GB, and I thought it should be around 100 GB.
1 Answer
Every node contains two types of data: store and context. Both archive node and full(snapshot) mode has full store, but full mode has only a portion of the context while the archive mode has full context. To understand fully, we need to describe the purpose of the store and context.
The store is just raw blocks data, essentially it has all the blocks that consists all record of the chain so far. If you want a record of longest chain, the store is what you want. Surprisingly, the store is relatively small, it's currently around 8 gigs now(9/7/19).
The context is essentially a cache used for querying the blockchain. Context allow queries to be fast, otherwise some simple RPC queries would take a long time or just infeasible. But technically, given enough time, we could always rebuild context from just the store. The context is substantial in size for an archive node (~150+ gigs). With introduction of snapshots, full mode nodes essentially only keep context for only the most recent blocks(a couple cycles worth) which reducing the size significantly. The idea is that it's generally rare for most users(and bakers) to want to query more than a couple cycles back.
To answer your question, when you import a snapshot, the snapshot only has context data from a certain point in the past to the latest block. You have full RPC capabilities after that checkpoint, but before, it will fail. The idea is that for majority of node operators, there is little reasons to run an archive mode and the space saving is super helpful.
You can read the full details about the different modes here.
-
Fantastic answer, I'd wish it was possible to upvote you twice. Thanks! Sep 5, 2019 at 10:26