Skip to main content

Binary Upgrade

When the upgrade is available clone the Sentinel Hub repository, checkout at the new version and install it

git clone https://github.com/sentinel-official/hub.git "${HOME}/sentinelhub"
cd "${HOME}/sentinelhub"
git checkout <new_version>
make install
sudo ln -s "${GOBIN}/sentinelhub" /usr/local/bin/sentinelhub

An upgrade to the blockchain can either be consensus-breaking or non-consensus-breaking. The procedural steps to be followed depend on the type of consensus involved.

Consensus Breaking (Chain Upgrade)

Create the upgrade directory inside Cosmovisor with the name of the version (for the last upgrade was v11 as you can see here under the section plan, tab name)

mkdir ~/.sentinelhub/cosmovisor/upgrades/<upgrade_name>/bin

Copy sentinelhub binary in it

cp ~/go/bin/sentinelhub ~/.sentinelhub/cosmovisor/upgrades/<upgrade_name>/bin

Check if the sentinelhub binary upgrade was copied and if it is the correct version:

~/.sentinelhub/cosmovisor/upgrades/<upgrade_name>/bin/sentinelhub version

Now that you have prepared and deployed the new binary, the remaining steps will be managed by Cosmovisor when the upgrade is scheduled to take place. Here's a breakdown of the process:

When the designated block height is reached, the blockchain temporarily halts its operations. Following this, an upgrade-info.json file is generated and put into the folder .sentinelhub/cosmovisor/upgrades/<upgrade_name>/.

The content of this file will be the following, based on the last hub upgrade:

.sentinelhub/cosmovisor/upgrades/<upgrade_name>/
{"name":"v11","time":"0001-01-01T00:00:00Z","height":12310005}

The Cosmovisor system identifies the existence of this file and triggers the required sequence of actions. These actions include pausing the node, inserting the relevant binary into the specified directory, and subsequently restarting the node.

This carefully orchestrated sequence guarantees a seamless transition and successful execution of the blockchain upgrade.

Non Consensus Breaking

The non-consensus breaking process involves the seamless replacement of the current sentinel binary with the updated version.

Stop cosmovisor

sudo systemctl stop cosmovisor.service

Copy the newly created Sentinel Hub binary into Cosmovisor

cp go/bin/sentinelhub .sentinelhub/cosmovisor/current/bin/

Verify that the cosmovisor version is current

cosmovisor version

Start cosmovisor

sudo systemctl start cosmovisor

Monitor the logs to confirm the successful execution of the process

journalctl -u cosmovisor.service -f --output=cat