Swisstronik v5 Testnet
Upgrade plan for v1.0.4
The upcoming v1.0.4 upgrade includes the following bug fixes:
Fixed a nasty bug with
logIndexfor EVM events that previously caused issues with EVM block explorers;Disabled EIP712 functionality as it was unused and could potentially introduce bugs and vulnerabilities.
Backup
Prior to the upgrade, validators are encouraged to take a full data snapshot. Snapshotting depends heavily on infrastructure, but generally, this can be done by backing up the .swisstronik directory. If you use Cosmovisor to upgrade, by default, Cosmovisor will back up your data upon upgrade. See the "Upgrade with Cosmovisor" section below.
It is critically important for validator operators to back up the .swisstronik/data/priv_validator_state.json file after stopping the gaiad process. This file is updated every block as your validator participates in consensus rounds. It is a critical file needed to prevent double-signing in case the upgrade fails and the previous chain needs to be restarted.
Manually
If you're not using Cosmovisor, you can perform the upgrade manually.
Prepare New Binary
Download the new binary:
wget https://github.com/SigmaGmbH/swisstronik-chain/releases/download/testnet-v1.0.4/swisstronikd.zipExtract the downloaded archive:
unzip swisstronikd.zipIn the bin folder, you will find the required files.
Copy the libsgx_wrapper_v1.0.4.x86_64.so library:
sudo cp bin/libsgx_wrapper_v1.0.4.x86_64.so /usr/libCopy v1.0.4_enclave.signed.so to the ENCLAVE_HOME directory (by default, it is $HOME/.swisstronik-enclave):
cp bin/v1.0.4_enclave.signed.so $ENCLAVE_HOMEDuring Upgrade: Modify Your .service File
Once your validator reaches the upgrade height, it will automatically stop producing new blocks. After your node stops, switch the binary you're using to swisstronikd v1.0.4 at ExecStart in your .service file.
Note: swisstronikd v1.0.4 is located in the bin folder from the previous step of unpacking the .zip archive.
Then run:
sudo systemctl daemon-reloadRestart your validator:
sudo systemctl restart your-validator-serviceUsing Cosmovisor
If you're running your node using Cosmovisor, please follow these steps.
Download Binaries
Download the new binary:
wget https://github.com/SigmaGmbH/swisstronik-chain/releases/download/testnet-v1.0.4/swisstronikd.zipExtract the downloaded archive:
unzip swisstronikd.zipIn the bin folder, you will find the required files.
Copy the libsgx_wrapper_v1.0.4.x86_64.so library:
sudo cp bin/libsgx_wrapper_v1.0.4.x86_64.so /usr/libCopy v1.0.4_enclave.signed.so to the ENCLAVE_HOME directory (by default, it is $HOME/.swisstronik-enclave):
cp bin/v1.0.4_enclave.signed.so $ENCLAVE_HOMESetup Cosmovisor
If you haven't configured Cosmovisor before, follow these steps.
Install the latest version of Cosmovisor (1.5.0):
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest
cosmovisor version
# cosmovisor version: v1.5.0Rename and copy swisstronikd_v1.0.3 to swisstronikd:
cp $(whereis swisstronikd_v1.0.3) .Initialize Cosmovisor:
export DAEMON_HOME=/path/to/.swisstronik
export DAEMON_NAME=swisstronikd
cosmovisor init swisstronikdPut v1.0.4 Binaries
Copy swisstronikd v1.0.4 to $HOME/.swisstronik/cosmovisor/upgrades/v1.0.4/bin:
mkdir -p $HOME/.swisstronik/cosmovisor/upgrades/v1.0.4/bin
cp swisstronikd $HOME/.swisstronik/cosmovisor/upgrades/v1.0.4/binNote: swisstronikd v1.0.4 is located in the bin folder from the previous step of unpacking the .zip archive.
Check Folder Structure
At this point, you should have the following structure:
.
βββ current -> genesis or upgrades/<name>
βββ genesis
β βββ bin
β βββ swisstronikd # old: v1.0.3
βββ upgrades
βββ v1.0.4
βββ bin
βββ swisstronikd # new: v1.0.4Export the environmental variables:
export DAEMON_NAME=swisstronikd
# please change to your own swisstronik home dir
# please note `DAEMON_HOME` has to be an absolute path
export DAEMON_HOME=$HOME/.swisstronik
export DAEMON_RESTART_AFTER_UPGRADE=trueDisable Auto-Downloading of Binaries
Set DAEMON_ALLOW_DOWNLOAD_BINARIES to false to avoid Cosmovisor trying to download binaries.
Start the Node
Start the node:
cosmovisor run start --x-crisis-skip-assert-invariants --home $DAEMON_HOMESkipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are some other improvements coming to the crisis module in the next release of the Cosmos SDK.
Last updated