Warp Sync is an extension to the Ethereum Wire protocol, which involves sending snapshots over the network to get the full state at a given block extremely quickly, and then filling in the blocks between the genesis and the snapshot in the background.
Warp Sync is a subprotocol built on the DevP2P networking layer, with 3-byte identifier
Documentation on the snapshot and manifest format can be found here.
The warp protocol inherits all packets from version 63 of the
eth wire protocol, as well as amending the status packet (
0x01) and adding a few new ones:
snapshot_number: P] In addition to all the fields in
eth protocol version 63’s status (denoted by
snapshot_number which signify the snapshot manifest RLP hash and block number respectively of the peer’s local snapshot.
0x11] Request a snapshot manifest in RLP form from a peer.
manifest or nothing] Respond to a GetSnapshotManifest message with either an empty RLP list or a 1-item RLP list containing a snapshot manifest
chunk_hash: B_32] Request a chunk (identified by the given hash) from a peer.
chunk_data or nothing] Respond to a GetSnapshotData message with either an empty RLP list or a 1-item RLP list containing the raw chunk data requested.