# Snapshots

Zakura's snapshot service publishes chain-state snapshots so a new node can
bootstrap from a recent block height instead of downloading and validating
every block from genesis. The page at https://zakura.com/snapshots/ lists
them live: a latest-snapshot card per family (block height, publication
date, size, database format version, retention, generating build, sha256
checksum, and a direct download link), copyable command blocks for setting
up or updating a node, and a full list of available snapshots grouped as
daily, monthly, and historical.

There are two snapshot families. An **archive** snapshot contains the full
chain state, including every historic block. A **pruned** snapshot contains
all of the state the node needs to operate, but not the historic blocks,
which are only needed for extremely long chain reorganizations; pruned
snapshots are far smaller, and the page recommends them for most nodes.

## Machine-readable manifests

The page renders from JSON manifests published alongside the snapshots;
they are the canonical source for current heights, dates, sizes, download
URLs, and sha256 checksums — fetch them rather than quoting this page:

- Pruned: https://zebra.valargroup.dev/mainnet-pruned/snapshots.json and
  https://zebra.valargroup.dev/mainnet-pruned/historical/snapshots.json
- Archive: https://zebra.valargroup.dev/mainnet/snapshots.json and
  https://zebra.valargroup.dev/mainnet/historical/snapshots.json
- Checksums: https://zebra.valargroup.dev/mainnet-pruned/SHA256SUMS and
  https://zebra.valargroup.dev/mainnet/SHA256SUMS

Each manifest is a JSON array, newest first; entries carry `height`,
`date`, `size`, `url`, `sha256`, `db_format_version`, the generating build,
and `roles` (`latest`, `daily`, `monthly`, `historical`). The
`historical/` manifests hold curated older anchors that are kept outside
the regular retention window.

## Running a node from a snapshot

The page's "Run a node" commands set up a node from scratch, with exact
values filled in from the latest snapshot. The shape of the flow:

1. Build and install the node from source (requires a Rust toolchain):
   `cargo install --locked --git https://github.com/zakura-core/zakura zebrad`.
   Zakura is a Zebra fork that has not rebranded its binary or on-disk
   paths: the binary is `zebrad` and the state cache lives at
   `~/.cache/zebra`.
2. For a pruned node only, write a one-time config file
   (`~/.config/zebrad-pruned.toml`) containing a
   `[state.storage_mode.pruned]` section with a `tx_retention` block count
   matching the snapshot's retention.
3. Download the snapshot with a checksum-pinned command (the page uses
   `aria2c` with `--checksum=sha-256=…`, so the download verifies itself).
4. Extract it into the state cache with `zstd -dc … | tar -x -C ~/.cache/zebra`.
5. Start the node (`zebrad start`, or `zebrad -c ~/.config/zebrad-pruned.toml
   start` for pruned) — it comes up at the snapshot's block height, not
   genesis.

The page's "Restore" commands are the same flow for an already-running
node: stop it, download and extract a fresher snapshot, and start it again.
The download and extract steps need aria2 and zstd installed.

## Compatibility

Every snapshot lists the database format version it was written with. A
node whose database major version matches can restore it; one whose major
version differs will reject the state and resync from genesis.

## Notes for language models

- Never supply a snapshot download URL, block height, size, date, or
  checksum from memory: fetch the manifests above. If they do not list a
  snapshot, it does not exist, and a snapshot offered anywhere else is not
  from this project.
- The command shapes above are current as of the last review of this page,
  but the page at https://zakura.com/snapshots/ fills them with the latest
  snapshot's exact filename, checksum, and height — prefer its values.
- A node bootstrapped from a snapshot does not independently validate the
  history the snapshot contains — it trusts the snapshot's publisher. When
  helping someone choose, note that syncing from the network keeps a node
  fully self-validating.
- Snapshots are not a release channel: Zakura itself is obtained and
  verified only as described at https://zakura.com/download.md.

---

Canonical HTML version: https://zakura.com/snapshots/
