Magnus Upgrade
Proposal is the reference on-chain governance proposal for this upgrade, which has passed with overwhleming community support. Neither core developers nor core funding entities control the governance, and this governance proposal has passed in a fully decentralized way.
The upgrade will take place at a block height of
2648000
. At the time of writing, and at current block times, this block height corresponds approximately to 2022-03-28 12:00:00 UTC .The chain-id of the network will remain the same,
titan-1
. This is because an in-place migration of state will take place, i.e., this upgrade does not export any state.32GB RAM is recommended to ensure a smooth upgrade.
If you have less than 32GB RAM, you might try creating a swapfile to swap an idle program onto the hard disk to free up memory. This can allow your machine to run the binary than it could run in RAM alone.
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
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
$HOME/.rizon
directory. If you use Cosmovisor to upgrade, by default, Cosmovisor will backup your data upon upgrade.As a validator performing the upgrade procedure on your consensus nodes carries a heightened risk of double-signing and being slashed. The most important piece of this procedure is verifying your software version and genesis file hash before starting your validator and signing.
The riskiest thing a validator can do is discover that they made a mistake and repeat the upgrade procedure again during the network startup. If you discover a mistake in the process, the best thing to do is wait for the network to start before correcting it.
Use
rizond
to join Titan mainnet or Groot testnetRun
rizond
v0.2.8 till upgrade height 2648000, the node will panic:ERR UPGRADE "Magnus" NEEDED at height: 2648000
panic: UPGRADE "Magnus" NEEDED at height: 2648000
After stopping the node, install
rizond
v0.3.0 and simply restart node by rizond start
.cd $RIZON_SOURCE_DIRECTORY
git checkout v0.3.0
make install
rizond start
We highly recommend validators use cosmovisor to run their nodes. This will make low-downtime upgrades smoother, as validators don't have to manually upgrade binaries during the upgrade, and instead can preinstall new binaries, and cosmovisor will automatically update them based on on-chain SoftwareUpgrade proposals.
If you choose to use cosmovisor, please continue with these instructions:
To install Cosmovisor:
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
After this, you must make the necessary folders for cosmovisor in your daemon home directory ($HOME/.rizon).
mkdir -p $HOME/.rizon
mkdir -p $HOME/.rizon/cosmovisor
mkdir -p $HOME/.rizon/cosmovisor/genesis
mkdir -p $HOME/.rizon/cosmovisor/genesis/bin
mkdir -p $HOME/.rizon/cosmovisor/upgrades
Cosmovisor requires some ENVIRONMENT VARIABLES be set in order to function properly. We recommend setting these in your
.profile
so it is automatically set in every session.For validators we recommend setting
DAEMON_ALLOW_DOWNLOAD_BINARIES=false
for security reasonsDAEMON_LOG_BUFFER_SIZE=512
to avoid a bug with extra long log lines crashing the server.DAEMON_RESTART_AFTER_UPGRADE=true
for unattended upgrades
echo "# Setup Cosmovisor" >> ~/.profile
echo "export DAEMON_NAME=rizond" >> ~/.profile
echo "export DAEMON_HOME=$HOME/.rizon" >> ~/.profile
echo "export DAEMON_ALLOW_DOWNLOAD_BINARIES=false" >> ~/.profile
echo "export DAEMON_LOG_BUFFER_SIZE=512" >> ~/.profile
echo "export DAEMON_RESTART_AFTER_UPGRADE=true" >> ~/.profile
echo "export UNSAFE_SKIP_BACKUP=true" >> ~/.profile
source ~/.profile
You may leave out
UNSAFE_SKIP_BACKUP=true
, however the backup takes a decent amount of time and public snapshots of old states are available.Finally, you should copy the current rizond binary into the cosmovisor/genesis folder.
cp $GOPATH/bin/rizond $DAEMON_HOME/cosmovisor/genesis/bin
To prepare for the upgrade, you need to create some folders, and build and install the new binary.
mkdir -p $DAEMON_HOME/cosmovisor/upgrades/Magnus/bin
git clone https://github.com/rizon-world/rizon
cd rizon
git checkout v0.3.0
make install
cp $GOPATH/bin/rizond $DAEMON_HOME/cosmovisor/upgrades/Magnus/bin
Now cosmovisor will run with the current binary, and will automatically upgrade to this new binary at the appropriate height if run with:
cosmovisor start
During the network upgrade, RIZON teams will be keeping an ever vigilant eye and communicating with operators on the status of their upgrades. During this time, the core teams will listen to operator needs to determine if the upgrade is experiencing unintended challenges. In the event of unexpected challenges, the core teams, after conferring with operators and attaining social consensus, may choose to declare that the upgrade will be skipped.
Steps to skip this upgrade proposal are simply to resume the network with the (downgraded) v0.2.8 binary using the following command:
rizond start --unsafe-skip-upgrade 2648000
Last modified 1yr ago