“Crust 实现了去中心化存储的激励层协议,适配包括 IPFS 在内的多种存储层协议,并对应用层提供支持。同时 Crust 的架构也有能力对去中心化计算层提供支持,构建分布式云生态。”
3.3 建立 controller 和 stash 的绑定关系 9.3 重新启动链
9.4 重新启动 API
9.5 重新启动 sWorker
9.6 重新启动 Karst
在本教程中,我们将介绍如何成为一个 Validator/Candidate(验证者/候选人)和 Provider(存储供应商),从而在 Crust 网络中获得相应的收益。具体包括硬件设备的推荐,操作系统的设定,各项应用的启动,以及 APPs 的使用等,让你成功加入 Crust Maxwell 1.0 测试网络。本教程需要一定的 Linux 基础,请一定按照教程步骤,不要跳过任何一步。如有疑惑请联系 Crust 官方。
| |
| 英特尔 酷睿 i5-9600KF 处理器(支持SGX,其他芯片具体可以查询 Intel 官网),如果 SGX 只支持 software enabled 方式,参考这个链接:https://github.com/intel/sgx-software-enable 希捷监控级硬盘 8TB 酷鹰系列 7200 转 256M 若干(做存储盘, 存放服务数据) |
| |
| |
https://github.com/crustio/crust/wiki/Check-TEE-supportivehttps://shimo.im/docs/yRcDKGYv8Rxwp6GV/ Crust 账户是你链上的身份的体现,也是各类交易的主体。作为节点,你需要对应的账户来和节点进行绑定,从而获取区块奖励。Crust 账户作为标准的双账户模型 Controller/Stash,需要进行特定的账户绑定操作,通过操作 Crust APPs(apps.crust.network),本节将说明如何创建账号和绑定账号关系。在左侧导航栏中选中 “Accounts”,然后点击 “Add account”。输入账号名称以及密码,点击 “Save”,账号将被默认备份在您的设备上。我们将第一个新建的账号 TESTACCOUNT 用做 Stash 账号。Stash 账号是用户的资产账号,用来管理用户的资产。账户里面需要有一定数量的 CRU 进行后续的各类交易和资产抵押等操作。我们将新账号命名为 TEST_CONTROLLER 用来提醒自己,这个账号将用做 Controller,用于操作资产。账户里面需要有一定数量的 CRU 用于支付各类交易的交易费。3.3 建立 controller 和 stash 的绑定关系
点击左侧导航栏的 “Staking”,点击 “Account actions”。点击右上角的 “Bond”,并在弹出页面中选择 Stash 和 Controller 账户,填入需要 Bond 的金额(这里的金额代表许可 Controller 账户操作的金额),最后点击 “Bond”。
Bond 操作涉及链上操作,因此需要解锁 Stash 账户并消耗一定手续费。最后,Bond 成功了,可以看到在页面里新增了一个 Bond 关系。 一般来说,机器的 SGX 模块的默认关闭的,我们需要在机器的 BIOS 设置。首先将 BIOS SGX 开关 设置 enable,同时把 Secure Boot 关闭(部分主板没有)。wget https://github.com/crustio/crust-node/archive/v0.5.0.tar.gzcurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyunsudo apt install docker-compose安装 SGX 驱动(如果重启了机器,这步请重复执行一次)sudo ./scripts/install_sgx_driver.sh下载官方 docker images (国内网络会比较耗时)。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 的随机文件。sudo ./scripts/gen_config.shsudo docker-compose up -d crustsudo docker logs crust-0.7.0 -f确保链已经同步最新块高再进行如下操作(日志输出如 “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 执行),sudo docker-compose up -d crust-api调用查询块高的 API 判断 API 是否成功启动:curl 'http://127.0.0.1:56666/api/v1/block/header'
sudo docker-compose up -d crust-sworkersudo docker logs crust-sworker-0.5.0 -f等待 1 到 2 个 era 后 (Work Report 上报成功),进入 Crust APPs(apps.crust.network),左侧选择 Chain state 标签,第一个白框左侧选择 staking,右侧选择 stakeLimit,第二行选择你的 Stash 账户,然后点击右侧“+”号查询 stake limit。当上面步骤查询返回结果非 0 时,如下图所示,执行 Validate 操作。等到下个 era,能够查询到为 Validator 或在 Waiting 列表中,代表操作成功。如下:如果你希望为全网用户提供存储服务,从而接到更多的存储订单,固定公网 IP 地址是推荐的选择。如果你没有固定公网 IP,可以参考这篇 frp 内网穿透(链接:https://blog.csdn.net/weixin_40944846/article/details/107763866)的文章。 确保本地已经启动 fastdfs, 注意 fastdfs storage 的存储路径需与 sWorker 配置的SRD路径一一对应,安装 fastdfs 请参考这个链接(https://blog.csdn.net/weixin_40944846/article/details/107686309)。假设配置好的 fastdfs tracker 端口为 22122。执行端口开放命令:sudo ./scripts/gen_config.shsudo docker-compose up -d karsta. 设置保证金,进入 Crust APPs(apps.crust.network),左侧选择 Extrinsics 标签,第一个白框选择 Controller 账户,第二个白框左侧选择 market,右侧选择 pledge,第三个白框填写你要抵押的 CRU 数量,然后点击右下角的 Submit Transctions 发送交易:
条件 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。 9. 节点重启
如果机器需要重新启动,或者因为任何情况需要重启 Crust 节点相关程序,请参考下列步骤进行。请注意:本小节仅包括 Crust 节点相关程序的启动步骤,不包括机器基本软硬件环境设置和检查的相关内容,比如硬盘挂载、frp 内网穿透、FastDFS 等。请在保证软硬件系统正常的情况下进行下列步骤。在未来版本中我们将加入一键启动的自动化程序。当机器重启后,Linux 内核可能会有一定的更新,为确保程序正常运行,请重新执行下列脚本更新 SGX 的驱动程序:sudo ./scripts/install_sgx_driver.sh链在断连一段时间后会与主网的最新块有一定差距,执行下面命令重启链:sudo docker-compose up -d crustsudo docker logs crust-0.7.0 -f确保链已经同步最新块高再进行如下操作(日志输出如 “Imported #xxxx” ,并且best 达到最高块,说明同步到最新),启动命令如下:sudo docker-compose up -d crust-api调用查询块高的 API 判断 API 是否成功启动:curl 'http://127.0.0.1:56666/api/v1/block/header'sudo docker-compose up -d crust-sworkersudo docker logs crust-sworker-0.5.0 -fsudo docker-compose up -d karst
官网:https://crust.network/ Medium:https://medium.com/@crustnetwork GitHub:https://github.com/crustio Telegram:https://t.me/CrustNetwork