> For the complete documentation index, see [llms.txt](https://service.block-pro.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://service.block-pro.net/mainnet/celestia/services/snapshots.md).

# Snapshots

**Mainnet** · Chain ID `celestia`

Restore a **consensus** node from a BlockPro snapshot. This archive is not a light-node or bridge-node snapshot.

| Field                                 | Published information                                             |
| ------------------------------------- | ----------------------------------------------------------------- |
| Download                              | <https://server-2.block-pro.net/mainnet/celestia/snapshot/latest> |
| Compression                           | Existing guide uses LZ4                                           |
| Update schedule                       | Existing guide says every 4 hours; freshness unverified           |
| Height and creation time              | Not published                                                     |
| Checksum                              | Not published                                                     |
| DB backend and compatible app version | Not published                                                     |
| Pruning and history coverage          | Not published                                                     |

**Before restoring:** obtain the missing metadata and SHA-256 checksum from BlockPro, confirm chain `celestia`, and match the app version and database backend. A snapshot from a different network or an incompatible backend cannot be used. Until this metadata is available, the procedure below is a preparation guide, not a verified restore path.

## Download and inspect

Create a unique staging directory on a disk with enough space for both the archive and extracted data.

```bash
RESTORE_DIR=$(mktemp -d "$HOME/celestia-restore.XXXXXXXX")
```

Download the complete archive. A failed download must not replace your node data.

```bash
curl -fL --retry 3 --output "$RESTORE_DIR/snapshot.tar.lz4" https://server-2.block-pro.net/mainnet/celestia/snapshot/latest
```

Compare this checksum with the independently obtained checksum for this exact snapshot. Stop if no matching checksum is available.

```bash
sha256sum "$RESTORE_DIR/snapshot.tar.lz4"
```

Check the compression stream.

```bash
lz4 --test "$RESTORE_DIR/snapshot.tar.lz4"
```

Inspect archive paths and types. Accept only the agreed data/ layout; stop on absolute paths, parent traversal, links, device files, config/ or key files.

```bash
tar --use-compress-program=lz4 -tvf "$RESTORE_DIR/snapshot.tar.lz4"
```

Create the isolated extraction directory.

```bash
mkdir "$RESTORE_DIR/staged"
```

Extract the inspected, verified archive as the node user, never as root.

```bash
tar --use-compress-program=lz4 --no-same-owner --no-same-permissions -xf "$RESTORE_DIR/snapshot.tar.lz4" -C "$RESTORE_DIR/staged"
```

Confirm the extracted directory is `staged/data/` and matches the published backend. A successful extraction alone does not validate snapshot integrity or provenance.

## Replace data while preserving signing state

For a validator, first ensure no other machine or remote signer is running the same consensus key. Keep the original configuration and keys. The backup below must be made after the node stops.

Stop the node.

```bash
sudo systemctl stop celestia-appd
```

Verify it reports inactive. Do not proceed while the node is running.

```bash
sudo systemctl is-active celestia-appd
```

Preserve your latest signing state. Stop if it is missing on an existing validator.

```bash
cp -p "$HOME/.celestia-app/data/priv_validator_state.json" "$RESTORE_DIR/priv_validator_state.json"
```

Put your own signing state into the staged data, replacing any provider state.

```bash
install -m 600 "$RESTORE_DIR/priv_validator_state.json" "$RESTORE_DIR/staged/data/priv_validator_state.json"
```

Keep the original data for recovery instead of deleting it.

```bash
mv "$HOME/.celestia-app/data" "$RESTORE_DIR/original-data"
```

Install the restored data directory.

```bash
mv "$RESTORE_DIR/staged/data" "$HOME/.celestia-app/data"
```

If this move fails, keep the service stopped and restore `original-data` before taking another action. Do not restart with an incomplete directory.

Start only after the data and signing-state checks pass.

```bash
sudo systemctl start celestia-appd
```

Inspect database, consensus and sync messages.

```bash
sudo journalctl -u celestia-appd -n 100 --no-pager
```

Check the chain, advancing block height, recent block time and catching\_up status.

```bash
curl -fsS http://127.0.0.1:26657/status | jq '.result | {chain: .node_info.network, sync: .sync_info}'
```

Keep the backup until the restored node is healthy. For validators, never restore an older signing-state file after the restored node has signed new blocks.

Sources: [BlockPro snapshot listing](https://service.block-pro.net/mainnet/celestia/validator-node/services-or-snapshot) and [Celestia snapshots](https://docs.celestia.org/operate/maintenance/snapshots/).
