Skip to main content
This guide provides instructions for migrating a SKALE node and SGXWallet to a new server following the recommended migration process.

Prerequisites

Before starting the migration, ensure you have:
  • Access to both the current and new servers
  • Administrative privileges on both systems
  • Secure network connection between servers
Make sure backup is created before starting migration. You can use the skale node backup . command to create a backup of your current node and save sgx_data folder for SGX wallet as well as sgxwallet_backup_key.txt

Migration Steps

Migrate SGX

1

Set up the new SGX server

Prepare a new server with:
  • Ubuntu 22.04 LTS (Jammy Jellyfish)
  • SGX-enabled Intel processor
  • 8 physical cores
  • 16 GB RAM
  • 200 GB disk mounted as /
  • Swap size equal to half of the RAM size
2

Install the packages required for SGX

After installing Docker, make sure that the live-restore option is enabled in /etc/docker/daemon.json. See the Docker documentation for more information.
3

Verify that the processor supports Intel SGX

Expected output:
4

Disable automatic updates

Only update the SGXWallet server when critical security fixes are available. SGXWallet uses low-level technology, and kernel updates may break the system. SGX is currently tested on 5.15* kernels, so avoid minor kernel updates as well.Prevent apt update from updating the kernel:
If you configured unattended upgrades, add the following lines to /etc/apt/apt.conf.d/50unattended-upgrades to prevent automatic kernel updates:
5

Configure the firewall

Configure the firewall between the SGXWallet and node servers.
6

Download the SGXWallet source code

Clone the SGXWallet repository:
7

Enable SGX on the new server

The SGXWallet repository includes the sgx_enable utility. Run it to enable SGX:
Install the SGX driver:
Reboot your machine after installing the driver.
Check the driver installation by confirming that the isgx device is available:
If you don’t see the isgx device, follow the SGX driver troubleshooting guide.
8

Copy the SGXWallet data to the new server

Securely transfer the SGXWallet data from the old server:
After uploading the backup to the new server, make sure that sgxwallet_backup_key.txt is stored in sgx_data.
9

Set the image version and backup flag

Edit sgxwallet/run_sgx/docker-compose.yml:
  • Change the image version to skalenetwork/sgxwallet:1.9.0-stable.4.
  • Add -b to the existing command section. Do not replace the entire command.
10

Start SGXWallet

Migrate Node

1

Set up the new node server

Prepare a new server with:
  • Ubuntu 22.04 LTS (Jammy Jellyfish)
  • 8 physical cores
  • 32 GB RAM
  • 100 GB disk mounted as /
  • 2 TB additional disk (not mounted)
2

Install the packages required for the node

After installing Docker, make sure that the live-restore option is enabled in /etc/docker/daemon.json. See the Docker documentation for more information.
3

Disable automatic updates

The SKALE node is currently tested on 5.15* kernels, so avoid minor kernel updates as well.Prevent apt update from updating the kernel:
If you configured unattended upgrades, add the following lines to /etc/apt/apt.conf.d/50unattended-upgrades to prevent automatic kernel updates:
4

Back up the node on the old server

This creates a backup tarball, such as skale-node-backup-YYYY-MM-DD-HHMMSS.tar.gz.
5

Copy the backup and configuration to the new server

6

Download node-cli

7

Restore the node from the backup

Navigate to the directory that contains the backup tarball, then restore the node:
Keep the old server running until you’ve fully verified the new setup is working correctly. This allows for quick rollback if needed.