Skip to content

Peer Snapshot Configuration

This reference describes the peerSnapshotFile setting in Dingo’s topology.json and the checks that a peer snapshot must pass at startup. The supported snapshot format is cardano-node’s peer-snapshot.json with NodeToClientVersion set to 23.

Add peerSnapshotFile to topology.json to reference a peer snapshot:

{
"peerSnapshotFile": "peer-snapshot.json"
}

Dingo resolves the peerSnapshotFile path relative to the topology.json file.

The snapshot must meet all of the following requirements:

  • Set NodeToClientVersion to 23.
  • Specify NetworkMagic and set it to the node’s configured network magic.
  • Set Point.blockPointHash to exactly 64 hexadecimal characters, representing 32 bytes.
  • Include Point.blockPointSlot as part of Point. Dingo applies no additional constraint to its value.
  • Populate exactly one of bigLedgerPools or allLedgerPools. Leave both lists empty or populate both lists, and Dingo rejects the snapshot.
  • Add at least one pool to the populated list.
  • Add at least one relay to every pool.

Apply all of the following requirements to every relay in the populated pool list:

  • Give each relay a non-empty address that names either a valid DNS hostname or a non-unspecified IP address.
  • Give each relay an explicit TCP port from 1 through 65535.

Dingo rejects portless SRV relays and port 0.

Dingo validates the complete peer snapshot before its relay endpoints can replace configured bootstrap peers. If the snapshot is malformed or inconsistent, Dingo stops node startup before it uses the relay endpoints and does not silently accept the snapshot.


Doc Holiday logo

Docs authored by Doc Holiday