# 矿工更换服务器教程

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

# 准备工作

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

  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:19081、19082、19085、8080
  • UDP:9000、9001

# 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.14.0/topio-1.14.0-release.tar.gz -O topio-1.14.0-release.tar.gz && tar zxvf topio-1.14.0-release.tar.gz && cd topio-1.14.0-release && sudo bash install.sh && source /etc/profile && bash set_topio.sh && source ~/.bashrc && 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.14.0
git commit info: d42d833c2
git submodule: xbase:4b3b8a4|xdepends/GSL:8e6d4e2|xdepends/boringssl:10fef972e|xdepends/googletest:ec44c6c1|xdepends/gperftools:bf8b714|xdepends/jemalloc:46c0af68|xdepends/libevent:5df3037d|xdepends/xquic:53a8708|
build date: Nov 17 2023 14:35:36
build options: release
MD5:47491e1e1e7d65b5335699b0ffda1121

# 更换服务器

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

# 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 导入私钥。

  2. 设置密码

    在导入私钥时需要设置密码(需输入两次)。

    Please set a password for the account keystore file.
    
  3. 输入私钥

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

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

    Successfully import an account.
    

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

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

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

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

如果您是高级矿工,则必须下载数据库。

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

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

download database ok.

md5sum check ok.

# 4. 启动节点

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

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

topio node startNode

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

Start node successfully.

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

topio node isJoined
  • 若返回 topio not ready,说明 TOPIO 暂未准备好,请等待一分钟后再次运行命令重试。
  • 若返回 YES,则节点成功入网,进入节点候选池,等待选举。
  • 若返回 No,则节点入网失败,可能因为网络故障,网络抖动。