Skip to content

Crust 激励测试网单节点手册

yyd106 edited this page Nov 25, 2020 · 4 revisions

1. 概述

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

2. 硬件环境

在单节点形态下,你唯一的节点上需要运行链模块以及存储量模块, 由于出块进程以及存储工作量上报进程对网络稳定性要求比较高,类似波卡生态的 Kusama 网络或者其他项目,我们强烈推荐出块节点使用固定的公网 IP,否则会因为出块不稳定等情况带来损失。

单节点形态拓扑图如下:

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

3 . 账户

请参考Crust账户手册

4. 软件环境

4.1 BIOS 设置

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

4.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

4.3 安装Crust服务

安装前的注意点:

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

安装命令:

sudo ./install.sh --registry cn

5. 节点设置

5.1 开始编辑

执行以下命令编辑节点配置文件(对vim操作不熟悉的参考这个教程,或使用其他linux的文件编辑器)

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

5.2 配置账户

修改 config.yaml 中“backup”和“password”的值 ,其中 “backup”为 controller 账户创建时备份的文件内容,“password” 为 controller 账户密码,格式如下:

5.3 修改节点名

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

5.4 配置存储

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

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

6. 节点启动

6.1 准备

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

sudo ufw allow 30888

6.2 启动

启动命令如下:

sudo crust start 

6.3 检查运行状态

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

sudo crust status

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

6.4 监控 通过以下监控命令进行监控,ctrl-c结束监控: sudo crust logs sworker 监控日志如下: 表示区块正在同步中,该过程耗时较长(1) 成功在链上注册身份(2) 正在进行存储余量统计操作,该过程会逐步进行(3) 表示工作量上报成功, 该过程耗时较长(4)

7. 参与GPOS

7.1 获取session key

执行以下命令:

sudo crust tools rotate-keys

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

7.2 设置session key

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

7.3 成为验证人

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

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

8. 注意与提醒

8.1 重启

如果机器需要重新启动,或者因为任何情况需要重启 Crust 节点相关程序,请参考下列步骤进行。

请注意:本小节仅包括 Crust 节点相关程序的启动步骤,不包括机器基本软硬件环境设置和检查的相关内容,请在保证软硬件系统正常的情况下进行下列步骤

sudo crust reload

8.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