Skip to content

Latest commit

 

History

History
34 lines (24 loc) · 1.9 KB

README.md

File metadata and controls

34 lines (24 loc) · 1.9 KB

Overview

Cardano ledger snapshots

We provide CBOR-serialised snapshots obtained from a running Haskell Cardano node client. More specifically, the snapshots are obtained using the GetCBOR ledger-state query, and dumped as such to disk.

Note

It would be nice to have a clear specification for the snapshot format? Wouldn't it? Well, that format isn't quite documented because it's based off the internal object representations (specifically, the EpochState type) from the Haskell codebase, and there's no commitment to maintaining compatibility to that format across updates. So at this point, the best reference is the Haskell source code.

If someone finds the motivation to document as CDDL the encoders from that pinned reference, a PR is more than welcome.

Snapshots are named after the point on chain they've been taken from. More specifically, the first characters represent an absolute slot number, followed by 64 characters representing the hex-encoded block header hash; both separated by a period .. For example:

68774372.36f5b4a370c22fd4a5c870248f26ac72c0ac0ecc34a42e28ced1a4e15136efa4.cbor

designates the ledger state dump of the last block of the Conway era (including the processing of that block) on the PreProd network.

Available snapshots

See snapshots.json. To download all available snapshots, uncompressed, in format suitable for importing in Amaru, one can do:

mkdir -p snapshots;
curl -s -o - "https://raw.githubusercontent.com/pragma-org/amaru/refs/heads/main/data/snapshots.json" \
  | jq -r '.[] | "\(.point)  \(.url)"' \
  | while read p u ; do  \
      echo "Fetching $p.cbor"; \
      curl --progress-bar -o - $u \
        | gunzip > snapshots/$p.cbor ; \
    done