githubEdit

KSYNC

This sections covers how to perform a genesis-sync up to live height and how to state-sync to historical heights for Cronos Mainnet with KSYNC. In summary KSYNC is a tool developed by KYVEarrow-up-right which is capable of syncing blocks and state-sync snapshots from the decentralized KYVE data lake directly into Cosmos blockchain nodes. For Cronos, KYVE has validated all historical blocks and state-sync snapshots (in a 10,000 interval) in a decentralized way and permanently archived them to Arweavearrow-up-right, a decentralized storage solution. KSYNC can then pull down this verified data and apply them against the Cronos app, you can find full documentation on the tool herearrow-up-right.

circle-info

Note

Set environmental variables:

PATH="$PATH: <tools folder>"

e.g. PATH="$PATH: /Users/localuser/Cronos/bin"

Installation

You can install KSYNC with the following command, ensure that you have go1.21arrow-up-right installed:

go install github.com/KYVENetwork/ksync/cmd/ksync@latest

To verify the installation simply run ksync version. To build from source visit the repository on GitHubarrow-up-right.

Sync Cronos from genesis

To sync Cronos from genesis up to live height install the binary used for genesis from herearrow-up-right.

After the installation, init the config:

./cronosd init <your-moniker> --chain-id cronosmainnet_25-1

Download the genesis:

wget -O ~/.cronos/config/genesis.json https://raw.githubusercontent.com/crypto-org-chain/cronos-mainnet/master/cronosmainnet_25-1/genesis.json

Now that Cronos is properly set up you can start the genesis sync:

ksync block-sync --binary="/path/to/cronosd" --source="cronos"

This will run until live height has been reached, you can check the latest height which KYVE has validated and archived herearrow-up-right.

Note that you can also configure Cosmovisor which contains all the upgrade binaries. With Cosmosvisor, you do not need to manually switch to a different version every time Cronos reaches an upgrade point. It is recommended to pair this with a systemd service file, refer to the template below:

Remember to replace $USER with your actual username.

Apply historical state-sync snapshots

The "normal" state-sync only supports syncing to live height, however KYVE has validated and archived all state-sync snapshots from genesis with a 10,000 block interval therefore historical state-sync is possible with KSYNC. Note that the archival process is still ongoing and live height has not been reached yet, check the progress herearrow-up-right. To install Cronos, follow the same process as in the genesis sync part before. However, you will need to use a different binary version. You can find all upgrades with the relevant upgrade heights here.

To perform the state-sync execute the following command:

If there is no state-sync snapshot available for your requested $HEIGHT, KSYNC will automatically propose the nearest snapshot the chosen height.

Sync to any historical height with height-sync

The features of historical state-sync and block-sync can now be combined to sync to any historical block height by using the combination of the two. KSYNC will state-sync to the nearest snapshot before your specified target height and sync the remaining blocks using block-sync. With this process, checking the state at a certain height is greatly improved because now you don't need to sync all the way from genesis to inspect the state of an historical block height.

To perform the height-sync execute the following command:

Last updated

Was this helpful?