URL layout
snapshot-manifest.json):
Publisher
Mainnet runssigil-snapshot-publisher as a Kubernetes CronJob defined in k8s/mainnet/62-snapshots.yaml. Configuration:
| Flag | Value |
|---|---|
--source-data-dir | /snapshot-source/data |
--work-dir | /tmp |
--interval-blocks | 1000 |
--hash-algorithm | blake3 |
--retention-recent-blocks | 100000 |
--retention-checkpoint-interval | 10000 |
s3://sigil-mainnet-snapshots/sigil-mainnet-1 and serves it via https://snapshots.sigil.ml/sigil-mainnet-1. Object-store credentials are held in the sigil-snapshot-objectstore Kubernetes Secret, never in source.
The CronJob mounts data-sigil-rpc-0 read-only. Production must populate that PVC from an isolated filesystem or CSI snapshot rather than from a live writable RPC database mount when the storage class supports snapshot clones. The publisher refuses writable source data by default; local drills must pass --allow-writable-data-dir explicitly.
Retention
- Keep every snapshot from the last 100,000 blocks.
- Keep one snapshot per 10,000 blocks before that.
- Delete older non-checkpoint snapshots after the hash inventory is updated.
Restore
- Stop the node and preserve the old PVC.
- Restore into an empty data directory only.
- Start
sigil-nodewith--restore-from <snapshot-uri>and the signed genesis file. - The node verifies the archive BLAKE3 sidecar when present, restores the payload, and checks the manifest state root against genesis for height-zero snapshots or against the restored canonical block header for height > 0.
- After restore, normal bootstrap opens the restored AkashaKV stores, then P2P catch-up applies blocks after the snapshot height.
k8s/mainnet/30-rpc-service.yaml: the ConfigMap supplies state-sync-mode and snapshot-base-url, and the container passes those values as explicit node arguments.
State-sync modes
| Mode | Behaviour |
|---|---|
snapshot-then-p2p-catchup | Restore the latest finalised snapshot, then fetch headers/blocks from peers. Default. |
header-then-state-fetch | Future Merkle-proof state-fetch path. Reserved; production remains on snapshot-restore until the peer state-proof service is enabled. |
Bandwidth controls
Snapshot endpoints are Cloudflare-proxied and rate-limited per IP. Operators with bulk restore needs can request a signed temporary allowlist token from operator-support.sigil.ml.See also
- AkashaKV pin — pinned AkashaKV revision for nodes.
- AkashaKV/Weave migration — upgrade-safe storage migration.