In some cases, you might want to move your running validator from one server to another. For example, this might be the case if you find a cheaper alternative or if your host does not meet the requirements.

In this case, what you need to do is following a two-step procedure:

  1. Set and fully sync up a full node

  2. Migrate data from old node to new node

1. Setup new full node

To avoid missing the least amount of blocks it is recommended that you setup a new server and fully sync up a full node first. To do this, you can read the guide here.

Proceed to step 2 only if your new node has caught up.

realio-networkd status 2>&1 | jq "{catching_up: .SyncInfo.catching_up}"

2. Migrate Data

Stopping both the validator and the newly synced full node

In order to avoid as much side affects as possible we will be stopping both nodes.

systemctl stop realio-networkd

Backup the following data in the validator node

In order to properly migrate our validator node to another server you will need to backup the following data:

  1. The validator private key. This is located inside the ~/.realio-network/config/priv_validator_key.json file.

  2. The validator consensus state. This is located inside the ~/.realio-network/data/priv_validator_state.json file.

  3. If you keep your keys on the node make sure you have the secret recovery phrase (mnemonic phrase) associated with your key(s).

DO NOT DELETE YOUR OLD NODE YET We highly suggest you wait to delete your old node instance until the new node is running properly. This will allow you to recover any information if you forgot to do so.

Migrating data to the new full node

With both nodes stopped you will be copying the backed up data in to the newly synced full node.

WARNING At this point, both nodes should not be running. This is to prevent any possible side effects such as double signing.

Transfer the following backed up files from the old node to the new node:

  • ~/.realio-network/config/priv_validator_key.json

  • ~/.realio-network/data/priv_validator_state.json

Startup the new validator node

Once you have moved your priv_validator_key.json and priv_validator_state to the newly synced full node, it will be recognized as the same validator node.

WARNING The priv_validator_key should only be online from a single instance. A good practice would be to remove or rename the priv_validator_key.json in the old node so that even if you accidentally start running both nodes, the validator key would only be online for one of them.

With the old validator node stopped, start up the new node:

sudo systemctl start realio-networkd


We suggest you to wait before deleting the old node. Instead of waiting only to see the blocks syncing, make sure your new node is actually signing blocks as your validator. You will see this by looking at your validator uptime on our explorer. If everything is working properly, the uptime should slowly increase

(Optional) Recover your key

If you originally had your key in the previous server you can easily add it back using the secret recovery phrase (mnemonic phrase) you had backed up.

realio-networkd keys add <key_name> --recover

Last updated