Builders
Node Operators
Node Management
Using Snap Sync

Using Snap Sync for Node Operators

This guide reviews the optional feature of Snap Sync for node operators, including benefits and how to enable the feature.

Snap Sync significantly improves the experience of syncing an PNC Stack node. Snap Sync is a native feature of go-ethereum that is now optionally enabled on pnc--batcher & pnc-geth. Snap Sync works by downloading a snapshot of the state from other nodes on the network and is then able to start executing blocks from the completed state rather than having to re-execute every single block. This means that performing a Snap Sync is significantly faster than performing a full sync.

  • For PNC Mainnet, node operators will be able to sync without having to download the bedrock datadir.
  • This also enables nodes to join the network after Ecotone activates without requiring a blob archiver.
  • Archive nodes are also fully supported.

Enable Snap Sync for Your Node

⚠️

For snap sync, all pnc-geth nodes should expose port 30303 TCP and 30303 UDP to easily find other pnc-geth nodes to sync from.

  • If you set the port with --discovery.port, then you must open the port specified for UDP.
  • If you set --port, then you must open the port specified for TCP.
  • The only exception is for sequencers and transaction ingress nodes.

Choose one of the following options to enable snap sync:

  • Option 1: Snap sync, no required datadir on PNC Mainnet. This is the recommended option because pnc--batcher tells pnc-geth to snap sync and then pnc-geth downloads the state at tip and once complete switches to inserting blocks one by one.
--syncmode=execution-layer (not default)
  • Option 2: Archive sync with required datadir for PNC Mainnet, but no required datadir for other PNC Stack networks. This option is faster for archive nodes than other options because --syncmode=full means pnc-geth executes every block in the chain.
--syncmode=execution-layer (not default)
  • Option 3: Continue using current sync approach (before Ecotone) where pnc--batcher reads from L1 and inserts blocks into pnc-geth. This option might be preferred for decentralized developer groups who need to confirm everything on the chain.
--syncmode=consensus-layer (default)

Next Steps