# 矿工更换服务器教程

本文档介绍矿工如何更换服务器。

# 准备工作

在更换服务器前,您需要做以下准备工作:

  1. 配置新服务器

  2. 在新采购的服务器中 安装 TOPIO

如果您已配置好新的服务器并安装完成 TOPIO,可跳过准备工作,直接开始 更换服务器

# 1. 配置新服务器

配置一台新的服务器用于运行 TOPIO。建议您租用云服务器,然后在您个人计算机上通过 SSH 终端远程访问。

操作系统要求

操作系统 版本
Linux CentOS 7,64 位,内核 3.10 及以上版本(含 CentOS 8)
Ubuntu 16.04,64 位,内核 4.4 及以上版本

服务器最低配置

不同的类型矿工对服务器的配置要求不同,最低配置请参见下表。

矿工类型 最低硬件配置
边缘矿工(edge) 1CPU/1GB mem 40GB SSD 100Mb/s
验证矿工(validator) 2CPU/2GB mem 60GB SSD 100Mb/s
高级矿工(advance) 2CPU/4GB mem 100GB SSD 200Mb/s

配置流入端口

请对以下端口流入公网放行,否则节点将无法加入 TOP Network 网络:

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

# 2. 安装 TOPIO

# 安装 wget 下载工具

连接新服务器,在 SSH 终端页面执行以下命令安装 wget 下载工具。

CentOS 和 Ubuntu 安装命令分别如下,根据您的服务器操作系统使用相应的命令。

  • CentOS

    sudo yum install wget -y
    
  • Ubuntu

    sudo apt install wget -y
    

# 下载并安装 TOPIO

执行以下命令下载并安装 TOPIO。

root 用户可直接执行以下命令,而非 root 用户需要管理员权限才可执行,您可 点击此处 查看如何对 非 root 用户添加管理员权限。

wget https://github.com/telosprotocol/TOP-chain/releases/download/v1.2.7/topio-1.2.7-release.tar.gz -O topio-1.2.7-release.tar.gz && tar zxvf topio-1.2.7-release.tar.gz && cd topio-1.2.7-release && sudo bash install.sh && source /etc/profile && ulimit -n 65535

当安装页面打印以下内容时,安装完毕:

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

此时需验证安装是否成功。

验证安装结果

在命令行中执行 topio -v,如果输出以下信息,则证明安装成功:

topio version: 1.2.7
git commit info: 7234bf5
git submodule: xtopcom/xbase:e8ead28|xtopcom/xdepends:415349d|xtopcom/xvm:3cb09a9
build date: Jan 10 2022 20:04:09
build options: release
MD5:a52ad3c8970f779d6a6152ab9d6c57d2

# 更换服务器

准备工作完成后,即可开始更换服务器。

# 1. 在旧服务器中导出私钥

  1. 在旧服务器的 TOPIO 中运行 topio wallet exportAccount,随后会打印钱包私钥和 keystore 文件内容。

    样例如下:

    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. 将打印的钱包私钥和 keystore 文件内容复制到本地进行保存。

    其中:

    • Keystore file 为 keystore 文件在旧服务器中的存储路径。
    • Account Address 为钱包地址。
    • Private-Key 为您的钱包私钥。
    • 花括号 { } 中的内容为 keystore 文件内容。

在本地妥善保存钱包私钥和 keystore 文件内容后,即可前往新服务器进行导入。

# 2. 在新服务器中导入私钥

  1. 运行导入私钥命令

    在新服务器的 TOPIO 中运行 topio wallet importAccount 导入私钥。

    如果您希望在导入私钥时设置密码,则运行 topio wallet importAccount -p

  2. (可选)设置密码

    如果您在导入私钥时选择了设置密码,那么当页面中显示如下内容时可设置密码(需输入两次)。

    Please set a password for new worker keystore file. The password must consist of Numbers and Letters, 8 to 16 characters.
    
  3. 输入私钥

    当页面中显示如下内容时,输入您从旧服务器中导出的私钥(Private-Key),支持粘贴。

    Please input private key.
    
  4. 按 Enter 运行后,页面打印如下内容:

    Successfully import an account.
    

    并会打印地址以及公钥,此时账户已成功导入至新服务器中。

# 3. 下载数据库(推荐)

对于新服务器,推荐您在启动节点前先下载数据库,这样可以减少数据同步时间,尽早开始产生收益。

在 SSH 终端中运行以下命令:

topio db download https://top-mainnet-space.nyc3.digitaloceanspaces.com/db_20211231_v3_1ab9d50b07e651544a607161e6485955.tar.gz

在返回信息中,如果下载进度为 100%,且包含以下内容,则证明数据库下载成功:

download database ok.

md5sum check ok.

# 4. 启动节点

成功导入账户后,需要启动节点进程,即可重新开始挖矿。

在 TOPIO 中执行以下命令以启动节点进程:

topio node startNode

若返回以下信息,则成功启动节点进程。

Start node successfully.

执行以下命令查询节点是否成功加入网络。

topio node isJoined
  • 若返回"YES",则节点成功入网,进入节点候选池,等待选举。

  • 若返回"No",则节点入网失败,可能因为网络故障,网络抖动。