githubEdit

KSYNC

Introduction

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"

Pre-requisites

Please check the environment requirements for KSYNC from herearrow-up-right.

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

Step 1: Get the cronosd binary for genesis

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

  • Install the Cronos Mainnet binaries from GitHub:

  • Check that cronosd is effectively installed:

Step 2: Configure cronosd

After the installation, init the config:

Download the genesis:

Step 3: Run everything

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

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

Cosmovisor

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.

Step 1: Install & configure cronosd for specific upgrade height

To install and configure 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 herearrow-up-right.

Step 2: Run everything

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.

Step 1: Install & configure cronosd for specific upgrade height

To install and configure Cronos, follow the same process as in the historical state-sync before. You can find all upgrades with the relevant upgrade heights herearrow-up-right.

Step 2: Run everything

To perform the height-sync execute the following command:

Last updated

Was this helpful?