On chain proposal: What will be upgrade & implement:
- Huckleberry patch
- Upgrade from IBC v3.4.0 to IBC v4.4.1
- Upgrade Cosmos-SDK from v0.45.15 to v0.45.16
- Upgrade CometBFT from v0.34.27 to v0.34.28
Description: A safety patch has been released for IBC Go which is advised to apply as soon as possible. Where we intended to update our blockchain with the upcoming upgrade to Cosmos-SDK v0.46.x we will now do an upgrade to be able to apply the patch. For that reason the chain needs to be halted.
With this proposal we set a new upgrade height at block 8.771.420 (30-05-2023 around 15:45h CEST) with the codename vigorous-grow-huckleberry (v1.7.0). At the given height the chain will halt and all validators have to change the binary to the new version. After a brief downtime the chain will resume operations.
Upgrade height: https://www.mintscan.io/bitcanna/blocks/8771420
(Update scheduled for 10th March 2023 ~ 18.40h CET - 17.40h UTC)
Note: this is a planned upgrade, the chain will halt at block 7585420
Important note: The tag name required for the upgrade is v1.6.1
- Fix Ante handler to prevent spam proposals at Gov module
- Remove OpenAPI dep from Ignite; now included locally.
- Bump Cosmos SDK version to v0.45.14 to mitigate a possible way to DDoS a node.
- Bump Tendermint to v0.34.26 (InformalSystem fork).
- Bump IBC go version to v.3.4.0 (it will break consensus so a new start/stop is required)
- Bump IAVL version to v0.19.5
- Fixed BCNA module path & bug with CLI
- Using Cosmos Keyring v1.2.0
(Update scheduled for 2nd March 2023 ~ 16.20h CET - 15.20h UTC)
Note: this is a planned upgrade, the chain will halt at block 7467420
Important note: The tag name required for the upgrade is v1.6.0-fix because tag v1.6.0 contains a typo and won't match the Plan (Upgrade) Name
- Ante handler to prevent spam proposals at Gov module
- Remove OpenAPI dep from Ignite; now included locally.
- Bump Cosmos SDK version to v0.45.14 to mitigate a possible way to DDoS a node.
- Bump Tendermint to v0.34.26 (InformalSystem fork).
- Bump IBC go version to v.3.4.0 (it will break consensus so a new start/stop is required)
- Bump IAVL version to v0.19.5
- Fixed BCNA module path & bug with CLI
- Using Cosmos Keyring v1.2.0
(Update scheduled for 7 November 2022 ~ 14.00h UTC)
- Source code refactored to deprecate
CosmosCMDpackage from Ignite/CLI. - InterChain Accounts module intregration.
- Last security and stability updates.
Note: this is a planned upgrade, chain will halts at block 5787420
We've developed a new version with some updates (regarding SDK, Tendermint & IBC/go) to improve the security (Dragonberry) and stability (forks in IAVL) in our chain.
- Cosmos SDK v0.45.10
- Tendermint v0.34.22
- IAVL v0.19.4
- IBC/go v3.3.1
- Ledger-go v0.9.3 (now support Ledger Nano Plus)
Note: this is not a planned upgrade, chain won't be halted
We've developed a new version with some updates (regarding SDK, Tendermint & IBC/go) to improve the security and stability in our chain.
- Cosmos SDK v.0.45.8
- Tendermint v.0.34.21 (fixed
unsafe-reset-allsubcommand oftendermintcommand - IBC/go v.3.2.0
- Ledger-go v0.9.3 (now support Ledger Nano Plus)
Note: this is not a planned upgrade, chain won't be halted
Steps are:
- Download or compile the new binary
- Stop the daemon (bcnad or cosmovisor)
- Replace binary in linux path or cosmovisor folder
- Start the daemo again
-
Download or compile the new binary
1.1. Download the new binary
cd $HOME wget -nc https://github.com/BitCannaGlobal/bcna/releases/download/v1.4.2/bcna_linux_amd64.tar.gz1.1.2. Check the sha256sum for the downloaded file.
sha256sum bcna_linux_amd64.tar.gzIt must return:
903c63b9f668bf5208566955648279bdf0c15e73aab415d5ea5efc09ec1fc8901.1.3. Verify that the version is
1.4.2rm -f ./bcnad #delete old file if exist tar zxvf bcna_linux_amd64.tar.gz rm bcna_linux_amd64.tar.gz chmod +x bcnad ./bcnad version1.2. Alternatively you can compile the new binary, GoLang v1.18 required
1.2.1. Download the source code using
gitgit clone https://github.com/BitCannaGlobal/bcna.git cd bcna git checkout v1.4.2 make build #it build the binary in build/ folder1.2.2. Verify the version:
build/bcnad versionThe output must be
1.4.2 -
Stop the daemon (bcnad or cosmovisor)
sudo service bcnad stop # for bcnad service sudo service cosmovisor stop #for cosmovisor -
Replace binary in linux path or cosmovisor folder 3.1. For Cosmovisor
mv ./bcnad $HOME/.bcna/cosmovisor/current/bin/ #dowloaded mv $HOME/bcna/build/bcnad $HOME/.bcna/cosmovisor/current/bin #compiled3.2. Without Cosmovisor
sudo mv bcnad $(which bcnad) #downloaed sudo mv $HOME/bcna/build/bcnad $(which bcnad) #compiled -
Start the daemon again
sudo service bcnad start # for bcnad service sudo service cosmovisor start #for cosmovisor
Outdated: this was a planed upgrade
We've developed a new version with some updates (regarding SDK, Tendermint & IBC/go) called strangeBuddheads to improve the security and stability in our chain.
- Cosmos SDK v.0.45.7
- Tendermint v.0.34.20
- IBC/go v.3.1.1
- IAVL v.0.19.1
Note: When using Cosmos SDK 0.45.7, the restart of the binary could take up to 15 minutes in order to build the fast cache of IAVL. The fast cache will provide a performance improvement over 0.45.6.
Additionally, we are including the SDK authz module which introduces the "Restake" functionality and some other on-chain functionality such as "Grants".
Also we have fixed the bcna module & we have added a new extra field for "Supply Chain" tracking.
We will upgrade to strangeBuddheads version by governance by forking the current chain.
Upgrade schedule:
- Proposal: today, 8th of August, 2022 11:00 CEST
- Voting period: today, 8th August, 2022 11:00 CEST - 11th of August, 11:00 CEST
- Upgrade height: block 4490420 (~16:05 CEST 11th of August 2022)
https://www.mintscan.io/bitcanna/proposals/4 https://explorer.bitcanna.io/proposals/4
This section of the guide shows how to perform a manual update of the binaries after the governance proposal has been approved for the chain update.
- Stop your bcnad service after you see this in your logs
ERR UPGRADE "strangeBuddheads" NEEDED at height: XXXXXXXX
sudo service bcnad stop
-
Compile the binary from the source (2.1) or download it (2.2).
2.1. If you want to BUILD the binary from the source, detailed instructions can be found in this DOC of our GitHub:
git clone https://github.com/BitCannaGlobal/bcna.git cd bcna && git checkout v1.4.1 make buildThis will produce a
bcnadfile in thebuildfolder. Move to the current binary path:mv build/bcnad $(which bcnad) #copy&paste don't replace anythingYou can jump to step 3.
2.2 If you want to DOWNLOAD the compiled binary:
cd ~ rm bcna_linux_amd64.tar.gz #delete old file if exist wget -nc https://github.com/BitCannaGlobal/bcna/releases/download/v1.4.1/bcna_linux_amd64.tar.gz2.2.1. Check the sha256sum for the downloaded file.
sha256sum bcna_linux_amd64.tar.gzIt must return:
305ff854cc892e5bd4de6f2b3d8bd745525878244f78478be6c579d56316fe9d2.2.2. Verify that the version is
1.4.1rm -f ./bcnad #delete old file if exist tar zxvf bcna_linux_amd64.tar.gz rm bcna_linux_amd64.tar.gz chmod +x bcnad ./bcnad version2.2.3. Move the new binary to your machine's PATH and overwrite the previous version
sudo mv bcnad $(which bcnad) #copy&paste don't replace anythingIf you know the exact destination you could also run:
sudo mv bcnad /usr/local/bin/ #or wherever you have it -
Start the bcnad service
sudo service bcnad start -
Ensure that everything is OK by checking the logs
sudo journalctl -u bcnad -f
Cosmovisor is an hypervisor that check the logs and replaces binaries when the upgrades happens.
It run as service and replaces the bcnad service. A complete guide to config Cosmovisor with BitCanna chain is here
Attention! There is a new official release of Cosmovisor (check here v.1.2) If you need instructions to upgrade check this doc.
- Create a new directory to store the new binary:
mkdir -p ${HOME}/.bcna/cosmovisor/upgrades/strangeBuddheads/bin
-
Compile the binary from the source (2.1) or download it (2.2).
2.1. If you want to BUILD the binary from the source, detailed instructions can be found in this DOC of our GitHub:
git clone https://github.com/BitCannaGlobal/bcna.git cd bcna && git checkout v1.4.1 make buildThis will produce a
bcnadfile in thebuildfolder. Move to the NEW binary path:mv ./bcnad ${HOME}/.bcna/cosmovisor/upgrades/strangeBuddheads/bin #copy&paste don't replace anythingYou can jump to step 3.
2.2. If you want to DOWNLOAD the compiled binary (instead of compiling by yourself):
cd ~ rm bcna_linux_amd64.tar.gz #delete old file if exist wget -nc https://github.com/BitCannaGlobal/bcna/releases/download/v1.4.1/bcna_linux_amd64.tar.gz2.2.1 Check the sha256sum for the downloaded file.
sha256sum bcna_linux_amd64.tar.gzIt must return:
305ff854cc892e5bd4de6f2b3d8bd745525878244f78478be6c579d56316fe9d2.2.2 Verify that the version is
1.4.1rm -f ./bcnad #delete old file if exist tar zxvf bcna_linux_amd64.tar.gz rm bcna_linux_amd64.tar.gz chmod +x bcnad ./bcnad version2.2.3 Move the newly downloaded/built binary to the upgrades directory.
mv ./bcnad ${HOME}/.bcna/cosmovisor/upgrades/strangeBuddheads/bin/ -
If you want to be sure that the proper binary is in the proper folder:
${HOME}/.bcna/cosmovisor/upgrades/strangeBuddheads/bin/bcnad version
# --> should reply: 1.4.1
If you want to update Cosmovisor from v1.1 to v1.2 follow the next instructions, for a new installation and setup of BCNA params check this doc.
CAUTION! Cosmovisor v1.2 has a bug and it doesn't get the uppercase in the binary folder path
Temporal solution is:
mkdir -p ${HOME}/.bcna/cosmovisor/upgrades/strangebuddheads/bin
cp -R ${HOME}/.bcna/cosmovisor/upgrades/strangeBuddheads/ ${HOME}/.bcna/cosmovisor/upgrades/strangebuddheads/
wget https://github.com/cosmos/cosmos-sdk/releases/download/cosmovisor%2Fv1.2.0/cosmovisor-v1.2.0-linux-amd64.tar.gz
tar zxvf cosmovisor-v1.2.0-linux-amd64.tar.gz
rm *.md && rm cosmovisor-v1.2.0-linux-amd64.tar.gz
sudo mv cosmovisor $(which cosmovisor)
BUG description here: cosmos/cosmos-sdk#12915
Cosmovisor v1.2 introduces several changes and improvements.
- It's mandatory to execute all the commands with
runprefixe (cosmovisor run status) That implies that you need to modify the service file if it doesn't include theruncommand in the Daemon Start command. - Cosmovisor v1.2 includes a new option (env:
to delay the start of the new binary and make the automated backup. It prevents to start again without kill the previous daemon and make a bad automated backup (if is set), so we should configure this new feature to introduce 30 seconds of delay.
Let's review this two tips:
-
With Cosmovisor service
- Edit the file
sudo nano /lib/systemd/system/cosmovisor.serviceReplace
cosmovisor startbycosmovisor run startline and save it:ExecStart=/usr/local/bin/cosmovisor run startAdd this options if you want an automated backup of chain before the upgrade takes action.
Environment=UNSAFE_SKIP_BACKUP=false Environment=DAEMON_RESTART_DELAY=30s- Reload service file and start Cosmovisor
sudo systemctl daemon-reload sudo service cosmovisor restart sudo journalctl -fu cosmovisor
If you want to know if Cosmovisor handles the right binary file exec:
sudo service cosmovisor statuscosmovisor version
And check the path of the binary file.