The Kusama CC2->CC3 Validator Upgrade Guide

Francesco Cremona
Simply Staking
Published in
3 min readNov 29, 2019

An upgrade has been released for the Kusama network, v0.7.0, which requires all validators to upgrade imminently to start validating on the new Kusama CC3 chain.

Check the following official Git document for a more in-depth explanation of the CC3 Upgrade: How to validate on Kusama

The following changes have taken place, as detailed by Gavin Wood on Riot:

  • Decentralised governance is now active for the community and council to submit proposals/referendums.
  • There are now 5 authority keys, whereas for CC2 there were only 4. The new one is a new feature from mxiden (@mxinden:matrix.parity.io on Riot) which allows your nodes to discover each other. Initially the fifth key will be set to zeroes. So you’ll want to rotate your keys fairly soon, which will naturally just create this discovery key for you. Again, it won’t matter if you don’t upgrade right now — you won’t get slashed, but you will get better performance once you do have all the authority discovery feature set up.
  • Fixes multiple issues present in the previous v0.6.17/18 releases.
  • Sessions are now just 1 hour; Eras (where the validator set gets reselected) under normal operation are six sessions, but as in CC2 these will initially be just one session to rotate out dead validators quickly.
  • There will be no offline slashing unless more than 10% of the validators all go offline in the same session (1 hour period). This means if you’re only running one or two validator nodes, it’s almost certain that you won’t get slashed for unscheduled downtime.
  • Commissions are now paid out as a % of validator reward, rather than a fixed amount of KSM that you state in advance.
  • By default for pre-existing validators, commission is set at 100%. If you want to actually provide any profits to your nominators, make sure you change it down from 100%.

This guide will go through the steps required to upgrade an existing validator setup running on Kusama CC2 to Kusama CC3.

Upgrade Steps

Ensure that your Kusama CC2 validator node is no longer operational, by killing it’s service, assuming you’re running the Kusama node as a service named kusama.service.

$ systemctl stop kusama.service

Enter the directory in which you cloned the Polkadot github repository, for example:

$ cd $HOME/polkadot

Kusama CC2 ran on the latest v0.6.X release. Therefore you must now fetch the new Git branches/tags, pull and checkout the Kusama CC3 release, which is v0.7.0.

$ git fetch$ git pull$ git pull --tags -f$ git checkout v0.7.0

Ensure that when checking out, the release is at the following commit:

$ HEAD is now at 5598ed9b Add WASM CI checks and make availability-store compile for WASM (#626)

Initialise the environment and build the Polkadot binaries as follows:

$ ./scripts/init.sh
$ cargo clean && cargo build --release --locked

Once the compilation has completed, start the node by running the polkadot binary, then stop it after 30 seconds. The aim of this is to allow for the default directories to be installed at $HOME/.local/share/polkadot/chains/ksmcc3.

$ ./target/release/polkadot --pruning=archive --wasm-execution Compiled

You should now move over CC2’s keystore directory to the directory mentioned above for CC3.

$ cp -r $HOME/.local/share/polkadot/chains/ksmcc2/keystore $HOME/.local/share/polkadot/chains/ksmcc3/keystore

Congratulations, your validator node can now be restarted to start operating and validating on Kusama CC3!

It is recommended to generate your session keys again through the rotateKeys RPC method. Generating new keys will ensure that you’re using the new Authority discovery feature detailed above, having 5 Session keys instead of 4.

$ curl -H "Content-Type: application/json" -g -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933

The resulting hex output should be then imported into the Set Session Key function in the Polkadot Web UI of your validator’s controller account.

Check your node’s visibility on the Polkadot telemetry: https://telemetry.polkadot.io/#list/Kusama%20CC3

Stay tuned to Simply Staking for more Polkadot related guides and documentation:

--

--