Skip to content

CRUST Maxwell CC2 测试网节点手册

BOBOKaa edited this page Nov 3, 2020 · 4 revisions

Overview

  1. 概述
  2. 硬件环境
  3. Crust 账户
    3.1 创建 stash 账户
    3.2 创建 controller 账户
    3.3 建立 controller 和 stash 的绑定关系
  4. 软件环境
    4.1 BIOS 设置
    4.2 下载 crust-node 安装包
    4.3 安装Crust服务
  5. 程序配置
  6. 启动Crust服务
  7. 参与 GPoS
  8. 参与存储市场(可选)
    8.1 固定公网要求(可选)
    8.2 Fastdfs 配置
    8.3 修改软件配置
    8.4 Karst 启动
    8.5 保证金, 注册, 接单
  9. 节点重启

1. 概述

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

2. 硬件环境

推荐配置信息
节点服务器 英特尔 酷睿 i5-9600KF 处理器(支持SGX,其他芯片具体可以查询intel官网),如果 SGX 只支持 software enabled 方式,参考这个链接https://github.com/intel/sgx-software-enable;西数512G固态盘 (做系统盘,存放节点数据);8G 内存或以上;希捷监控级硬盘8TB 酷鹰系列 7200转256M 若干,建议8块(做存储盘, 存放服务数据);
操作系统 Ubuntu 16.04/18.04
网络带宽 100M,稳定

注意: 在开始之前需要检测您的 CPU 是否支持 SGX

脚本检测: https://github.com/crustio/crust/wiki/Check-TEE-supportive

官网查询: https://shimo.im/docs/yRcDKGYv8Rxwp6GV/

3. Crust 账户

Crust 账户是你链上的身份的体现,也是各类交易的主体。作为节点,你需要对应的账户来和节点进行绑定,从而获取区块奖励。Crust 账户作为标准的双账户模型 Controller/Stash,需要进行特定的账户绑定操作,通过操作Crust Apps,本节将说明如何创建账号和绑定账号关系。

3.1 创建 stash 账户

在导航栏中点击 “Accounts” 下的 “账户”。然后点击“添加账户“

add_account

输入账号名称以及密码,点击 “保存”,账号将被默认备份在您的设备上。

create_stash

我们将第一个新建的账号 用做 Stash 账号。Stash 账号是用户的资产账号,用来管理用户的资产。账户里面需要有一定数量的 CRU 进行后续的各类交易和资产抵押等操作。

3.2 创建 controller 账户

重复新建账号步骤,再次创建另一个账号。

create_controller

我们将新账号命名为 CONTROLLER 用来提醒自己,这个账号将用做 Controller,用于操作资产。账户里面需要有一定数量的 CRU 用于支付各类交易的交易费。

3.3 建立 controller 和 stash 的绑定关系

点击导航栏的“Network”下的“质押”。选中“账户操作”

new_bond

点击右上角的 “存储账户”,并在弹出页面中选择 Stash 和 Controller 账户,填入需要抵押的金额(这里的金额代表许可 Controller 账户操作的金额),最后点击 “抵押”。

add_bond

抵押操作涉及链上操作,因此需要解锁 Stash 账户并消耗一定手续费。

最后,抵押成功了,可以看到在“账户操作”页面里新增了一个抵押关系。

bond_done 到目前为止,您的账户配置已经完成。

4. 软件环境

4.1 BIOS 设置

一般来说,机器的 SGX 模块的默认关闭的,我们需要在机器的 BIOS 设置。首先将 BIOS SGX 开关设置为 enable,同时把 Secure Boot 关闭(部分主板没有)。

4.2 下载crust-node安装包

  • 下载:
wget https://github.com/crustio/crust-node/archive/v0.6.0.tar.gz
  • 解压
tar -xvf v0.6.0.tar.gz
  • Enter installation directory:
cd crust-node-0.6.0

4.3 安装crust服务

执行如下命令安装crust服务,过程中涉及到下载相关依赖和docker images的操作,会比较耗时,并有可能因为网络的问题失败,如发生,请重复执行该操作直到安装完成。

sudo ./install.sh

5. 程序配置

注:配置文件中使用的端口如果没有被占用,可使用默认配置

a. 开始编辑

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

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

identity_config

c.修改 config.yaml 中 该节点在 crust chain 中的 name

srd_config

d. 修改 SRD(Sealed random data)的路径和容量

这里简单的介绍下 SRD,程序通过 SGX 内部的随机算法生成文件暂时填充 srd_paths 下面的硬盘空间,然后此空间将作为预留空间上报到 Crust 网络,这个将决定你链上可以被别人担保的上限,也决定你可以接单的量。格式如下(需为绝对路径):

这几行配置代表:

  1. 程序将在 /harddisk1与/harddisk2 这两个目录下(需要配置不同硬盘下的目录,关于如何挂载硬盘请自行了解)进行 SRD 操作。例如,有两个硬盘 A 和 B 分别挂载到了 /harddisk1与/harddisk 2 两个目录,这时,就如上图这样配置。
  2. srd_init_capacity 指的是一共 SRD 2000G 的随机文件。

6. 启动Crust服务

a. 启动命令

sudo systemctl start crust

b. 检测crust服务启动状态

sudo systemctl status crust

如下表示crust服务成功启动: start chain

c. 监控

监控命令:

sudo docker logs build_crust-sworker_1 -f

监控日志如下:

1.表示区块正在同步中

2.成功在链上注册sworker身份

注意:如果监控日志出现“[ERROR] {"action":"identity","status":"error","message":"1010":Invalid Transaction:Transaction has a bad signature"}”表示注册失败,需手动执行“sudo systemctl reload crust”重启服务

3.swoker正在进行srd操作

4.表示workreport上报成功

monitor_log1 monitor_log2

d. 获取 session key

curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933

结果如下,红框里面是得到的session key:

get_sessionkey

进入Crust Apps,点击导航栏的“Network”下的“质押”。选中“账户操作”,选择“Change session keys”,右侧选择“设置setKeys”,填入上面得到的sessionkey,然后发送交易

set_sessionkey1

set_sessionkey2

e. 开放链端口

sudo ufw allow 30333

7. 参与 GPoS

执行 “成为验证人” 操作。

be_validator

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

validator_overview

8 参与存储市场(可选)

8.1 固定公网要求(可选)

如果你希望为全网用户提供存储服务,从而接到更多的存储订单,固定公网IP地址是推荐的选择。如果你没有固定公网IP,可以参考这篇frp内网穿透的文章

8.2  FastDFS配置

确保本地已经启动 fastdfs, 注意 fastdfs storage 的存储路径需与 sWorker 配置的SRD路径一一对应,安装 fastdfs 请参考这个链接 。假设配置好的 fastdfs tracker端口为 22122, strorage端口是23000。执行端口开放命令:

sudo ufw allow 22122
sudo ufw allow 23000

8.3 修改软件配置

打开配置:

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

修改node.karst为enable,修改 tracker_addrs为fdfs tracker的地址

modify_addr1 modifyaddr2

再次运行生成配置文件脚本

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

如下日志表示生成配置文件成功 configfile_generation

8.4 Karst启动

再次进入 build 目录:

cd /opt/crust/crust-node/build

启动 karst:

sudo docker-compose up -d karst

8.5 保证金, 注册, 接单

a. 设置保证金

进入Crust Apps,菜单栏选择“开发者”下的“交易”,第一个白框选择 Controller 账户,第二个白框左侧选择 market,右侧选择 pledge,第三个白框填写你要抵押的 CRU 数量,然后点击右下角的 Submit Transctions 发送交易:

set_pledge

b. 注册地址

注意: 这里的地址注册是短期方案,未来会用去中心化的方法完成地址发现。

条件 1 :对应账户有 work report(Controller 账户)
条件 2 :Controller 账户有保证金(保证金额度决定接单能力)
sudo docker exec -it build_karst_1 /bin/bash -c 'karst register ws://162.168.50.7:17000 100'

上述命令参数说明:

1、 “ws://162.168.50.7:17000” 为 karst 对外暴露的地址,请修改为自己本地外网地址, 比如外网地址为 162.168.50.7,
2、 “100” 数值的单位为 pico(1 CRU = 10*12 pico),表示存储 1MB 大小文件存储 1min 收费的 CRU 数量, 数额自行设置,最小单位为 40 pico。

c. 开启端口,准备接单

sudo ufw allow 17000

9. 节点重启

如果机器需要重新启动,或者因为任何情况需要重启 Crust 节点相关程序,请参考下列步骤进行。请注意:本小节仅包括 Crust 节点相关程序的启动步骤,不包括机器基本软硬件环境设置和检查的相关内容,比如硬盘挂载、frp 内网穿透、FastDFS 等。请在保证软硬件系统正常的情况下进行下列步骤

sudo systemctl reload crust

Refer new Crust Wiki

Clone this wiki locally