# Lotus 快速部署

警告

在开始搭建集群之前,我们强烈建议您先去阅读我们的 Lotus 运维安全声明!!!

在开始搭建集群之前,我们强烈建议您先去阅读我们的 Lotus 运维安全声明!!!

在开始搭建集群之前,我们强烈建议您先去阅读我们的 Lotus 运维安全声明!!!

本教程属于新手教程,向您展示如何使用原语云,快速从零开始搭建 Lotus 集群。注意:这里以单 Miner 集群为例, 多 Miner 集群请阅读进阶教程。

本次集群搭建你可能会用到下面的应用(如果您不知道什么是应用,请您点击 应用中心

):

lotus lotus-miner lotus-ap-worker lotus-p1-worker lotus-p2-worker lotus-c2-worker

# 01-机器初始化

正所谓工欲善其事,必先利其器。在搭建集群之前我们需要对机器进行初始化,包括安装系统,配置网络,配置系统参数等。 同时,我们需要约定一些原则,以便后面协作能够更加顺利。

# 1.1 硬件方案

请参考 原语云 Lotus 集群硬件方案

.

# 1.2 系统安装

  1. 系统版本:Ubuntu 18.04/20.04 LTS Server ,请不要安装桌面版系统!!!
  2. 系统请单独安装在一块 SSD 磁盘,SSD 最小 120GB,安装系统时不需要组 LVM(注意,安装的时候默认选项就是组 LVM,请不要使用默认选项)。
  3. 所有机器用户名初始都建议使用不同的用户名和密码,便于内网安全。

# 1.3 网络配置

  1. 所有的机器的内网地址都必须采用静态 IP 的方式,请关闭 dhcp 模式。
  2. IP 地址的设置必须连续有序,且跟主机名称最好一一对应,比如 p1-worker ip 为 192.168.1.1 ,则 p1-worker2 的 IP 则为 192.168.1.2,而不能是 192.168.1.100 之类的。
  3. 外网 IP 穿透映射遵循用一个,开一个的原则,不建议每次开一批端口。

# 02-安装 Qark 客户端

  1. 逐台安装
  2. 批量安装

提示

安装完 SDK 之后,请确保每台机器的 节点名称 不一样,并按照功能对所有的节点重新命名。

  • 节点机器 -> lotus
  • Miner -> lotus-miner
  • P1P2 算力机 -> p1-worker01, p1-worker02 ...
  • C2 证明名机 -> c2-worker01, c2-worker02 ...
  • 网关机器 -> gateway01, gateway02 ...
  1. 双击桌面 节点管理.

  2. 鼠标悬停在 节点名称 这一栏,会出现一个编辑的小图标,点击即可编辑。

# 03-下载 Lotus 软件和参数

在开始搭建集群之前,你可能要先同步一份原语云的最新的 Lotus 相关程序(lotus, lotus-miner, lotus-worker) 到 Miner 节点,供其他节点下载安装。原语云会持续保持跟官方同步,及时合并官方代码。原语代码有版本更新会及时通过原语云的服务号及时推送微信消息, 所以你务必关注原语云的服务号,以免错过版本更新,导致掉算力。

# 3.1 下载 Lotus 软件

请参考 Lotus 软件下载

# 3.2 下载证明参数

Miner 以及 C2-Worker 需要做时空证明和复制证明,所以需要下载复制证明参数,为了节省带宽,我们只下载一份到 Miner 节点上,C2 worker 到时候从 Miner 走内网(万兆)下载。

这里我们照样把参数下载到 /var/www/html 目录下,以供其他 Worker 下载。请确保当前目录所在磁盘的可用空间大于 200 GiB,如果你想密封 64GiB 扇区的话,请确保可用磁盘空间大于 500G。

cd /var/www/html
chmod +x ./lotus/1.15.1/20220506/amd/lotus #如果这个文件不存在,说明你上面的下载失败了,需要重新下载
export FIL_PROOFS_PARAMETER_CACHE=/var/www/html/filecoin-proof-parameters
export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/
# 先在当前机器上安装 lotus 运行依赖
apt-get install mesa-opencl-icd ocl-icd-opencl-dev ntpdate libhwloc-dev -y
# 下载 32GiB 扇区参数
./lotus/1.15.1/20220506/amd/lotus fetch-params 32GiB
# 如果你想要密封 64GiB 扇区的话,那么你需要获取 64GiG 扇区参数
./lotus/1.15.1/20220506/amd/lotus fetch-params 64GiB

101 GiB 的参数(如果是 64GiB 的扇区参数是 206GiB),可能要下载几个小时。下载完成之后当前目录下会多一个 filecoin-proof-parameters 目录。

提示

我们在 qark-client 内部实现了一个轻量级且极为安全的 http 服务器,服务器的根目录就在 /var/www/html,端口为 17181。 也就是说现在你可以通过访问:

http://<miner-ip>:17181/lotus/1.15.1/20220506/amd/lotus
# <miner-ip> 替换为你 miner 节点的 IP 地址,如:192.168.100.103

来下载 lotus 软件了,后面在配置 lotus 应用的时候,软件源的地址以及 C2-Worker 下载参数也是通过这个 Http 服务器来下载。

# 04-启动 lotus(daemon)

# 4.1 初始化机器

  1. 安装 lotus 运行依赖
  2. 格式化并挂载磁盘
  3. 设置系统 ulimit 参数

# 4.2 添加 lotus 应用

  1. 双击桌面的 应用中心 图标,进入应用中心主界面.

  2. 点击 lotus 应用图标下的 添加 按钮.

  3. 添加完成之后桌面上会多出一个 lotus 应用图标(如果没有请刷新页面).

# 4.3 配置 lotus 应用

  1. 双击桌面的 lotus 应用,进入应用主界面.

  2. 点击 应用配置 标签栏,再点击 编辑 按钮.

  3. 修改配置,基本上你直接使用默认的配置就行了,只需要把软件源修改一下:

    • AMD版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/lotus

      提示

      如果你跑的是 Calibnet 网络,那么这里需要选择 Calibnet 网络 Lotus 下载地址:http://192.168.100.103:17181/lotus_cali/1.15.1/20220506/amd/lotus

      如果您使用的是没有 ADX 指令支持的较旧的 AMD 处理器,请使用 BLST_PORTABLE 版本: http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/blst_portable/lotus

    • Intel版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/intel/lotus

      提示

      如果你跑的是 Calibnet 网络,那么这里需要选择 Calibnet 网络 Lotus 下载地址:http://192.168.100.103:17181/lotus_cali/1.15.1/20220506/intel/lotus

      如果您使用的是没有 ADX 指令支持的较旧的 INTEL 处理器,请使用 BLST_PORTABLE 版本: http://192.168.100.103:17181/lotus/1.15.1/20220506/intel/blst_portable/lotus

# 4.4 安装 lotus 应用

  1. 回到 节点预览 页面,点击 点此一键安装 按钮.

  2. 在节点选择下拉框中选择 自定义节点.

  3. 勾选你想要安装应用的节点,如果节点过多你可以搜索节点名称对节点进行筛选,如果你不知道该安装到哪台机器,请参考 lotus 节点机配置

    或者联系原语云客服咨询.

  4. 点击 安装 按钮.

  5. 开始安装完成之后 节点预览 界面会多出一条记录,"状态" 这一栏会同步显示安装进度,安装完成之后会显示启动按钮.

    @Note: 安装完成之后,你的节点上会多一个 yy_lotus 命令,你可以通过在终端 yy 一下,再按 Tab 键唤出该命令。

    推荐

    建议你在 Miner 节点上也装上 lotus 应用,这样方便你在 Miner 节点也可以执行 yy_lotus 命令。

# 4.5 导入区块快照

目前主网的区块高度比较大,整个历史去快速数据同步下来要几个 TiB 了,所以我们不建议从零开始同步区块,建议你走导入区块快照的形式。

  1. 首先你需要下载官方最新的最小节点快照:

    wget https://fil-chain-snapshots-fallback.s3.amazonaws.com/mainnet/minimal_finality_stateroots_latest.car -O lotus-chain.car
    

    目前整个快照大小有 30 多 GiB,如果下载比较慢的话,可以试着使用迅雷下载。

  2. 导入快照

    # usage:
    yy_lotus daemon --import-snapshot=<snapshot-path>  --halt-after-import 
    # e.g
    yy_lotus daemon --import-snapshot=lotus-chain.car --halt-after-import 
    
  3. 导入快照完毕之后,你还需要修改 /yuanyu/lotus/data/config.toml 文件:

    [API]
    # 打开注释,并把 127.0.0.1 改成你的 daemon 机器内网 IP 地址
    # 注意这个 IP 地址必须要能够跟 miner 节点通信
    ListenAddress = "/ip4/127.0.0.1/tcp/1234/http"  
    RemoteListenAddress = "127.0.0.1:1234"
    [Backup]
    DisableMetadataLog = false  # 如果你要关闭元数据日志,请把这里改成 true
    

# 4.6 启动 lotus 应用

导入区块,修改好配置文档之后,你就可以直接到 节点预览 操作界面,启动 lotus 应用。

应用有两种启动方式:

  1. 启动单个节点:直接选择对应的节点,点击状态栏的 启动 图标.
  2. 批量启动节点:选中节点左侧的复选框,然后点击 批量操作 下拉菜单,点击 启动 按钮.

如下图所示:

启动成功之后会返回应用的进程ID,同时应用的状态也会变成 运行中.

# 4.7 检查同步状态

一般 lotus 应用会在 30 秒内启动完毕(完成 API 的启动),此时我们就可以运行 lotus 的相关命令了。

比如查看节点 P2P 连接数:

yy_lotus net peers

如果命令报错:

ERROR: could not get API info: could not get api endpoint: API not running (no endpoint)

则说明 lotus daemon 没有启动起来,此时你可以看日志 /yuanyu/lotus/log/error.log 来排查错误。

接下来我们需要确认 lotus 的同步状态:

yy_lotus sync status

如果返回的 State 的状态是 Complete 则说明是已经同步完成。

如果 State 的状态是 message sync,则说明正在同步区块,你可以使用 yy_lotus sync wait 检查具体的同步状态。

# 4.8 创建 Owner 钱包

  1. 创建钱包.

    yy_lotus wallet new bls
    
  2. 备份钱包私钥.

    # usage
    yy_lotus wallet export <address>
    # e.g
    yy_lotus wallet export f3xxxx
    

    警告

    Owner 钱包是整个集群的核心钥匙,请务必要备份多份,分别存于不同的保险柜中,如果丢失整个集群将无法进行提现/变更等重要操作,相当于失去了集群的控制权。

  3. 从你其他钱包中(如交易所)往 owner 地址中充值一笔钱.

# 05-启动 miner

# 5.1 初始化机器

  1. 安装 lotus 运行依赖
  2. 安装 GPU 驱动
  3. 格式化并挂载磁盘
  4. 设置系统 ulimit 参数

# 5.2 添加 lotus-miner 应用

  1. 双击桌面的 应用中心 图标,进入应用中心主界面.

  2. 点击 lotus-miner 应用图标下的 添加 按钮.

  3. 添加完成之后桌面上会多出一个 lotus-miner 应用图标(如果没有请刷新页面).

# 5.3 配置 lotus-miner

  1. 双击桌面的 lotus-miner 应用,进入应用主界面.

  2. 点击 应用配置 标签栏,再点击 编辑 按钮.

  3. 修改配置,新手你只需修改以下配置项,其他的都使用默认值就行了.

    • AMD版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/lotus-miner

      提示

      1. 如果你跑的是 Calibnet 网络,那么这里需要选择 Calibnet 网络 Lotus 下载地址:http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/cali/lotus-miner,后面的 Worker 也需要选择 lotus_cali 目录,请切记!!!

      2. **如果你想使用 OpenCL 版本的 lotus-miner 程序,可以使用 http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/opencl/lotus-miner,**下面 worker 的配置也是类似的。

    • Intel版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/intel/lotus-miner

      提示

      如果你跑的是 Calibnet 网络,那么这里需要选择 Calibnet 网络 Lotus 下载地址:http://192.168.100.103:17181/lotus_cali/1.15.1/20220506/intel/lotus-miner,后面的 Worker 也需要选择 lotus_cali 目录,请切记!!!

    • daemon机器的api内网ip地址:

      $(#daemon_id.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)
      

      你需要把 daemon_id 改成你的 lotus 节点的 node_id如何获取节点 node_id

      当然,如果你嫌麻烦,你也可以直接把上面的表达式改成你 daemon 节点的 IP,如 192.168.1.100(这个 IP 必须能跟 Miner 通信)。

      如果你想知道这个配置表达式的配置语法,请先阅读 应用配置参数解析

      如果你对 Lotus 已经很熟悉了,请参考我们的 Miner 应用进阶配置

      .

# 5.4 安装 lotus-miner

  1. 回到 节点预览 页面,点击 点此一键安装 按钮.

  2. 在节点选择下拉框中选择 自定义节点.

  3. 勾选你想要安装应用的节点,如果节点过多你可以搜索节点名称对节点进行筛选,如果你不知道该安装到哪台机器,请参考 全功能 Miner 配置

    或者联系原语云客服咨询.

  4. 点击 安装 按钮.

  5. 开始安装完成之后 节点预览 界面会多出一条记录,"状态" 这一栏会同步显示安装进度,安装完成之后会显示启动按钮.

    @Note: 安装完成之后,你的节点上会多一个 yy_lotus-miner 命令,你可以通过在终端 yy 一下,再按 Tab 键唤出该命令。

# 5.5 下载证明参数

我们在 3-2-下载证明参数 步骤中已经把证明参数下载到 Miner 节点的 /var/www/html 目录下了。 现在我们只需要把它拷贝到 /yuanyu 目录下就行了。

cp -r /var/www/html/filecoin-proof-parameters /yuanyu

# 5.6 创建 Miner 账户

  1. 初始化并创建 miner.

    yy_lotus-miner init --owner=<owner-key> --sector-size=32GiB --create-worker-key=true --no-local-storage=true
    
    • owner 是指你的 owner 钱包地址,如果你没有传入,就会使用默认钱包地址
    • create-worker-key=true 会创建一个新的钱包作为质押地址。

    提示

    整个初始化 Miner 需要提交 2 次消息上链,一次是初始化 worker 地址,一次是创建 Miner 账户。预计需要花费 2-5 分钟左右。

    另外,初始化 miner 之后,最好把 miner 的元数据备份一份(/yuanyu/lotus-miner/data),后面多 miner 方案需要使用。

  2. 修改 miner 配置文档,/yuanyu/lotus-miner/data/config.toml.

    [API]
    # 打开注释,并把 127.0.0.1 改成你 Miner 机器的内网 IP 地址
    ListenAddress = "/ip4/127.0.0.1/tcp/2345/http"  
    RemoteListenAddress = "127.0.0.1:2345"
    [Backup]
    DisableMetadataLog = false  # 如果你要关闭元数据日志,请把这里改成 true
    

    如果你新手,那么其他配置请按照默认的配置跑就行了,如果你有一定的经验,那么你可以去参考我们的 Miner config 进阶配置

# 5.7 启动 lotus-miner

注意:

在启动 lotus-miner 之前,请确保你已经把你的 Owner 私钥从 lotus daemon 节点上删除,原语云为了防止你忘记删除 Owner 私钥,在程序上做了特殊处理,一旦发现你导入了 Owner 私钥,启动 lotus-miner 的时候会报错并强制退出:

ERROR: getting full node api: failed to add node with api /ip4/192.168.2.100/tcp/1234/http: you are running a lotus node with your OWNER key online and that's DANGEROUS!!!
Please export env var 'RUN_WITH_OWNER_KEY_ONLINE=true' to continue if you insist on doing this

如果 Worker 和 Owner 私钥用的是同一个,不得不导入,你可以在启动 Miner 的时候导出环境变量:

export RUN_WITH_OWNER_KEY_ONLINE=true

Miner 成功启动之后,强烈建议你立即 更换 Owner 私钥,然后再将 Owner 私钥备份后从 daemon 上删除, 最后重启 Miner。

  1. 启动 miner 进程,直接到 节点预览 操作界面,启动 lotus-miner 应用。启动成功之后,你需要确认一下爆块时间是否正常,在主 Miner 的日志中直接查找 winning PoSt warmup 日志,日志会显示爆块的时间,以及对应证明 Worker 的主机名称和IP地址:

    grep "winning PoSt warmup" /yuanyu/lotus-miner/log/error.log 
    # 如果成功会有类似下面输出
    winning PoSt warmup successful {"worker": "winning-worker-yyyun-1700k", "address": "192.168.2.202:2346", "took": 1.37271456}
    

    爆块的时间在 5 秒以内都算是正常的,如果大于这个值,则建议重启 Miner 试试,如果如果重启多次还是出现爆块时间偏长,建议使用下面的脚本手动启动 Miner:

    nohup yy_lotus-miner run \
     --storage-api=local \
    --winning-post=true \
    --winning-worker=true \
    --window-post=true \
    --window-worker=true \
    --sealing-mgr=true \
    --sector-store=true \
    --deals-mgr=false  >> /yuanyu/lotus-miner/log/error.log 2>&1 &
    

    接下来,你有 2 种方式去确认 Miner 是否成功启动。

    (1) 直接通过客户端命令调用 Miner 的 API,例如查看 Miner API 版本 yy_lotus-miner version,如果能正常返回版本信息,则说明 Miner 已经启动成功。类似下面这样:

    yy_lotus-miner version
    # 输出类似如下信息
    Daemon:  1.15.1+mainnet+git.ef69e1c24.dirty+api1.2.0
    Local: lotus-miner version 1.15.1+mainnet+git.ef69e1c24.dirty
    

    (2) 查看 Miner 启动日志:

    grep "starting up miner" /yuanyu/lotus-miner/log/error.log
    ## 输出类似如下信息,则表示启动成功,如果什么都没有输出,则说明还没启动成功,
    ## 这时你需要继续等待,或者去日志里面查看是否有启动失败的错误日志
    storageminer	storage/miner.go:243	starting up miner f0xxxx, worker addr f3xxxx...
    
  2. 新增存储,由于我们前面的在初始化 Miner 的时候,设置的 --no-local-storage=true,所以目前 miner 是没有本地存储的, 还需要我们手动为 miner 添加存储。在添加存储之前,我们需要把存储设备挂载好,我们这里假设存储设备是挂载在 /data01 目录下:

    yy_lotus-miner storage  attach --init=true --store=true --seal=false --final=true /data01
    
  3. 把质押币充值到质押地址(worker address),我们在初始化 Miner 的时候创建了一个质押地址,我们需要往这个地址充值,以便质押扣款。

    # 1. 查看 worker 地址
    yy_lotus-miner actor control list --verbose
    # 输出类似这样
    name       ID         key    use    	balance                    
    owner      f01147206  f3aaa    				102.482307264869989582 FIL    
    worker     f01151451  f3bbb  other  	0 FIL 
    # 2. 复制 worker 地址(这里是 f3bbb),你可以从其他钱包转钱进来,也可以直接把 Miner 的余额划转到 Worker
    yy_lotus send  f3bbb 100 
    

# 5.8 设置时空证明地址

通常,在链比较拥堵的时候,质押消息容易堵塞而无法上链,如果时空证明消息和质押消息用同一个钱包地址提交的话,也容易堵塞而导致提交超时,这样就会掉算力。 所以我们建议为时空证明消息单独设置一个钱包地址。

  1. 创建钱包.

    yy_lotus wallet new bls
    

    创建完成记得第一时间备份私钥!!!

  2. 初始化钱包(往钱包里面充值一笔钱),时空证明的手续费非常便宜,通常充值 2 个FIL 就够用一年的时空证明手续费了.

    yy_lotus send f3xxx 2 # f3xxx 替换成你刚刚创建的钱包地址
    
  3. 设置 Post 钱包地址

    yy_lotus-miner actor control set --really-do-it=true f3xxx # f3xxx 替换成上面创建的钱包地址
    
  4. 等待消息上链成功之后,验证是否生效.

    yy_lotus-miner actor control list --verbose
    
    # 输出类似这样
    name       ID         key                                                                                     use    balance                     
    owner      f01147206  f3aaa         0.482307264869989582 FIL    
    worker     f01151451  f3bbb  other  100 FIL  
    control-0  f0398207   f3xxx  post   2 FIL   # 有这一行说明设置成功了
    

# 06-启动 lotus-ap-worker

# 6.1 初始化机器

  1. 安装 lotus 运行依赖
  2. 安装 GPU 驱动
  3. 格式化并挂载磁盘

# 6.2 添加 lotus-ap-worker 应用

  1. 双击桌面的 应用中心 图标,进入应用中心主界面.

  2. 点击 lotus-ap-worker 应用图标下的 添加 按钮.

  3. 添加完成之后桌面上会多出一个 lotus-ap-worker 应用图标(如果没有请刷新页面).

# 6.3 配置 lotus-ap-worker 应用

  1. 双击桌面的 lotus-ap-worker 应用,进入应用主界面.

  2. 点击 应用配置 标签栏,再点击 编辑 按钮.

  3. 修改配置,你只需要修改一下配置项,其他的就直接使用默认值就好了。

    • AMD版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/lotus-worker

    • Intel版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/intel/lotus-worker

    • worker自身api内网IP地址: 下面表达式会自动帮你选中本机的第一个万兆网卡的 IP.

      $(this.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)`
      
    • miner机器api内网IP地址:

      $(#miner_id.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)
      

      你需要把 miner_id 改成你的 miner 节点的 node_id如何获取节点 node_id

      当然,如果你嫌麻烦,你也可以直接把上面的表达式改成你 miner 节点的 IP 地址,请保证这个 IP 必须能跟 Worker 通信。

    • 最大AddPieces并行数: 4,建议使用默认值就可以了.

    • 集群机器名字: ap-$(this.data:name#replace(-,)),在 Worker 列表中显示的名字,如果你的节点名称命名规范的话,这里可以直接使用默认值,无需修改。如果深入了解上述表达式的配置语法,请先阅读 应用配置参数解析

# 6.4 安装 lotus-ap-worker 应用

推荐您将 lotus-ap-worker 应用安装在 C2-Worker 机器上.

  1. 回到 节点预览 页面,点击 点此一键安装 按钮.

  2. 在节点选择下拉框中选择 自定义节点.

  3. 勾选你想要安装应用的节点,如果节点过多你可以搜索节点名称对节点进行筛选,如果你不知道该安装到哪台机器,请参考 Worker2(证明机)

    或者联系原语云客服咨询.

  4. 点击 安装 按钮.

  5. 开始安装完成之后 节点预览 界面会多出一条记录,"状态" 这一栏会同步显示安装进度,安装完成之后会显示启动按钮.

    @Note: 安装完成之后,你的节点上会多一个 yy_lotus-ap-worker 命令,你可以通过在终端 yy 一下,再按 Tab 键唤出该命令。

# 6.5 启动 lotus-ap-worker 应用

应用有两种启动方式:

  1. 启动单个节点:直接选择对应的节点,点击状态栏的 启动 图标.
  2. 批量启动节点:选中节点左侧的复选框,然后点击 批量操作 下拉菜单,点击 启动 按钮.

如下图所示:

启动成功之后会返回应用的进程ID,同时应用的状态也会变成 运行中.

# 6.6 确认 Worker 连接

等待所有的 worker 启动完成之后,在 miner 节点上运行以下命令,查看 worker 列表:

yy_lotus-miner sealing worker list |grep host

确认以下列表中是否有你刚刚启动的 worker,你也可以直接通过 worker-name 过滤结果:

yy_lotus-miner sealing worker list |grep host |grep ap-

# 07-启动 lotus-p1-worker

# 7.1 初始化机器

  1. 安装 lotus 运行依赖
  2. 安装 GPU 驱动
  3. 格式化并挂载磁盘

# 7.2 添加 lotus-p1-worker

  1. 双击桌面的 应用中心 图标,进入应用中心主界面.

  2. 点击 lotus-p1-worker 应用图标下的 添加 按钮.

  3. 添加完成之后桌面上会多出一个 lotus-p1-worker 应用图标(如果没有请刷新页面).

# 7.3 配置 lotus-p1-worker

  1. 双击桌面的 lotus-p1-worker 应用,进入应用主界面.

  2. 点击 应用配置 标签栏,再点击 编辑 按钮.

  3. 修改配置,你只需要修改一下配置项,其他的就直接使用默认值就好了。

    • AMD版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/lotus-worker

    • Intel版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/intel/lotus-worker

    • worker自身api内网IP地址: 下面表达式会自动帮你选中本机的第一个万兆网卡的 IP.

      $(this.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)`
      
    • miner机器api内网IP地址:

      $(#miner_id.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)
      

      你需要把 miner_id 改成你的 miner 节点的 node_id如何获取节点 node_id

      当然,如果你嫌麻烦,你也可以直接把上面的表达式改成你 miner 节点的 IP 地址,请保证这个 IP 必须能跟 Worker 通信。

    • 最大PreCommit1并行数: 根据机器配置灵活调整,1TiB 内存可以并行 12个 PC1, 512G 内存可以并行 6 个 PC1 任务.

    • 集群机器名字: p1-$(this.data:name#replace(-,)),在 Worker 列表中显示的名字,如果你的节点名称命名规范的话,这里可以直接使用默认值,无需修改。如果深入了解上述表达式的配置语法,请先阅读 应用配置参数解析

# 7.4 安装 lotus-p1-worker

  1. 回到 节点预览 页面,点击 点此一键安装 按钮.

  2. 在节点选择下拉框中选择 自定义节点.

  3. 勾选你想要安装应用的节点,如果节点过多你可以搜索节点名称对节点进行筛选,如果你不知道该安装到哪台机器,请参考 Worker1(算力机)

    或者联系原语云客服咨询.

  4. 点击 安装 按钮.

  5. 开始安装完成之后 节点预览 界面会多出一条记录,"状态" 这一栏会同步显示安装进度,安装完成之后会显示启动按钮.

    @Note: 安装完成之后,你的节点上会多一个 yy_lotus-p1-worker 命令,你可以通过在终端 yy 一下,再按 Tab 键唤出该命令。

# 7.5 启动 lotus-p1-worker

应用有两种启动方式:

  1. 启动单个节点:直接选择对应的节点,点击状态栏的 启动 图标.
  2. 批量启动节点:选中节点左侧的复选框,然后点击 批量操作 下拉菜单,点击 启动 按钮.

如下图所示:

启动成功之后会返回应用的进程ID,同时应用的状态也会变成 运行中.

# 7.6 确认 Worker 连接

等待所有的 worker 启动完成之后,在 miner 节点上运行以下命令,查看 worker 列表:

yy_lotus-miner sealing worker list |grep host

确认以下列表中是否有你刚刚启动的 worker,你也可以直接通过 worker-name 过滤结果:

yy_lotus-miner sealing worker list |grep host |grep p1-

# 08-启动 lotus-p2-worker

# 8.1 初始化机器

提示

lotus-p1-workerlotus-p2-worker 通常都装在同一台物理机上,所以如果你在上面的步骤中已经把机器初始化了, 那么这一步的机器初始化可以直接跳过。

  1. 安装 lotus 运行依赖
  2. 安装 GPU 驱动
  3. 格式化并挂载磁盘

# 8.2 添加 lotus-p2-worker

  1. 双击桌面的 应用中心 图标,进入应用中心主界面.

  2. 点击 lotus-p2-worker 应用图标下的 添加 按钮.

  3. 添加完成之后桌面上会多出一个 lotus-p2-worker 应用图标(如果没有请刷新页面).

# 8.3 配置 lotus-p2-worker

  1. 双击桌面的 lotus-p2-worker 应用,进入应用主界面.

  2. 点击 应用配置 标签栏,再点击 编辑 按钮.

  3. 修改配置,你只需要修改一下配置项,其他的就直接使用默认值就好了。

    • AMD版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/lotus-worker

      提示

      如果你启动多个 PC2 进程,而且指定共享同一个 GPU 的计算资源的话,请使用 OpenCL 版本的 lotus-worker 程序: http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/opencl/lotus-worker

    • Intel版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/intel/lotus-worker

    • worker自身api内网IP地址: 下面表达式会自动帮你选中本机的第一个万兆网卡的 IP.

      $(this.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)`
      
    • miner机器api内网IP地址:

      $(#miner_id.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)
      

      你需要把 miner_id 改成你的 miner 节点的 node_id如何获取节点 node_id

      当然,如果你嫌麻烦,你也可以直接把上面的表达式改成你 miner 节点的 IP 地址,请保证这个 IP 必须能跟 Worker 通信。

    • 最大PreCommit2并行数: 建议使用默认值 1 个就好了.

    • 集群机器名字: p2-$(this.data:name#replace(-,)),在 Worker 列表中显示的名字,如果你的节点名称命名规范的话,这里可以直接使用默认值,无需修改。如果深入了解上述表达式的配置语法,请先阅读 应用配置参数解析

# 8.4 安装 lotus-p2-worker

  1. 回到 节点预览 页面,点击 点此一键安装 按钮.

  2. 在节点选择下拉框中选择 自定义节点.

  3. 勾选你想要安装应用的节点,如果节点过多你可以搜索节点名称对节点进行筛选,如果你不知道该安装到哪台机器,请参考 Worker1(算力机)

    或者联系原语云客服咨询.

  4. 点击 安装 按钮.

  5. 开始安装完成之后 节点预览 界面会多出一条记录,"状态" 这一栏会同步显示安装进度,安装完成之后会显示启动按钮.

    @Note: 安装完成之后,你的节点上会多一个 yy_lotus-p2-worker 命令,你可以通过在终端 yy 一下,再按 Tab 键唤出该命令。

# 8.5 启动 lotus-p2-worker

应用有两种启动方式:

  1. 启动单个节点:直接选择对应的节点,点击状态栏的 启动 图标.
  2. 批量启动节点:选中节点左侧的复选框,然后点击 批量操作 下拉菜单,点击 启动 按钮.

如下图所示:

启动成功之后会返回应用的进程ID,同时应用的状态也会变成 运行中.

# 8.6 确认 Worker 连接

等待所有的 worker 启动完成之后,在 miner 节点上运行以下命令,查看 worker 列表:

yy_lotus-miner sealing worker list |grep host

确认以下列表中是否有你刚刚启动的 worker,你也可以直接通过 worker-name 过滤结果:

yy_lotus-miner sealing worker list |grep host |grep p2-

# 09-启动 lotus-c2-worker

# 9.1 初始化机器

提示

lotus-ap-workerlotus-c2-worker 通常都装在同一台物理机上,所以如果你在上面的步骤中已经把机器初始化了, 那么这一步的机器初始化可以直接跳过。

  1. 安装 lotus 运行依赖
  2. 安装 GPU 驱动
  3. 格式化并挂载磁盘

# 9.2 添加 lotus-c2-worker

  1. 双击桌面的 应用中心 图标,进入应用中心主界面.

  2. 点击 lotus-c2-worker 应用图标下的 添加 按钮.

  3. 添加完成之后桌面上会多出一个 lotus-c2-worker 应用图标(如果没有请刷新页面).

# 9.3 配置 lotus-c2-worker

  1. 双击桌面的 lotus-c2-worker 应用,进入应用主界面.

  2. 点击 应用配置 标签栏,再点击 编辑 按钮.

  3. 修改配置,你只需要修改一下配置项,其他的就直接使用默认值就好了。

    • AMD版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/amd/lotus-worker

    • Intel版本下载地址: 改成你自己的内网下载地址,如:http://192.168.100.103:17181/lotus/1.15.1/20220506/intel/lotus-worker

    • worker自身api内网IP地址: 下面表达式会自动帮你选中本机的第一个万兆网卡的 IP.

      $(this.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)`
      
    • miner机器api内网IP地址:

      $(#miner_id.stat:network.in_addr@^(192|172|10).speed>9999.0.in_addr)
      

      你需要把 miner_id 改成你的 miner 节点的 node_id如何获取节点 node_id

      当然,如果你嫌麻烦,你也可以直接把上面的表达式改成你 miner 节点的 IP 地址,请保证这个 IP 必须能跟 Worker 通信。

    • IPFS_GATEWAY 环境变量: 从官网下载参数超级慢,这个参数是用来加速复制证明参数下载的,由于我们之前已经把参数下载到 Miner 机器上了,因此这里我们配置成从 Miner 节点直接下载就行了。

      # 默认值
      http://127.0.0.1:17181/api/lotus/proof/parameters/get/
      # 你只需要把 127.0.0.1 改成你的 Miner 节点的万兆口的 IP 地址即可,例如:
      http://172.17.1.155:17181/api/lotus/proof/parameters/get/
      
    • 最大 Commit 并行数: 默认值 1,建议修改成机器 GPU 的数量,比如你有 3 个 GPU,那么这里你就修改为 3.

    • 集群机器名字: c2-$(this.data:name#replace(-,)),在 Worker 列表中显示的名字,如果你的节点名称命名规范的话,这里可以直接使用默认值,无需修改。如果深入了解上述表达式的配置语法,请先阅读 应用配置参数解析

# 9.4 安装 lotus-c2-worker

  1. 回到 节点预览 页面,点击 点此一键安装 按钮.

  2. 在节点选择下拉框中选择 自定义节点.

  3. 勾选你想要安装应用的节点,如果节点过多你可以搜索节点名称对节点进行筛选,如果你不知道该安装到哪台机器,请参考 Worker2(证明机)

    或者联系原语云客服咨询.

  4. 点击 安装 按钮.

  5. 开始安装完成之后 节点预览 界面会多出一条记录,"状态" 这一栏会同步显示安装进度,安装完成之后会显示启动按钮.

    @Note: 安装完成之后,你的节点上会多一个 yy_lotus-c2-worker 命令,你可以通过在终端 yy 一下,再按 Tab 键唤出该命令。

# 9.5 启动 lotus-c2-worker

应用有两种启动方式:

  1. 启动单个节点:直接选择对应的节点,点击状态栏的 启动 图标.
  2. 批量启动节点:选中节点左侧的复选框,然后点击 批量操作 下拉菜单,点击 启动 按钮.

如下图所示:

启动成功之后会返回应用的进程ID,同时应用的状态也会变成 运行中.

提示: 由于 lotus-c2-worker 在启动的时候需要下载参数,所以启动的过程会比较慢。如果你同时启动了很多台 c2-worker 那么相应的启动时间会更长。

# 9.6 确认 Worker 连接

等待所有的 worker 启动完成之后,在 miner 节点上运行以下命令,查看 worker 列表:

yy_lotus-miner sealing worker list |grep host

确认以下列表中是否有你刚刚启动的 worker,你也可以直接通过 worker-name 过滤结果:

yy_lotus-miner sealing worker list |grep host |grep c2-

# 10-启动自动质押

lotus-smart-pledge 是一款小工具,会自动获取当前和最大的AP/P1/P2/C2的数量,按照指定的频率进行质押,并且可以控制空闲等待时间。智能监控网络实时 Gas 费,当 Gas 高于设置的阈值时自动停止质押。

# 10.1 添加 lotus-smart-pledge

  1. 双击桌面的 应用中心 图标,进入应用中心主界面.

  2. 点击 lotus-smart-pledge 应用图标下的 添加 按钮.

  3. 添加完成之后桌面上会多出一个 lotus-smart-pledge 应用图标(如果没有请刷新页面).

# 10.2 配置 lotus-smart-pledge

  1. 双击桌面的 lotus-smart-pledge 应用,进入应用主界面.

  2. 点击 应用配置 标签栏,再点击 编辑 按钮.

  3. 修改配置,新手使用默认值就行了。如果要改,只需要改一下 质押间隔(s) 这个配置项,你算力机器越多,这个值要设置的越小。

    具体算法是这样的:

    集群每日封装的扇区数量(T)= 所有 PC1 机器每天做的 PC1 任务的总和
    PC1=PC1 并行数
    PC1_TIME=单个 PC1 任务耗时,约 3.5h
    T = SUM($PC1 x (24 / $PC1_TIME)
    V = 86400 / $T
    

# 10.3 安装 lotus-smart-pledge

  1. 回到 节点预览 页面,点击 点此一键安装 按钮.

  2. 在节点选择下拉框中选择 自定义节点.

  3. 勾选你想要安装应用的节点,如果节点过多你可以搜索节点名称对节点进行筛选,如果你不知道该安装到哪台机器,请参考

    或者联系原语云客服咨询.

  4. 点击 安装 按钮.

  5. 开始安装完成之后 节点预览 界面会多出一条记录,"状态" 这一栏会同步显示安装进度,安装完成之后会显示启动按钮.

    @Note: 安装完成之后,你的节点上会多一个 yy_lotus-smart-pledge 命令,你可以通过在终端 yy 一下,再按 Tab 键唤出该命令。

# 10.3 启动 lotus-smart-pledge

点击应用状态栏的 启动 图标,即可启动 lotus-smart-pledge 应用。

# 10.4 确认启动成功

我们查看一下是否有 AP 任务正在运行:

yy_lotus-miner sealing jobs |grep AP

你也可以直接查看运行日志,日志路径为: /yuanyun/lotus-smart-pledge/log/info.log 有类似下面输出,则说明启动成功.

[2021-04-24T13:37:32] +-Try to get the sealing workers stat list ...
[2021-04-24T13:37:32] Worker 31807f8b-35b9-4241-a5cf-1e44f0208b77, Qark 6954189237054079254, host miner
[2021-04-24T13:37:32] 6954189237054079254: {AP:{0 0 0 0}, P1:{0 0 0 0}, P2:{0 0 0 0}, C2:{0 0 0 0}}
[2021-04-24T13:37:32] Worker 32fa17af-0a77-47a3-9c7
[2021-04-24T13:37:32] Worker f02eab50-7717-451a-997f-37cd6289fe89, Qark 6954189273690800406, host p1-worker1
[2021-04-24T13:37:32] 6954189273690800406: {AP:{0 0 0 0}, P1:{0 0 0 12}, P2:{0 0 0 0}, C2:{0 0 0 0}}
[2021-04-24T13:37:32] +-Try to get the cluster workers stat ...
[2021-04-24T13:37:32] Checking gworker(1 workers) 6954189237054079254 ...
[2021-04-24T13:37:32] 6954189237054079254: {AP:{0 0 0 0}, P1:{0 0 0 0}, P2:{0 0 0 0}, C2:{0 0 0 0}}
[2021-04-24T13:37:32] Checking gworker(3 workers) 6954246163020644630 ...
[2021-04-24T13:37:32] 6954189273690800406: {AP:{0 0 0 0}, P1:{0 0 0 12}, P2:{0 0 0 2}, C2:{0 0 0 0}}
[2021-04-24T13:37:32] |-done with map_len=5, list_len=5
[2021-04-24T13:37:32] |-cleared with map_len=0, list_len=0
[2021-04-24T13:37:32] : {AP:{0 0 0 0}, P1:{0 0 0 18}, P2:{0 0 0 4}, C2:{0 0 0 1}}

# 11-集群基础运维

恭喜您,您已经完成了集群的搭建,您现在可以去 lotus 基础运维教程 开启您集群运维之旅了O(∩_∩)O~

上次更新: 2022/5/7 12:58:14