Our Notes on Moving Servers

For people looking to move providers and re-create a validator, you'll need to import a few files and be sure to shut off the old server long before recreating a server to avoid double signing slashing (5% from your pool). The slashing fee for Missing Blocks is far less and easier to explain than getting slashed for 5%.

Backup Files

You should already have a backup copy of the following files & folders:

~/tmp.gen.keypair
~/staker_memo
/data/findora/mainnet/node.mnemonic
/data/findora/mainnet/mainnet_node.key
/data/findora/mainnet/tendermint/config/

Transfer App

We suggest using a transfer application (termius) or scp (A guide for using scp) to copy these files to your local desktop. Check out the Admin Tools Page for a refresher.

How to Migrate Servers

The best method to avoid double signing is to use our fast installation guide to setup a totally separate, brand new temporary validator, new temporary wallet and new temporary private key doing a normal installation of Findora. Load your server up to the point of waiting for catching up to be true before proceeding to upgrading.

Once you're at that point with a temporary new server online, the guides below cover the scripted method to migrate at this point or the original manual method.

Scripted Migration

Here's our new script to help you migrate with ease.

On your new server

Assuming you did the standard installation and have findora synced up with the blockchain on a temporary wallet you may proceed.

Log into your new server and create the folders we will use for migration in your home directory. Create a folder named migrate with a config folder inside by running the following commands:

cd ~/
mkdir -p ~/migrate/config

Use a transfer app to add your old tmp.gen.keypair, node.mnemonic files into the ~/migrate folder. Add your old config folder into the ~/migrate/config folder.

At this point you can shut down your old server and take it offline to avoid double signing.

Once your old server is offline - On the new server, download and run our migration script to convert your server over to your old keys and to start syncing again run our new script by running the following code:

cd ~/ && wget -O migrate_mainnet.sh https://raw.githubusercontent.com/easy-node-one/findora-validator-scripts/main/easy_migrate_mainnet.sh && bash -x migrate_mainnet.sh

We will stop the running server and swap over to the old server files using the files uploaded into ~/migrate & ~/migrate/config now. This should not take very long and you will see the statistics run when ready.

You are all migrated and online at this point with your new server with old info!

Manual Migration

Here's our steps to migrating to a new server running a temporary wallet/key to start running as your old validator information.

On your new server

Once you are fully syncronized on the new server you can now stop your new server's container and then begin replacing your key files. You will need to remove your current docker container with the temporary keys to build a container using the key you are migrating.

To stop and remove the current temporary validator container run the following code:

docker stop findorad && docker rm findorad && rm -rf /data/findora/mainnet/tendermint/config/addrbook.json

Verify your container is shut off by running docker ps and making sure that it no longer shows your findorad container as online.

Once you verify the container has stopped, Update all of the following files with the same files on your old system using a transfer app:

  • /data/findora/mainnet/node.mnemonic
  • /data/findora/mainnet/mainnet_node.key

Update all the files in the following folder with the contents of the same folder on your old system:

  • /data/findora/mainnet/tendermint/config

Reconnect fn to the new files by running the following commands:

fn setup -S https://prod-mainnet.prod.findora.org
fn setup -O /data/findora/mainnet/node.mnemonic
fn setup -K /data/findora/mainnet/tendermint/config/priv_validator_key.json

Re-run tendermint to reconnect to the updated files by running the following command:

docker run --rm -v ${ROOT_DIR}/tendermint:/root/.tendermint ${FINDORAD_IMG} init --${NAMESPACE} || exit 1

Reset Permissions by running the following command (update servicefindora to your username if it's different):

sudo chown -R servicefindora:servicefindora /data/findora

Verify wallet information is shown in fn show with your proper wallet address showing. Verify it matches key on your old validator!

DO NOT ATTEMPT TO START THE NEW SERVER YET OR YOU MAY DOUBLE SIGN

On your old server

Now is the time to stop your old server to avoid having double singing.

Stop Docker To Stop Signing on your old server by running the following code:

docker stop findorad && docker rm findorad && rm -rf /data/findora/mainnet/tendermint/config/addrbook.json

I also shutdown the old server at this point to make sure there's 0 chance of double signing. You should be ok without shutting down but if you'd like to be safe run:

sudo init 0

AT THIS POINT THERE IS NO FURTHER RISK OF DOUBLE SINGING BUT YOU ARE MISSING BLOCKS NOW

From here on down the guide the following tasks are time dependent as you'll begin to miss signatures at this point.

Back on your new server

  • Restart your Findorad Docker Container using the update_image_version script:
wget https://raw.githubusercontent.com/easy-node-one/findora-validator-scripts/main/easy_update_mainnet.sh -O easy_update_mainnet.sh && bash -x easy_update_mainnet.sh

Verify your server catches up and is now signing blocks.