Migrate Validator Node

This page will explain how to migrate your validator node to another VPS.

1

Backup & Download important files from OLD VPS

This script will create a file named 'validator-files.tar' :

cd && tar -cvf validator-files.tar ./node/password.txt ./node/info.txt ./node/vitruveo.json ./node/data/keystore
2

Create a NEW VPS

Ensure that your VPS meets the minimum system requirements.

⚠️ Warning If a previous migration attempt was made on the NEW VPS, you must clean up any leftover directories before proceeding. Run the following command:

rm -rf ~/node ~/vitruveo-protocol
3

Setup Firewall to NEW VPS

sudo ufw enable && sudo ufw allow 22/tcp && sudo ufw allow 41414/tcp && sudo ufw allow 41414/udp

Some VPS providers also implement an external firewall. Ensure that ports 22 and 41414 are open as needed.

4

Install core elements to NEW VPS

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && wget https://go.dev/dl/go1.22.8.linux-amd64.tar.gz && sudo tar -xvzf go1.22.8.linux-amd64.tar.gz -C /usr/local/ && nano ~/.profile && rm go1.22.8.linux-amd64.tar.gz && sudo apt-get install gcc -y && sudo apt-get install make -y && sudo apt install git && git clone https://github.com/Vitruveo/vitruveo-protocol.git

When you get prompted with profile page, use down arrow key to navigate to the line AFTER LAST GREEN fi, copy and paste following line (copy the line bollow this information box):

To save the above, do CTRL-X press Y then press Enter

export PATH=$PATH:/usr/local/go/bin

If you see this screen, hit Enter

5

Upload & Install important files to NEW VPS

Next Step is to transfer and extract validator-files.tar on Your NEW VPS You have two options to send the validator-files.tar file to the home folder of your NEW VPS:

✅ Option 1: Upload from Your PC Using WinSCP

  1. Download WinSCP on your computer.

  2. Watch a short video tutorial if you're unfamiliar with it.

  3. Use WinSCP to connect to your NEW VPS and upload the file validator-files.tar to the /home/ubuntu/ directory.


✅ Option 2: Transfer Directly from Your OLD VPS Using scp

Run the following command on your OLD VPS (replace <destination_ip> with your NEW VPS IP address):

scp /home/ubuntu/validator-files.tar ubuntu@<destination_ip>:/home/ubuntu/

📦 After Either Option: Extract the File on Your NEW VPS

Connect into your NEW VPS, then run this command to extract the file:

cd && tar -xvf validator-files.tar

This will extract the contents to the appropriate location.

6

Install Geth and Download latest snapshot to NEW VPS

Restart:

sudo restart

Then execute (when prompted to override , type A + Enter):

cd && cd vitruveo-protocol/ && make geth && cd && cd node && ../vitruveo-protocol/build/bin/geth --datadir ./data/ init ./vitruveo.json && cd data && sudo apt install unzip && wget https://vitruveo-protocol.s3.amazonaws.com/Vitruveo_Checkpoint_20250607_0623.zip && unzip Vitruveo_Checkpoint_20250607_0623.zip && sudo rm Vitruveo_Checkpoint_20250607_0623.zip && cd && cd vitruveo-protocol && git pull && make geth
7

Sync Geth with latest block on NEW VPS

The node will sync only to the latest block without validating blocks once it’s up-to-date.

Execute this command to start the sync - this could take a while!!:

cd && cd node && ../vitruveo-protocol/build/bin/geth --networkid 1490 --datadir ./data/ --port 41414 --ipcdisable --syncmode full --http.api personal,admin,eth,net,web3,miner,txpool,debug,clique --gcmode=archive --bootnodes enode://1c198a99993be7e132b5538c282b576d572a925c60f671c0369b269e5255b5c28f90b7782bdc1edd9f6fbd70922d016186e963ab930cc260b2ece5ab143697cc@89.27.30.28:41414,enode://91f92a8ea117f8677a7cbfbd1ce8bef7e2e71535d1c2dc573fd4dc0d1645751aee76aac2b09149d936cd787bb2940c2fea9a1c912dea820be93e73cd0422f1f3@89.27.30.28:41415,enode://ab789091454e61f55606c79bd69c2b7e7da7c9193a72ccceb56863f10d814fdb9bd7ba5b41cc990b89a1f0a64fa20bea1e714048fb48ac04d730538ec19d45e0@51.21.4.232:41414,enode://4053ddbfb7829530131e1f9d7106e04c54e0d8dac7b8303bdaca8cdba31b4c173336403d9c9a6f2934f823a4e47900bb8d2d993c3589498a0e4a15ae0e533375@45.159.228.157:41414,enode://e5617ab68f7ee5696599a3750c863f3fcb3bbeb56294f67cc31a9c73e1da1a2f2ce07888fdf30db6b977f6867f1938c38e5aacd23f743377f4b9aa5c0fab1365@198.7.123.209:41414,enode://c0a367010fee15b35b9d437fab7ac2cb89ca2ead427bb54aaa0f8b1bec0a43b989a3215d2a6635ab30a5fbde2cd8948c9fc3760ab27204e5f965711af8c68b9d@38.242.138.105:41414,enode://808acfb8764b9c3926949909550bd3f723e7d70c0f511d4847e042551846a5b31be59f88c79b13937f31e0cb6873c456e68e28e9adfcd47a6704a984e6166364@82.18.212.184:41414,enode://25ef8301d9dfe4fb576828d9cfb3313db4490131e2b07b5aeebd44edf3b04c9fd7d0b3df80e8ff54876d3d2a8c3072a58bccbe98af23597f434349d5c1bf95dd@62.146.169.98:41414,enode://5efee8b4aa3b8b55880e17014764220b982ab584b088927b65f3c5823a92f3f8c364f290d4f7c359daf9326a83c76f4cfee6279ee271b883cdddffeae0549e69@194.60.87.206:41414,enode://ad53af3d3f10c44c8030fde9ba4fd4aee150c67d0779224f42b911a3dae003b245fafe7550eea2f43226b5cfd848a9cb559886854645e2d6f983df7d053e948d@108.52.36.150:41414,enode://1ca983536bd4a909e4cd8db63ce84b9178c7b74b7e7c455edb3a8e9c069da19fa0b000f2cb9fd9214c8c4c2007c5a80e9375e45b5df98ebf98c6db2f14c30a34@108.52.36.150:41414 --http --http.port 8545 --http.addr 127.0.0.1 --maxpeers 500

When your node is in sync with the rest of the network, hit CTRL-C.

8

Stop geth on your OLD VPS

Execute this command to stop geth:

pkill geth
9

Start geth on your NEW VPS

Run the nohop command from the node folder. Instructions are available in the Validator guides and scripts Discord channel to start your node.

10

Monitor geth on your NEW VPS

cd && cd node && tail -f nohup.out

Make sure your node is syncing with the network. Block number should increase. Check if you are validating blocks using Explorer.

11

Decommissioning the OLD VPS

Once your NEW VPS has been running smoothly for a while without any missed validations, you can safely decommission your OLD VPS.

Last updated