Good morning all,

Many people have asked for an updated guide to migrate their under performing VPS instance to a new provider or instance with the same provider.

I will outline the basic steps that can be performed to move your node to a new provider or higher spec instance.

Step 1: Preparation the new instance

I recommend preparing the new instance using the official HoriZEN guide available here up to and including part 3.

Use the FQDN (Fully Qualified Domain Name) you previously used on your old node in section 1 part 3 for the new instance.

Step 2: Bootstrap your new node from your old node

At this point if you previously had a node that was synced, you would would not want to wait for it to sync again, I know I would not.

Please stop your tracker using
sudo systemctl stop zentracker

You can either follow the scp method or rsync method

But please do not start either of the zend daemons (step 3 and 4 of those guides)

Step 3: Copy across the old wallet.dat

In this step we are going to grab the old wallet.dat from your old node and put it on the new instance.

You can either use the SCP method or RSYNC method

SCP method

Executed from the old node

  • Replace <D_USER> with the non-root user of the destination node, replace <D_IP_Address> with the IP address of the destination node, remove <>
  • When prompted, enter the non-root user password for the destination node to execute the transfer
    scp -r ~/.zen/wallet.dat <D_USER>@<D_IP_Address>:~/.zen

RSYNC method

Executed from the old node

  • Replace <D_USER> with the non-root user of the destination node, replace <D_IP_Address> with the IP address of the destination node, remove <>
  • When prompted, enter the non-root user password for the destination node to execute the transfer
    rsync -rv ~/.zen/wallet.dat -e ssh <D_USER>@<D_IP_Address>:~/.zen/

Once you have completed the copy of the wallet.dat to the new instance, run
zend on the new instance

Step 4: Back to the official guide

Then continue on with part 4 of the official guide found here

Step 5: Update DNS records

At this point you will want to update your DNS records to reflect the new IP address/es of your instance so you can issue the SSL cert again for your FQDN.

Step 6: Back to the official guide for 6.

We'll now head back to the official guide and perform the steps in part 6

We will come back to part 5 of the official guide after we have successfully synced the required files to the new node.

Step 7: Ignore part 7 of the official guide.

Because you copied across the wallet.dat you do no need to perform the commands in this part.

Step 8: Install the node tracker software.

The next part we are going to perform the steps in part 8, available here but we need to take a pause at step 7 of the official guide and then continue below.

Lets create the config directory in the node tracker directory so we can copy across the config.json

Please run cd ~/nodetracker && mkdir config

Now we can copy across the nodetracker configuration. You can either use SCP or RSYNC.

Copy old nodetracker configuration.

SCP method

Executed from the old node

  • Replace <D_USER> with the non-root user of the destination node, replace <D_FQDN> with the IP address of the destination node, remove <>
  • When prompted, enter the non-root user password for the destination node to execute the transfer
    scp -r ~/nodetracker/config/config.json <D_USER>@<D_IP_Address>:~/nodetracker/config

RSYNC method

Executed from the old node

  • Replace <D_USER> with the non-root user of the destination node, replace <D_FQDN> with the IP address of the destination node, remove <>
  • When prompted, enter the non-root user password for the destination node to execute the transfer
    rsync -rv ~/nodetracker/config/config.json -e ssh <D_USER>@<D_IP_Address>:~/nodetracker/config

Once you have done that, on the new node please run cd ~/nodetracker && node app.js

If everything has been performed successfully you should see in the tracker log that the IP address for your nodeid changed and you are back up an running.

Step 9: Configuring the services and continuing with the official guide

Once you have successfully stood up the nodetracker and you can see that your node is up and running, you can jump back to the official guide from part 9, available here

Step 10: Securing SSH for the new instance

Once you have finalised the configuration of the node you will need to secure the SSH daemon on the new node.

We need to jump back to step 5 of the offical guide to secure the SSH on the new node. Step 5 is available here

That is it. Hopefully you should be able to get the new instance up and running, but should you have any questionss, post them below or find me in the node_tech_support channel on discord.