DolosData nodes Independent Snapshots COalition
Trust TEE Me Bro
01. SECURE_PIPELINE
02. USAGE
curl -O https://raw.githubusercontent.com/mmahut/disco-land/master/disco-cli chmod +x disco-cli
$ ./disco-cli download preview downloading latest.json... ok (0 KB) latest epoch: 1329 Downloading preview epoch 1329 → disco-preview/ downloading tarball... ok (381991 KB) downloading sha256... ok (0 KB) downloading content.sha256... ok (0 KB) downloading attestation... ok (1 KB) downloading manifest... ok (0 KB) download complete. to verify: disco-cli verify disco-preview/cardano-preview-dolos-1.2.0-epoch-1329.tar.gz.manifest.json
$ ./disco-cli verify disco-preview/cardano-preview-dolos-1.2.0-epoch-1329.tar.gz.manifest.json
disco snapshot verifier
manifest : disco-preview/cardano-preview-dolos-1.2.0-epoch-1329.tar.gz.manifest.json
network : preview
epoch : 1329
peer : preview-node.play.dev.cardano.org:3001
1. Content hash (recomputed from tarball):
✓ content_sha256 matches manifest
expected: 9132c4e2646fde51fb035e67c6a16e865061b7c6ad05f0a4490017f2c9d32171
got: 9132c4e2646fde51fb035e67c6a16e865061b7c6ad05f0a4490017f2c9d32171
✓ chain_sha256 f9481093acc928c36cde97b8227ac2264ddd4adffd9e82f0e4146c067dc749ce
✓ index_sha256 8ed8f2f8e91c0de2571d2de100addd0e04c515def6839e990613e50599420eb1
2. TEE attestation (AMD SEV-SNP):
✓ REPORT_DATA[:32] == SHA256(content_sha256)
REPORT_DATA[:32]: b63045f7dd77a3bdc826e472baaf4b979dd078054349485d7685e2bb8da6bd81
SHA256(content_sha256): b63045f7dd77a3bdc826e472baaf4b979dd078054349485d7685e2bb8da6bd81
✓ REPORT_DATA[32:64] == 0x00*32
AMD VCEK certificate chain:
✓ AMD Milan VCEK chain verified
MEASUREMENT : 6d6c354511d6f7c6d7504668903dc5bdc066a048b651840d8d03fb85299ebfa142fccf1d1b0baca496841bdf243619d4
3. Chain tip (cross-check recommended):
slot : 172836
height : 8640
hash : fb9af565b4eb81709e1bea458105fdcb10eeb25af8a810f39f4fdfc1fd0d2383
Compare against an independent Cardano explorer for epoch 1329.
PASS — all checks passed.03. CURRENT_SNAPSHOTS
04. ACTIVE_OPERATORS
05. FREQUENTLY_ASKED
How is the snapshot attested?
Each snapshot is produced inside an Azure Confidential Container running on AMD SEV-SNP hardware. After the sync completes, a hardware attestation report is issued with REPORT_DATA[0:32] = SHA256(content_sha256) — binding the hardware proof directly to the snapshot content. The CCE policy is locked to the exact container image layer digests, so the report also proves which specific code ran.
How do I verify a snapshot?
Run python3 verify.py *.manifest.json. It does three things: recomputes content_sha256 independently from the tarball, checks that the AMD SEV-SNP hardware report's REPORT_DATA matches it, and verifies the full AMD VCEK certificate chain (per-chip key → ASK → ARK root CA) against AMD's key distribution service. A PASS means real AMD silicon certified this exact content was produced by this exact code.
Is the content hash reproducible?
Yes. content_sha256 is deterministic: it is SHA256(chain_sha256 + index_sha256), computed from the dolos archive store only (block segments and B-tree index). Two operators syncing the same network and epoch with the same dolos version will arrive at the same hash. This means you can verify a snapshot by running your own independent sync and comparing hashes — you do not have to trust the operator.
What does a snapshot contain?
A gzip tarball of the dolos archive store at the end of the requested epoch: raw Cardano block segments and the chain index. It bootstraps a fresh dolos node without syncing from genesis. The manifest records the chain tip (slot, height, block hash) for cross-checking against any independent block explorer.
Where are snapshots published?
Snapshots are available on Cloudflare R2, organised by network: preview/, preprod/, mainnet/. Each directory contains the snapshot tarball, checksums, manifest, and attestation file. A latest.json file in each directory points to the most recent snapshot for that network.
What infrastructure does this require to run?
An Azure subscription with access to the Confidential ACI SKU (AMD SEV-SNP). Everything else is automated by the provided Ansible playbook: storage, CCE policy generation, container launch, artifact retrieval, and R2 upload. The container image is fully open-source.