Taurus in Minutes: Restore Your Node from a Verified Snapshot

How to Restore a Taurus Node from a Snapshot

This guide explains how to verify and restore a pre-built snapshot for the Autonomys Taurus Testnet. It assumes you are running the official node software as a systemd service. The snapshot contains consensus and domain 0 (Auto EVM) data for a full archive node taken on 2025-09-25.

:warning: Security & trust: A snapshot is a convenient bootstrap, but never a substitute for syncing your own node from the network. Only use snapshots from sources you trust. Always verify the checksum. For maximum assurance, re-sync from genesis.

Snapshot Downloads

  • Snapshot (≈ 173 GB):

    https://snapshots.autonomys.xyz/taurus/subspace-archive-snapshot.tar.gz
    
  • SHA256 checksum:

    https://snapshots.autonomys.xyz/taurus/subspace-archive-snapshot.tar.gz.sha256
    

Prerequisites

  • Disk space: Enough for the compressed archive and the extracted data. As a rule of thumb, have at least 3× the archive size free before starting.
  • Node binary: Use a node version equal to or newer than the one used to create the snapshot. The snapshots above were created with taurus-2025-jul-14.
  • Your base path: This is where your node stores its database. We’ll call it BASE_PATH below.

Step-by-Step Restore

Set your working variables once:

# Choose where to store the snapshot temporarily
WORKDIR=~/autonomys-snapshot && mkdir -p "$WORKDIR" && cd "$WORKDIR"

# Set your node's base path (edit this for your setup)
BASE_PATH=/path/to/your/base-path

1. Download & Verify

curl -O https://snapshots.autonomys.xyz/taurus/subspace-archive-snapshot.tar.gz
curl -O https://snapshots.autonomys.xyz/taurus/subspace-archive-snapshot.tar.gz.sha256

# Verify integrity (must print "OK")
sha256sum -c subspace-archive-snapshot.tar.gz.sha256

If verification fails, do not proceed - instead re-download and re-verify.

2. Stop Your Node (if already running)

sudo systemctl stop subspace-archive-node
# Optional: confirm it's stopped
sudo systemctl status subspace-archive-node

3. Prepare a Clean Base Path (safe)

If you already have data in BASE_PATH, move it aside (safer than deleting):

mkdir -p "$BASE_PATH"
if [ -n "$(ls -A "$BASE_PATH" 2>/dev/null)" ]; then
  BACKUP_DIR="${BASE_PATH}-prev-$(date +%Y%m%d_%H%M%S)"
  mv "$BASE_PATH" "$BACKUP_DIR"
  mkdir -p "$BASE_PATH"
fi

4. Extract Snapshot Directly into Your Base Path

The archive contains a top-level base-path/ directory. Strip it so contents land inside your BASE_PATH:

tar -xzvf subspace-archive-snapshot.tar.gz -C "$BASE_PATH" --strip-components=1

Identity directories (network/ and any keystore/) were removed from the snapshot. Your node will generate its own identity on first start.

5. (Optional) Fix Ownership

If your service runs as a specific OS user/group:

# Example only — adjust for your service account
# sudo chown -R autonomys:autonomys "$BASE_PATH"

6. Start the Node & Tail Logs

sudo systemctl start subspace-archive-node
sudo journalctl -u subspace-archive-node.service -f -n 200 --output cat

Running as a systemd Service

Below is a template unit you can adapt, it is setup to be an archive RPC node with consensus on port 9944 and domain 0 on port 9945. You will want to customize to your specific needs.

Template unit

Save as /etc/systemd/system/subspace-archive-node.service:

[Unit]
Description=Autonomys Taurus Archive Node
After=network-online.target
Wants=network-online.target

[Service]
User=autonomys
LimitNOFILE=4096
ExecStart=/path/to/subspace-node-binary \
  run \
  --chain taurus \
  --name your_node_name \
  --base-path /path/to/your/base-path \
  --rpc-cors all \
  --rpc-methods unsafe \
  --rpc-listen-on 0.0.0.0:9944 \
  --sync full \
  --blocks-pruning archive \
  --state-pruning archive \
  -- \
  --domain-id 0 \
  --rpc-listen-on 0.0.0.0:9945 \
  --rpc-cors all \
  --blocks-pruning archive \
  --state-pruning archive
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target

Important: --rpc-methods unsafe and --rpc-cors all are convenient for local admin but must not be exposed to the public Internet. Bind to a private/LAN IP or 127.0.0.1 and front with a secure proxy if remote access is required.

Note there are detailed docs on running the node as a Linux service here.

Security Considerations

  • Trust model: A snapshot is opaque state provided by a third party. Even with TLS and checksums, you’re trusting the publisher to have produced an honest database.
  • Checksum ≠ truth: SHA256 verifies integrity in transit, not the correctness of the state. For full assurance, sync from genesis or compare state roots/headers against other trusted nodes.
  • Keys: This snapshot excludes node identity (network/) and any keystore/ directories. Your node will create fresh keys on first run.

Troubleshooting

  • Checksum mismatch: Re-download both files.
  • Schema or DB errors on start: Ensure your node binary is up-to-date. If a major storage schema changed, you may need to run the same or newer version than the snapshot producer.
  • Stuck syncing: Check peers, disk I/O, and free space. Review logs with journalctl -f.
  • Rollback plan: If needed, stop the node, remove the new BASE_PATH, and restore your *-prev-YYYYMMDD_* directory you moved aside.
  • macOS users: If sha256sum isn’t available, use:
    shasum -a 256 subspace-archive-snapshot.tar.gz
    # Compare output to the contents of the .sha256 file manually
    

macOS: shasum --algorithm 256

This is a great idea! Are there similar plans for Chronos or Mainnet?

I needed an archival node the other day to test chain alerts, how much space does a mainnet one take up?

We don’t have plans for other networks at the moment but won’t rule it out as an option for the future.

The Taurus archive backup is around ~173GiB which decompresses to ~455GiB.

As an aside, for those interested, here is a little analysis I ran on Taurus archive node sync speed where you can clearly see the effect of all those XDMs during Crossing the Narrow Sea. It took the best part of a week for me to fully sync on modest hardware.

1 Like

If you want an automatic check on macOS (more secure than eyeballing it):

shasum --algorithm 256 --check subspace-archive-snapshot.tar.gz.sha256
1 Like