It's difficult to give an answer without just re-hashing the explanation on the Parity wiki...
The pertinent part is as follows:
These snapshots can be used to quickly get a full copy of the state at a given block. Every 30,000 blocks, nodes will take a consensus-critical snapshot of
that block's state. Any node can fetch these snapshots over the
network, enabling a fast sync.
The snapshot itself is comprised of 3 parts:
- A manifest, which is basically metadata about the snapshot;
- Block chunks, which contain raw block data about blocks and their transaction receipts;
- State chunks, which contain data about the state at a given block.
Chunks are currently set to 4MB in size.
So how does this actually speed up the sync? What that wiki page doesn't say is that we only sync the snapshots initially. So for each block at intervals of 30,000, we obtain a set of 4MB chunks. Then in the background we continue to sync the remaining block data.
This is equivalent to Geth's --fast
sync, which first syncs the block headers, and then in the background syncs the rest of the data. It's just that --warp
is syncing even less data on the first pass, and filling in the bigger gaps later on.
Edit:
See also the relevant official Ethcore blog post, specifically the section entitled Core Strength.