Testnet 9.2 released: Upgrade Your Witnet Node/s Now!

Witnet Testnet 9.2 (witnet-rust 0.9.2) has been released: this covers the crucial updates (and what they mean for the network), followed by instructions on how to upgrade.

Adán Sánchez de Pedro
The Witnet Oracle Blog

--

What’s new?

Testnet 9.2 builds on the stability and security of the 9.1 network — which has been up for 5 weeks—and adds some necessary updates that pave the way for the eventual launch of the Witnet Mainnet, due to commence on October 14th 2020:

  • When multiple block proposals are made from reputed nodes (i.e. those with a reputation > 0) for the same epoch, the winning block will no longer be elected based on the node with the highest reputation, but at random. This will ensure a more fair distribution of rewards and will prevent reputation oligarchies.
  • The activity period protocol constant has been increased to allow more identities to be represented in the Active Reputation Set (ARS), thus giving the network a more accurate estimation of the nodes count in order to adjust the mining difficulty.
  • A claim CLI method has been implemented so that participants in the Witnet Testnet Incentive Program can prove the ownership of their nodes with views to claiming their Mainnet rewards.
  • The getUtxoInfo CLI method now displays separate counts for UTXOs that are bigger than the minimum collateral value (1 WIT) and older than the minimum collateral age (12h).
  • Automatic system time adjustment using NTP has been re-enabled (this was disabled for a while due to stability concerns). This is important due to the time-critical and synchronous nature of the current consensus algorithm.
  • The RADON engine — which is the virtual machine in charge of executing data requests inside Witnet nodes — now supports reporting partial values. This means that client apps like Sheikah will now be able to troubleshoot and debug data requests in real-time and watch the data flow and keep an eye out for potential errors.
  • This potential DOS bug, as highlighted by Harsh Jain as part of the Bug Bounty Program was also addressed, as per the Github fix here.

Upgrade now! Different setups, different upgrade methods

The process will depend on your setup. Please identify which of the following setups you have:

  1. I’m running a node on Docker.
  2. I’m running a node on Docker Compose.
  3. I’m running a node with systemd.
  4. I’m running the binary directly from the release or the source code.
  5. I’m not running a node yet.

Check below for specific instructions corresponding to each setup.

Setup 1: I’m running a node on Docker

So great to hear you’ve been in the community for that long! Upgrading is as easy as it gets:

  1. Remove the old container. Don’t worry, your private keys won’t disappear:
docker stop witnet_nodedocker rm witnet_node

2. Pull the latest version of the Docker image:

docker pull witnet/witnet-rust

3. Create a 0.9.2 container with the following command (if you changed the persistent storage path in the past, change ~/.witnet-rust-testnet-6 for whatever path you were using):

docker run -d \
--name witnet_node \
--volume ~/.witnet:/.witnet \
--publish 21337:21337 \
--restart always \
witnet/witnet-rust

Voilà! Your 0.9.2 Witnet Testnet node is now up and running. Your master key is safe and your addresses will be the same. This time your balance and reputation score will be lost though, as this is a full network reboot.

Remember that you can always double-check the Witnet version that you are running with this command:

docker exec witnet_node witnet --version

Take into account that Testnet 9.2 has been scheduled for bootstrapping on Wednesday 19th August at 09:00 UTC. If you start your node before that date and time, it will start looking for peers and then it will remain idle until the bootstrapping. It will then continue operating normally.

If you want to make sure that everything is in order, please take a look at the new “What’s next?” guide in the Witnet protocol documentation.

Warning: if you customized your witnet.toml file, you may need to make those changes again after this upgrade.

Setup 2: I’m already running a node on Docker Compose

Upgrading your Docker Compose setup is even easier. First navigate to the directory where your docker-compose.yaml file is. For example, if you are using @Bertux integration:

cd witnet-operator-tools/docker/compose/bertux-operator-stable

From there, doing the upgrade is as easy as it gets:

docker-compose down
docker-compose pull
docker-compose up -d

Wasn’t that easy? 😄

If you want to make sure that everything is in order, please take a look at the new “What’s next?” guide in the Witnet protocol documentation.

Take into account that Testnet 9.2 has been scheduled for bootstrapping on Wednesday 19th August at 09:00 UTC. If you start your node before that date and time, it will start looking for peers and then it will remain idle until the bootstrapping. Then it will continue operating normally.

Warning: if you customized your witnet.toml file, you may need to make those changes again after this upgrade.

Setup 3: I’m running a node with systemd

These are the steps for upgrading if you are using Harsh Jain’s systemd integration (the witnet.sh installer and management tool):

  1. Make sure that you have the latest version of the witnet.sh file.
  2. Simply run the upgrade command, changing the number after -e with the number of nodes that you are operating:
./witnet.sh upgrade -s 1 -e 10

Remember that you can always double-check the Witnet version that you are running with this command:

./witnet.sh run -c "--version"

Voilà! Your nodes should be now up and running on the new Testnet 9.

If you want to make sure that everything is in order, please take a look at the new “What’s next?” guide in the Witnet protocol documentation.

Take into account that Testnet 9.2 has been scheduled for bootstrapping on Wednesday 19th August at 09:00 UTC. If you start your node before that date and time, it will start looking for peers and then it will remain idle until the bootstrapping. Then it will continue operating normally.

Warning: if you customized your witnet.toml file, you may need to make those changes again after this upgrade.

Setup 4: I’m running the binaries directly or compiling from source

If not using Docker, you just need to download the latest release or build it from the source code. The new release will detect the genesis block, sync to the tip of the chain and start mining as usual. Your master key is safe and your addresses will be the same :)

The only case in which additional steps are needed is if you modified a custom witnet.toml file. If that’s the case, please make sure you update all the consensus constants so they are the same as in this example. Also, you may need to make sure that your configuration file is located in the same directory as the witnet binary itself.

Regarding the genesis_block.json , please ensure that it is located in .witnet/config/genesis_block.json (relative to the witnet binary) . Remember that you can download this file from the release page.

You can always double check the Witnet version that you are running with this command:

witnet --version

If you want to make sure that everything is in order, please take a look at the new “What’s next?” guide in the Witnet protocol documentation.

Take into account that Testnet 9.2 has been scheduled for bootstrapping on Wednesday 19th August at 09:00 UTC. If you start your node before that date and time, it will start looking for peers and then it will remain idle until the bootstrapping. Then it will continue operating normally.

Warning: if you customized your witnet.toml file, you may need to make those changes again after this upgrade.

Setup 5: I’m not running a node yet

What are you waiting for? Get started in less than 5 minutes!

--

--

Adán Sánchez de Pedro
The Witnet Oracle Blog

@Witnet_io board member, CTO at @StamperyCo, founder of @LoquiIM. Microelectronics aficionado. I write code, give talks, make music, brew beer and laugh a lot.