Public Testnet Upgrade v0.9.0

The following instructions guide a Validator through the process of upgrade to v0.9.0 of the Cudos Network Public Testnet. The process is the same per node and should be executed as described for every node.

Prepare The Environment

  1. Create a directory for your upgrade scripts
mkdir ~/cudosfork090
  1. Clone the repo:
cd ~/cudosfork090
git clone --branch v0.9.0 https://github.com/CudoVentures/cudos-builders.git CudosBuilders
  1. Navigate to ~/cudosfork090/CudosBuilders/tools-bash/upgrade/config
cd ~/cudosfork090/CudosBuilders/tools-bash/upgrade/config 
  1. Make a copy of node.env.example and name it node.env
cp node.env.example node.env
  1. Open the node.env and define the 3 variables.

    "PARAM_SOURCE_DIR" must point to the folder that contains "CudosNode", "CudosBuilders", "CudosGravityBridge" and "CudosData". This could be in different places based on your previous setup, some possible examples include: "/root/cudos", "/var/lib/cudos", "/usr/cudos"

    Set "PARAM_NODE_NAME" to the type of node you are updating. Possible values are: seed-node, sentry-node or full-node (for the validator). Example: PARAM_NODE_NAME="sentry-node"

    (root-node is also an option for Cudos internal use)

    "PARAM_HAS_ORCHESTRATOR" should be set to true if you have an orchestrator.

Example content of a configuration file by node:

PARAM_SOURCE_DIR value is an example. Please verify you are setting the correct one.

For full-node:

PARAM_SOURCE_DIR="/usr/cudos"
PARAM_NODE_NAME="full-node"
PARAM_HAS_ORCHESTRATOR=""

For seed-node:

PARAM_SOURCE_DIR="/usr/cudos"
PARAM_NODE_NAME="seed-node"
PARAM_HAS_ORCHESTRATOR=""

For sentry-node:

PARAM_SOURCE_DIR="/usr/cudos"
PARAM_NODE_NAME="sentry-node"
PARAM_HAS_ORCHESTRATOR=""

Launch Sequence

  1. Create a backup

    Note: Creating of a backup could take a lot of time. It is very important to do it ONCE upgrade height has been reached NOT before that. Make sure there is no error messages in the console. If something went wrong you can always re-create the backup. Make sure that the backup is correct (You can check it using Validate a backup) before proceeding to the next step. The backup can take around 10-20 minutes - it is a 91GiB transfer.

  2. Validate

    Note: The validate command will print the information about current node. Read it carefully and proceed with the next step only if this information is valid. If it is not valid, please contact CUDOS and make the appropriate changes. If the changes invole any of the previously backup-ed files, you must re-create the backup.

  3. Upgrade

    Note: The upgrade could take up to 20min. If there is any error message during the upgrade you must restore a backup (using Restore a backup) and start over.

TIP

Execute the scripts only when all config files are ready.

All of the scripts below must be executed from ./upgrade folder.

Make sure that ./src/backup.sh, ./src/node.sh and ./src/gravity.sh have execute permission.

You can do this with:

chmod 744 ./src/backup.sh
chmod 744 ./src/node.sh
chmod 744 ./src/gravity.sh

Backup

The backup script has four usages:

Create a Backup

The command below creates a backup of current source files and data files.

cd ~/cudosfork090/CudosBuilders/tools-bash/upgrade
sudo ./src/backup.sh create

Restore a Backup (optional)

The command restores a backup that has been created using Create a backup

cd ~/cudosfork090/CudosBuilders/tools-bash/upgrade
sudo ./src/backup.sh restore

Validate a Backup

The command validates whether a created backup using Create a backup is valid

cd ~/cudosfork090/CudosBuilders/tools-bash/upgrade
sudo ./src/backup.sh validate

Clean a Backup (optional)

The command deletes previously created backup using Create a backup DO NOT use before the node started signing blocks or in an event of emergency. Ideally, leave the backup in place.

cd ~/cudosfork090/CudosBuilders/tools-bash/upgrade
sudo ./src/backup.sh clean

Upgrade the Network

Node

Node script has following usages:

Validate the Config/Setup

The command check for installed binaries, config files, repos, etc.

sudo ./src/node.sh validate

Perform An Upgrade

The command upgrades a node

sudo ./src/node.sh upgrade

Perform an Upgrade Bypassing The Exporting and Migrating of the Genesis File (optional)

The command upgrades a node by using an external genesis. This option cannot be used unless the upgraded network has started producing blocks

sudo ./src/node.sh upgrade-with-predefined-genesis

For informational purposes: please be aware that a necessary part of this upgrade is a change to the Chain ID from cudos-testnet-public-2 to cudos-testnet-public-3, this is common practice for Cosmos-based chains. Note that some old docs may refer to the old Chain ID.