Operators
Operator Guides
Manual Node Upgrade

Manual Node Upgrade

This page explains how to upgrade nym-node or validator to the latest version in a few steps. If you prefer to automate the process, try to setup your flow with Nymvisor.

ℹ️

Our documentation often refer to syntax annotated in <> brackets. We use this expression for variables that are unique to each user (like path, local moniker, versions etcetra). Any syntax in <> brackets needs to be substituted with your correct name or version, without the <> brackets. If you are unsure, please check our table of essential parameters and variables (opens in a new tab).

Nym node Upgrade

Upgrading your node is a straight forward two-step process:

1. Updating the binary and ~/.nym/nym-nodes/<ID>/config/config.toml on your VPS

2. Updating the node information in the mixnet smart contract (opens in a new tab). This is the information that is present on the mixnet explorer (opens in a new tab).

Below are detailed steps how to do it:

1. Upgrading node binary and information in config file
  • Pause your node process.

    • If you run your node as systemd service (recommended), run: service nym-node stop
    • Otherwise open the terminal window with your node logs and press ctrl + c
  • Replace the existing nym-node binary with the newest binary (which you can either compile yourself or download.

  • Re-run with the same values as you use to run your nym-node. If you want keep changes in your config file, use flag -w (--write-changes), This will just update the config file, it will not overwrite existing keys.

    • If you automated your node with systemd (recommended) run:
systemctl daemon-reload
service nym-node start
  • If you want to monitor the logs of your nym-node.service, run:
journalctl -f -u nym-node.service
2. Updating your node information in the smart contract

Follow these steps to update the information about your nym-node which is publicly available from the nym-api (opens in a new tab) and information displayed on the Mixnet explorer (opens in a new tab).

You can either do this graphically via the Desktop Wallet, or the CLI.

Validator Upgrade

Upgrading from v0.31.1 -> v0.32.0 process is fairly simple. Grab the v0.32.0 release tarball from the nyxd releases page (opens in a new tab), and untar it. Inside are two files:

  • The new validator (nyxd) v0.32.0
  • The new wasmvm (it depends on your platform, but most common filename is libwasmvm.x86_64.so)

Wait for the upgrade height to be reached and the chain to halt awaiting upgrade, then:

  • Coopy libwasmvm.x86_64.so to the default LD_LIBRARY_PATH on your system (on Ubuntu 20.04 this is /lib/x86_64-linux-gnu/) replacing your existing file with the same name.
  • Swap in your new nyxd binary and restart.

You can also use something like Cosmovisor (opens in a new tab) - grab the relevant information from the current upgrade proposal here (opens in a new tab).

ℹ️

Cosmovisor will swap the nyxd binary, but you'll need to already have the libwasmvm.x86_64.so in place.

Common Reasons Validator Being Jailed

The most common reason for your validator being jailed is that it runs out of memory because of bloated syslogs.

Running the command df -H will return the size of the various partitions of your VPS.

If the /dev/sda partition is almost full, try pruning some of the .gz syslog archives and restart your validator process.