The "Galileo" upgrade guide (v0.8.* to v1.0.*)
Step 0 - Don't panic
At the point of the proposed upgrade, user will see the error message on the cronosd
similar to the below:
ERR UPGRADE "v1.0.2" NEEDED at height: 6542800: {\"binaries\":{...."}}
Don't panic - The Chain will be paused to allow the majority of validators to upgrade. Validators and full node hosts will have to upgrade your Cronos nodes to the latest release binary.
Backups
Before the upgrade, node hosts are encouraged to take a complete data backup. backup depends heavily on infrastructure, but generally, we can do this by backing up the .cronos
directory.
It is critically important for validator operators to back-up the .cronos/data/priv_validator_state.json
file after stopping the cronosd
process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing if the upgrade fails and the previous chain needs to be restarted.
Step 1 - Get the v1.0.2
binary
v1.0.2
binaryTo simplify the following step, we will be using Linux-x86 for illustration. Binary for Mac Windows with different DB and architecture are also available here.
Terminate the
cronosd
; afterwards, download the1.0.2
released binaries from github:$ curl -LOJ https://github.com/crypto-org-chain/cronos/releases/download/v1.0.2/cronos_1.0.2_Linux_x86_64.tar.gz $ tar -zxvf cronos_1.0.2_Linux_x86_64.tar.gz
Step 1.1 - Verify the version
You can verify the installation by checking the version of cronosd
, the version should be1.0.2
.
# check the version of cronosd
$ ./cronosd version
1.0.2
Step 1.2 - Update app.toml
app.toml
In this v1.0.2 upgrade, there are a few extra parameters that we would have to add to .cronos/config/app.toml
under
config.toml
with thedb_backend
field;app.toml
with theapp-db-backend
field.
For db_backend
:
Kindly set the above config to config/config.toml
in your our .cronos
dir according to your current DB setting, for example:
db_backend = "goleveldb"
For
app-db-backend
:
Kindly add
# AppDBBackend defines the database backend type to use for the application and snapshots DBs.
# An empty string indicates that a fallback will be used.
# First fallback is the deprecated compile-time types.DBBackend value.
# Second fallback (if the types.DBBackend also isn't set), is the db-backend value set in Tendermint's config.toml.
app-db-backend = ""
to config/app.toml
in your our .cronos
dir according to your current DB setting.
Step 2. - Run everything
We are ready to start the node join the network again with the new binary:
Start
cronosd
, e.g.:
$ ./cronosd start
Afterwards, sit back and wait for the syncing process. You can query the node syncing status by
$ ./cronosd status 2>&1 | jq '.SyncInfo.catching_up'
If the above command returns false
, it means that your node is synced; otherwise, it returns true
and implies your node is still catching up.
At this step, you've successfully performed the "Galileo" upgrade!
Last updated
Was this helpful?