This guide assumes you've completed the Setting Up Your Node step.
Option 1: Snapshot method
Syncing with a snapshot downloads the data directory from an existing node.
Choose the network and the snapshot type, fetch the URL and follow instructions returned in response.
Network | Type | URL |
---|---|---|
Mainnet | Snapshot | https://snapshots.zetachain.com/latest-snapshot?network=mainnet (opens in a new tab) |
Mainnet | Archive Snapshot | https://snapshots.zetachain.com/latest-archive-snapshot?network=mainnet (opens in a new tab) |
Testnet | Snapshot | https://snapshots.zetachain.com/latest-snapshot?network=athens3 (opens in a new tab) |
Testnet | Archive Snapshot | https://snapshots.zetachain.com/latest-archive-snapshot?network=athens3 (opens in a new tab) |
Untar the file inside ~/.zetacored
and start the node.
Alternative snapshots
- https://polkachu.com/tendermint_snapshots/zetachain (opens in a new tab)
- https://app.nodejumper.io/zetachain/sync (opens in a new tab)
Option 2: KYVE's KSYNC method
The following doc covers a step by step guide on how to sync a ZetaChain Mainnet node with KSYNC.
KSYNC is a tool capable of syncing blocks and state-sync snapshots from the decentralized KYVE data lake directly into Cosmos blockchain nodes. With KSYNC Cosmos validators don't need to wait for peers in order to block-sync and they don't need to search for trusted app hashes if they want to state-sync. Furthermore, state-syncing to historical heights up to genesis are possible.
More information about KSYNC can be found here: https://docs.kyve.network/ksync (opens in a new tab)
Install KSYNC
Install the latest KSYNC:
go install github.com/KYVENetwork/ksync/cmd/ksync@latest
Verify the installation:
ksync version
Configure the Node
And change the following config in the config.toml
file:
db_backend = "goleveldb"
Changing the db_backend to the default goleveldb is required for now, since KSYNC does not yet support the pebbledb from ZetaChain’s dependency https://github.com/BlockPILabs/cosmos-db (opens in a new tab).
Sync the Node
ksync state-sync --binary="/path/to/zetacored" --chain-id=kaon-1 --snapshot-pool-id=11
Checking Node Health
Check Logs
To confirm that the node is working, you can watch the logs. The node should be
printing INF
logs like these:
4:10AM INF executed block height=3468229 module=state num_invalid_txs=1 num_valid_txs=24 server=node
4:10AM INF commit synced commit=436F6D6D697449447B5B3139332032323120323438203430203230
4:10AM INF committed state app_hash=C1DDF828CB4126E8239D92FB57006D978664911BF75FDB2606804083C4F65354 height=3468229
4:10AM INF indexed block exents height=3468229 module=txindex server=node
4:11AM INF Timed out dur=4468.382473 height=3468230 module=consensus round=0 server=node step=1
Query Node Status
You can confirm that the node is synced by querying the node status endpoint:
curl localhost:26657/status
Make sure that catching_up
is false. Also, check latest_block_height
and
latest_block_time
.