查看原文
其他

教程|Crust Maxwell 1.0 测试网节点手册

小脆皮 Crust分布式云 2021-02-20

Crust 实现了去中心化存储的激励层协议,适配包括 IPFS 在内的多种存储层协议,并对应用层提供支持。同时 Crust 的架构也有能力对去中心化计算层提供支持,构建分布式云生态。



目录 

1. 概述
2. 硬件环境
3. Crust 账户
   3.1. 创建 stash 账户
   3.2. 创建 controller 账户
   3.3 建立 controller 和 stash 的绑定关系
4.软件环境
   4.1 BIOS 设置
   4.2 下载 crust-node 安装包
   4.3 安装依赖
5. 程序配置
   5.1 修改配置文件
   5.2 生成 docker-compose 配置
6. 程序首次启动
   6.1 启动链
   6.2. 启动 API
   6.3. 启动 sWorker
7. 参与 GPoS
8. 参与存储市场(可选)
   8.1 公网要求(可选)
   8.2. Fastdfs 配置
   8.3. 修改软件配置
   8.4. Karst 启动
   8.5. 保证金, 注册, 接单
9.节点重启
   9.1 更新 SGX drive
   9.2  确保 Crust 相关程序已经关闭

   9.3  重新启动链

   9.4  重新启动 API

   9.5  重新启动 sWorker

   9.6  重新启动 Karst

 

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

 2. 硬件环境 
             

推荐配置信息
节点服务器

英特尔 酷睿 i5-9600KF 处理器(支持SGX,其他芯片具体可以查询 Intel 官网),如果 SGX 只支持 software enabled 方式,参考这个链接:https://github.com/intel/sgx-software-enable

西数512G 固态盘 (做系统盘,存放节点数据)
 8G 内存或以上
希捷监控级硬盘 8TB 酷鹰系列 7200 转 256M 若干(做存储盘, 存放服务数据)
操作系统
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(apps.crust.network,本节将说明如何创建账号和绑定账号关系。
 

3.1 . 创建 stash 账户

 
在左侧导航栏中选中 “Accounts”,然后点击 “Add account”。
       

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

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

3.2  创建 controller 账户

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

3.3  建立 controller 和 stash 的绑定关系

 
点击左侧导航栏的 “Staking”,点击 “Account actions”。
         

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


Bond 操作涉及链上操作,因此需要解锁 Stash 账户并消耗一定手续费。
        
最后,Bond 成功了,可以看到在页面里新增了一个 Bond 关系。
              
到目前为止,你的账户配置已经完成。


 4. 软件环境 
 

4.1  BIOS 设置


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

4.2 下载  crust-node  安装包

 
下载
wget https://github.com/crustio/crust-node/archive/v0.5.0.tar.gz
 
解压
tar -xvf v0.5.0.tar.gz
 
进入安装目录
cd crust-node-0.5.0
 

4.3 安装依赖

 
安装 docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
 
安装 docker-compose
sudo apt install docker-compose
 
安装 SGX 驱动(如果重启了机器,这步请重复执行一次)
sudo ./scripts/install_sgx_driver.sh
 
下载官方 docker images (国内网络会比较耗时)。
  • sudo docker pull crustio/config-generator:0.1.0


  • sudo docker pull crustio/crust:0.7.0


  • sudo docker pull crustio/crust-api:0.5.0


  • sudo docker pull crustio/crust-sworker:0.5.0


  • sudo docker pull crustio/karst:0.2.0




 5. 程序配置 
 

5.1 修改配置文件

 
a. 开始编辑:
vi config.yaml
 
b. 修改 config.yaml 中 “backup” 和 “password” 的值 ( “backup”为 controller 账户创建时备份的文件内容,“password” 为 controller 账户密码) 格式如下:
        
c. 修改 SRD(Sealed random data)的路径和容量
 
这里简单的介绍下 SRD,程序通过 SGX 内部的随机算法生成文件暂时填充 srd_paths 下面的硬盘空间,然后此空间将作为预留空间上报到 Crust 网络。格式如下(需为绝对路径)
               
这几行配置代表:
 
1. 程序将在 /harddisk1与/harddisk2 这两个目录下(需要配置不同硬盘下的目录,关于如何挂载硬盘请自行了解)进行 SRD 操作。例如,有两个硬盘 A 和 B 分别挂载到了 /harddisk1与/harddisk  2 两个目录,这时,就如上图这样配置。
 
2. srd_init_capacity 指的是一共 SRD 2000G 的随机文件。
 

5.2 生成 docker-compose 配置

 
运行生成配置文件脚本
sudo ./scripts/gen_config.sh
 
如下日志表示生成配置文件成功
       


 6. 程序首次启动 
 

6.1 启动链

 
进入 build 运行目录:
cd build
 
启动命令如下:
sudo docker-compose up -d crust
 
根据容器 ID 查询链的日志:
sudo docker logs crust-0.7.0 -f
 
日志如下表示链启动成功,正常同步:
       

开放端口:
sudo ufw allow 30333
 
确保链已经同步最新块高再进行如下操作(日志输出如 “Imported #xxxx” ,并且 best 达到最高块,说明同步到最新),获取 session key:


curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933
 
结果如下,红框里面是得到的 session key:
        

进入Crust APPs( apps.crust.network)在左侧选择 Extrinsics 标签,第一个白框选择你的 Controller 账户,第二个白框左侧选择 session,右侧选择 setKeys,第三行填入上面得到的 sessionkey,然后发送交易(用 Controller 执行),
       
 

6.2 启动 API

 
确保链已经同步最新块,启动命令如下:
sudo docker-compose up -d crust-api
 
调用查询块高的 API 判断 API 是否成功启动:
curl 'http://127.0.0.1:56666/api/v1/block/header'
 
如下表明成功启动:

  

6.3 启动 sWorker

 
启动命令如下
sudo docker-compose up -d crust-sworker
 
查看 sWorker 日志
sudo docker logs crust-sworker-0.5.0 -f
 
如下表示 workreport 上报成功。
            
  
 7. 参与 GPoS 
 
等待 1 到 2 个 era 后 (Work Report 上报成功),进入 Crust APPs(apps.crust.network),左侧选择 Chain state 标签,第一个白框左侧选择 staking,右侧选择 stakeLimit,第二行选择你的 Stash 账户,然后点击右侧“+”号查询 stake limit。
              
当上面步骤查询返回结果非 0 时,如下图所示,执行 Validate 操作。
        
等到下个 era,能够查询到为 Validator 或在 Waiting 列表中,代表操作成功。如下:
       


 8. 参与存储市场(可选)

8.1 固定公网要求(可选)

 
如果你希望为全网用户提供存储服务,从而接到更多的存储订单,固定公网 IP 地址是推荐的选择。如果你没有固定公网 IP,可以参考这篇 frp 内网穿透(链接:https://blog.csdn.net/weixin_40944846/article/details/107763866)的文章。

 

8.2  Fastdfs 配置

 
确保本地已经启动 fastdfs, 注意 fastdfs storage 的存储路径需与 sWorker 配置的SRD路径一一对应,安装 fastdfs 请参考这个链接(https://blog.csdn.net/weixin_40944846/article/details/107686309)。假设配置好的 fastdfs tracker 端口为 22122。执行端口开放命令:
sudo ufw allow 22122
 

8.3  修改软件配置

 
回到 crust-node 主目录,打开配置:
vi config.yaml
 
修改 tracker_addrs。
 
       
再次运行生成配置文件脚本
sudo ./scripts/gen_config.sh
 
如下日志表示生成配置文件成功
              

8.4  Karst 启动

 
再次进入 build 目录:
cd build
 
启动 karst:
sudo docker-compose up -d karst
 

8.5 保证金, 注册, 接单

 
a. 设置保证金,进入 Crust APPs(apps.crust.network),左侧选择 Extrinsics 标签,第一个白框选择 Controller 账户,第二个白框左侧选择 market,右侧选择 pledge,第三个白框填写你要抵押的 CRU 数量,然后点击右下角的 Submit Transctions 发送交易:


              
b.注册地址
 
条件 1 :对应账户有 work report(Controller 账户)
条件 2 :Controller 账户有保证金(保证金额度决定接单能力)
sudo docker exec -it karst-0.2.0 /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 = 1012 pico),表示存储 1MB 大小文件存储 1min 收费的CRU数量, 数额自行设置,最小单位为 40 pico。
 
c. 开启端口,准备接单
sudo ufw allow 17000
 

 9. 节点重启 


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

请在保证软硬件系统正常的情况下进行下列步骤。在未来版本中我们将加入一键启动的自动化程序。
 

9.1  更新 SGX driver

当机器重启后,Linux 内核可能会有一定的更新,为确保程序正常运行,请重新执行下列脚本更新 SGX 的驱动程序:
cd crust-node-0.5.0
sudo ./scripts/install_sgx_driver.sh
 

9.2  确保 Crust 相关程序已经关闭

cd build
sudo docker-compose down
 

9.3  重新启动链

链在断连一段时间后会与主网的最新块有一定差距,执行下面命令重启链:
sudo docker-compose up -d crust
 
根据容器 ID 查询链的日志:
sudo docker logs crust-0.7.0 -f
 
日志如下表示链启动成功,正常同步:
       

9.4  重新启动 API

确保链已经同步最新块高再进行如下操作(日志输出如 “Imported #xxxx” ,并且best 达到最高块,说明同步到最新),启动命令如下:
sudo docker-compose up -d crust-api
 
调用查询块高的 API 判断 API 是否成功启动:
curl 'http://127.0.0.1:56666/api/v1/block/header'
 
如下表明成功启动:
       
 

9.5  重新启动 sWorker


启动命令如下:
sudo docker-compose up -d crust-sworker
 
查看 sWorker 日志:
sudo docker logs crust-sworker-0.5.0 -f
 
如下表示 workreport 上报成功:
       
 

9.6  重新启动 Karst

sudo docker-compose up -d karst



Crust 相关:
/Crust 技术白皮书 v1.9.3 版

/Crust Network 经济白皮书草案公布

/Crust 经济白皮书第 1 期 · 概述
/Crust 经济白皮书第 2 期 · 参与方
/Crust 经济白皮书第 3 期 · 经济模型

/一文快速了解 Crust Network 分布式云


官网:https://crust.network/ 
 Twitter:@CrustNetwork
 Medium:https://medium.com/@crustnetwork
 GitHub:https://github.com/crustio
 Telegram:https://t.me/CrustNetwork
       

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存