Swisstronik v4 Testnet
Upgrade plan for v1.0.3
The upcoming v1.0.3 upgrade will introduce a couple of new features:
Performance improvements
The ability to send unencrypted transactions to simplify user onboarding
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 backup your data upon upgrade. See the 'Upgrade by 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.3/swisstronikd.zip
Extract the downloaded archive:
unzip swisstronikd.zip
In bin
folder you will be able to find required files.
Copy libsgx_wrapper_v1.0.3.x86_64.so
lib:
sudo cp bin/libsgx_wrapper_v1.0.3.x86_64.so /usr/lib
Copy v1.0.3_enclave.signed.so
to ENCLAVE_HOME
directory (by default it is $HOME/.swisstronik-enclave
):
cp bin/v1.0.3_enclave.signed.so $ENCLAVE_HOME
DURING UPGRADE: Modify your .service file
Once your validator reach upgrade height, it will stop produce new blocks automatically. After your node stopped, switch the binary you're using to swisstronikd
v1.0.3 at ExecStart
in your .service
file.
NOTE: swisstronikd
v1.0.3 is located in bin
folder from previous step with unpacking .zip
archive.
Then run:
sudo systemctl daemon-reload
Then you should restart your validator.
Using 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.3/swisstronikd.zip
Extract the downloaded archive:
unzip swisstronikd.zip
In bin
folder you will find the required files.
Copy libsgx_wrapper_v1.0.3.x86_64.so
to the library directory:
sudo cp bin/libsgx_wrapper_v1.0.3.x86_64.so /usr/lib
Copy v1.0.3_enclave.signed.so
to ENCLAVE_HOME
directory (by default it is $HOME/.swisstronik-enclave
):
cp bin/v1.0.3_enclave.signed.so $ENCLAVE_HOME
Setup 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.0
Rename and copy swisstronikd_v1.0.2
to swisstronikd
:
cp $(whereis swisstronikd_v1.0.2) .
Initialize Cosmovisor:
export DAEMON_HOME=/path/to/.swisstronik
export DAEMON_NAME=swisstronikd
cosmovisor init swisstronikd
Put v1.0.3 binaries
Copy swisstronik
v1.0.3 to $HOME/.swisstronik/cosmovisor/upgrades/v1.0.3/bin
mkdir -p $HOME/.swisstronik/cosmovisor/upgrades/v1.0.3/bin
cp swisstronikd $HOME/.swisstronik/cosmovisor/upgrades/v1.0.3/bin
NOTE: swisstronikd
v1.0.3 is located in bin
folder from previous step with unpacking .zip
archive.
Check folder structure
At this moment, you should have the following structure:
.
├── current -> genesis or upgrades/<name>
├── genesis
│ └── bin
│ └── swisstronikd # old: v1.0.2
└── upgrades
└── v1.0.3
└── bin
└── swisstronikd # new: v1.0.3
Export the Environmental Variables
export DAEMON_NAME=swisstronikd
# please change to your own swisstronik home dir
# please note `DAEMON_HOME` has to be absolute path
export DAEMON_HOME=$HOME/.swisstronik
export DAEMON_RESTART_AFTER_UPGRADE=true
Disable 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_HOME
Skipping the invariant checks is strongly encouraged since it decreases the upgrade time significantly and since there are other improvements coming to the crisis module in the next release of the Cosmos SDK.
NOTE: in v1.0.3 release we've enabled possibility to send unencrypted transactions. To expose JSON-RPC for them, specify --json-rpc.address-unencrypted
and json-rpc.ws-address-unencrypted
parameters.
Last updated