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

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

What’s new?

Testnet 9.3 builds on the stability and security of the 9.1 and 9.2 networks — which have been up for 7 weeks in total — and adds the only big features that were missing before the launch of the Witnet Mainnet, due on October 14th 2020:

  • A way more secure consensus protocol. Witnet now uses a newly implemented consensus protocol that provides a better balance between security and finality. This is possible thanks to “superblocks”: special checkpoints in the blockchain in which a supermajority of the network (>⅔) is required to sign special messages that enable building strong consensus. In general terms, this aims to make the security of the protocol much more alike to that of Polkadot or Ethereum 2.0.
  • A more equitable algorithm for assigning tasks. Eligibility for resolving data requests (aka RepPoE) is not linear to reputation score anymore. The trapezoidal eligibility function that was recently announced will ensure a more even assignment of witnessing tasks among nodes with non-zero reputation, and will deter “reputation elites”.
  • Better QoS and cheaper requests. A new consensus rule has been enacted under which blocks building on top of a block that contains enough reveal transactions for a data request are required to contain the tally transaction that completes de request and publishes its result. If any tally is missing, the blocks will be deemed invalid. This is also great news for data requesters: as tallies are now compulsory, they no longer need to pay any fee for the tally.
  • Prove ownership of your node. This new release introduces a special CLI method named claim that will allow you to prove ownership of your nodes so as to claim the rewards of the Testnet Incentive Program (mainnet WIT tokens!). More instructions on how to complete the claiming process will be published in the coming days. Stay tuned!

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_node
docker rm witnet_node

2. Pull the latest version of the Docker image:

docker pull witnet/witnet-rust

3. Create a 0.9.3 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.3 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.3 has been scheduled for bootstrapping on Tuesday September 8 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.3 has been scheduled for bootstrapping on Wednesday September 8 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.3 has been scheduled for bootstrapping on Tuesday September 8 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.3 has been scheduled for bootstrapping on Tuesday September 8 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!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Adán Sánchez de Pedro

Adán Sánchez de Pedro

@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.