# How to Replace Server

This section describes how miners can replace servers.

# Preparations

Before replacing the server, you need to complete the following preparations:

  1. Configure a new server

  2. In the newly purchased server Install TOPIO

If you have configured a new server and installed TOPIO, you can skip the preparations and start to Replace Server directly .

# 1. Configure a new server

Set up a server to run TOPIO. It is recommended that you rent a cloud server that can be accessed remotely from your personal computer via SSH terminals (such as Xshell).

Operating System Requirement

Operating System Version
Linux CentOS 7, 64-bit, Kernel Version 3.10 , and above (CentOS 8 included)
Ubuntu 16, 64-bit, Kernel Version 4.4, and above

Server Minimum Configuration

Different types of miners have different requirements for server configuration. Please refer to the following table for the minimum configuration.

Miner Type Minimum Hardware Configuration
edge 1CPU/1GB mem 40GB SSD 100Mb/s
validator 2CPU/2GB mem 60GB SSD 100Mb/s
advance 2CPU/4GB mem 100GB SSD 200Mb/s
archive 2CPU/4GB mem 2TB SSD 200Mb/s
Full Node 2CPU/4GB mem 100GB SSD 200Mb/s

Inbound Rules

Please make sure that the ports below are opened to the inbound traffic of the public network, otherwise the miner will not be able to join the TOP Network.

  • TCP: 9000, 19081, 19082, 19085
  • UDP: 9000

# 2. Install TOPIO

# Install "wget" Download Tool

Connect to the server and run the following command on the SSH terminal to install the "wget" download tool.

The CentOS and Ubuntu installation commands are as follows, use the corresponding commands according to your the operating system of your server.

  • CentOS

    sudo yum install wget -y
    
  • Ubuntu

    sudo apt install wget -y
    

# Download and Install TOPIO

Run the following command to download and install TOPIO:

wget https://github.com/telosprotocol/TOP-chain/releases/download/v1.2.4/topio-1.2.4-release.tar.gz -O topio-1.2.4-release.tar.gz && tar zxvf topio-1.2.4-release.tar.gz && cd topio-1.2.4-release && sudo sh install.sh

TOPIO is installed when the following information is printed:

install topio done
now run command to check md5: topio -v
now run command for help info: topio -h

Now you need to verify whether the installation was successful.

Verify installation result

Run topio -v on the SSH terminal, if the following content is printed, it means the TOPIO installation is successful:

topio version: 1.2.4
git commit info: b8202cae
git submodule: xtopcom/xbase:12eecba|xtopcom/xdepends:415349d|xtopcom/xvm:384ac1b
build date: Aug 20 2021 09:14:40
MD5:ce0a897392d59b0f2e791dc75e0753df

# Replace Server

When the preparations are finished, you can start to replace the server.

# 1. Export the private key from the old server

  1. In the TOPIO of the old server, run topio wallet exportAccount, then the private key and the keystore file content will be printed.

    Sample:

    Export successfully.
    
    Keystore file: /root/topnetwork/keystore/T80000968927100f3cb7b23e8d477298311648978d8613
    Account Address: T80000968927100f3cb7b23e8d477298311648978d8613
    Private-Key: b0032f8057051b611a7c0ea373da4d7a6764351030ed497e6134fd9e11775b19
    
    {
       "account_address" : "T80000968927100f3cb7b23e8d477298311648978d8613",
       "address" : "968927100f3cb7b23e8d477298311648978d8613",
       "crypto" : {
          "cipher" : "aes-128-ctr",
          "cipherparams" : {
             "iv" : "e40a554c807b913c6e882e933ee6c103"
          },
          "ciphertext" : "762381ac2219511c647d27424761e81fecc14170eeff6e20412d6c9311149060",
          "kdf" : "scrypt",
          "kdfparams" : {
             "dklen" : 32,
             "n" : 262144,
             "p" : 1,
             "r" : 8,
             "salt" : "69c473d9a1ae16ad7cbab057101ccb9632d4109bf7f44e7ff2eba59e269f9932"
          },
          "mac" : "7d3c31b6aa3f43885682259e6e632b44799700cc7030bdbc1dddb2f587066dac"
       },
       "hint" : "",
       "id" : "b2951865-c391-9d98-ff85-83e149f88990",
       "key_type" : "owner",
       "public_key" : "BK2CfxnSP0cL9/dbi6b3krWUlQP1jP4EIHu5Y5c2vMBNLMYMOE8K3mqOubDPQXBXc/D4ydtR0LDyWUEyxHO/ZZU=",
       "version" : 3
    }
    
  2. Copy the printed wallet private key and keystore file content to the local for storage.

    In which:

    • Keystore file is the storage path of the keystore file in the old server.
    • Account Address is the wallet address.
    • Private-Key is your wallet private key.
    • The content in curly braces { } is the content of the keystore file.

After properly storing the wallet private key and keystore file content locally, you can go to the new server to import.

# 2. Import the private key in the new server

  1. Run the command to import private key:

    In the TOPIO of the new server, run topio wallet importAccount to import the private key.

    If you want to set a password when importing the private key, run topio wallet importAccount -p instead.

  2. (Optional) Set the password:

    If you choose to set a password when importing the private key, then input and set the password (input twice) when the following content appears.

    Please set a password for new worker keystore file. The password must consist of Numbers and Letters, 8 to 16 characters.
    
  3. Input the private key:

    When the following content appears, enter the private key you exported from the old server. Pasting is supported.

    Please input private key.
    
  4. Press Enter, the following content will be printed:

    Successfully import an account.
    

    The account address and public key will also be printed. At this time, the account has been successfully imported to the new server.

# 3. Start node

After the account is successfully imported, the node process needs to be started to start mining.

In TOPIO, run the following command to start node process:

topio node startNode

If the following information is returned, the node process is started successfully.

Start node successfully.

Run the following command to query whether the node has successfully joined the network.

topio node isJoined
  • If it returns "YES", the node has successfully joined the network. It is now in the node candidate pool, waiting for election.
  • If it returns "No", the node has failed to join the network, possibly due to network failure.