Skip to content

Crust 激励测试网多节点手册

BOBOKaa edited this page Nov 25, 2020 · 7 revisions

1. 概述

在本教程中,我们将介绍如何成为一个 Validator/Candidate(验证者/候选人)和 Merchant(存储供应商),从而在 Crust 网络中获得相应的收益。具体包括硬件设备的推荐,操作系统的设定,各项应用的启动,以及 APPs 的使用等,让你成功加入 Crust激励测试网络。本教程需要一定的 Linux 基础,请一定按照教程步骤,不要跳过任何一步。如有疑惑请联系 Crust 官方。

2. 硬件环境

在多点形态下,你的机器将被分为两类,分别是服务节点和存储节点,采用1+N的拓扑结构,及一个服务节点对应N个存储节点:

  • 服务节点:负责运行链模块并参与出块,类似波卡生态的 Kusama 网络或者其他项目,我们强烈推荐出块节点使用固定的公网 IP,否则会因为出块不稳定等情况带来损失。如有需要,该类节点也可以配置在云计算机中。
  • 存储节点:负责运行链模块(full节点,不参与出块)以及存储量模块, 这类节点需要拥有SGX的环境。该类节点可以横向扩展,在激励测试网阶段,一个链账户可以支持最多10个存储节点。

多节点形态拓扑图如下:

详细配置要求和推荐,请参考官方硬件spec

3 . 账户

请参考Crust账户手册

4. 服务节点配置与启动

4.1 软件环境

4.1.1 下载Crust node安装包

a. 下载

wget https://github.com/crustio/crust-node/archive/v0.7.0.tar.gz

b. 解压

tar -xvf v0.7.0.tar.gz

c. 进入安装目录

cd crust-node-0.7.0

4.1.2 安装Crust服务

安装前的注意点:

1,程序将会被安装在/opt/crust路径下,请确保该路径有大于100G的固态硬盘空间;
2,如果之前运行过 Crust 的非激励测试链,请把程序关闭并将数据清除后再执行安装,具体请参考8.2小节;
3,安装过程中涉及到下载相关依赖和 docker images 的操作,会比较耗时,并有可能因为网络的问题失败,如发生,请重复执行该操作直到安装完成;

安装命令:

sudo ./install.sh --registry cn

4.2. 节点设置

4.2.1 开始编辑

执行以下命令编辑节点配置文件

sudo vim /opt/crust/crust-node/config.yaml

4.2.2 配置节点运行方式

将“node.sworker”修改为“disable”

4.2.3 修改节点名

修改 config.yaml 中 “name” 值,该值代表节点在 Crust 链中的名字,可随意命名(不能有空格):

4.3 节点启动

4.3.1 准备

首先需要,确保以下接口是未被占用:30888 19944 19933 然后开放链的P2P端口,命令如下:

sudo ufw allow 30888

4.3.2 启动

启动命令如下:

sudo crust start 

4.3.3 检查运行状态

执行下面语句查看crust运行状态:

sudo crust status

如下上面链服务运行表示启动成功:

5. 存储节点配置与启动

5.1 软件环境

5.1.1 BIOS 设置

该小结只针对存储节点,机器的 SGX(Software Guard Extensions) 模块的默认关闭的,需要在机器的 BIOS 设置。首先将 SGX 开关设置为 enable,同时把 Secure Boot 关闭(部分主板没有)。如果 SGX 只支持 software enabled 方式,参考这个链接https://github.com/intel/sgx-software-enable

5.1.2 下载Crust node安装包

a. 下载

wget https://github.com/crustio/crust-node/archive/v0.7.0.tar.gz

b. 解压

tar -xvf v0.7.0.tar.gz

c. 进入安装目录

cd crust-node-0.7.0

5.1.3 安装Crust服务

安装前的注意点:

  • 程序将会被安装在/opt/crust路径下,请确保该路径有大于100G的固态硬盘空间
  • 如果之前运行过 Crust 的非激励测试链,请把程序关闭并将数据清除后再执行安装,具体请参考7.2小节
  • 安装过程中涉及到下载相关依赖和 docker images 的操作,会比较耗时,并有可能因为网络的问题失败,如发生,请重复执行该操作直到安装完成

安装命令:

sudo ./install.sh --registry cn

5.2 节点设置

5.2.1 开始编辑

在执行以下命令编辑节点配置文件

sudo vim /opt/crust/crust-node/config.yaml

5.2.2 配置账户

多节点的方式,支持一个服务节点对应最多10个存储节点的拓扑,请为这些存储节点配置相同的账户身份。修改 config.yaml 中“backup”和“password”的值 ,其中 “backup”为 controller 账户创建时备份的文件内容,“password” 为 controller 账户密码,格式如下:

5.2.3 修改节点名

修改 config.yaml 中 “name” 值,该值代表节点在 Crust 链中的名字,可随意命名(不能有空格):

5.2.4 配置存储

通过修改 “srd_paths” 和 “srd_init_capacity” 来配置节点存储的路径和容量。存储容量将作为预留空间上报到 Crust 网络,这个将决定你链上可以被别人担保的上限,也决定你可以接单的量,单节点最多可以配置200TB的预留空间。

举个例子,假设你的两个硬盘A, B的挂载路径分别为 /harddisk1 与 /harddisk2,他们的剩余空间分别为1500G与600G。你可以如下配置参数,将“srd_paths” 设置为 /harddisk1 与 /harddisk2(需为绝对路径) ,将 “srd_init_capacity” 设置为2000G。这样配置启动后,你上报的存储预留容量会为2000G。具体配置如下:

5.3 节点启动

5.3.1 准备

首先需要,确保以下接口是未被占用:30888 19944 19933 (crust chain所需),56666 (crust API所需),12222 (crust sWorker所需)。然后开放链的P2P端口,命令如下:

sudo ufw allow 30888

5.3.2 启动

启动命令如下:

sudo crust start 

5.3.3 检查运行状态

执行下面语句查看crust运行状态:

sudo crust status

如下上面三个服务运行表示启动成功:

5.3.4 监控

通过以下监控命令进行监控,ctrl-c结束监控:

sudo crust logs sworker

监控日志如下:

  • 表示区块正在同步中,该过程比较用时
  • 成功在链上注册身份
  • 正在进行存储余量统计操作,改过程会逐步进行
  • 表示工作量上报成功,该过程比较用时

6. 参与GPOS

6.1 获取session key

进入服务节点执行以下命令:

sudo crust tools rotate-keys

结果返回的就是该节点的session key, 请复制,下小结将会使用,如下所示:

6.2 设置session key

进入CRUST APPs,点击导航栏的“网络”下的“质押”。选中“账户操作”,选择“更改session密钥”,填入7.1节得到的sessionkey,右侧点击“设置setKeys”

6.3 成为验证人

进入 Crust APPs,执行 “成为验证人/更改验证人偏好” 操作。

等到下个 era,能够查询到在 “质押概览” 或在 “等待中” 列表中,代表操作成功。

7. 重启与卸载

7.1 重启

如果机器需要重新启动,或者因为任何情况需要重启 Crust 节点相关程序,请参考下列步骤进行。请注意:本小节仅包括 Crust 节点相关程序的启动步骤。请在保证软硬件系统正常的情况下进行下列步骤

sudo crust reload

7.2 数据清除与卸载

如果你运行过老版本的测试链或者想重新部署,默认情况下需要清除三处数据, Crust的基础数据会被默认放在/opt/crust/data中,请清除其中的文件 占位数据存储在你之前配置的“srd_paths”中,请清除其中的数据 Node数据存储在/opt/crust/crust-node中,请执行以下命令进行卸载(注:卸载之前注意备份/opt/crust/crust-node/config.yaml配置文件)

sudo /opt/crust/crust-node/scripts/uninstall.sh

Refer new Crust Wiki

Clone this wiki locally