# 快速启用
# 准备工作
安装必要的第三方库。
这一部分可以参考
lotus
文档中的相应部分 Software dependencies (opens new window)。下载代码库
git clone https://github.com/ipfs-force-community/damocles.git
编译
damocles
的组件cd damocles make all
完成后,在
./dist/bin
目录下会有damocles-worker
和damocles-manager
两个可执行文件。分发可执行文件到需要的机器上。
将
./damocles-worker/create-cgroup.sh
分发到damocles-worker
所在的机器上,并以准备运行damocles-worker
的系统用户身份执行。这会为这样的用户生成相应的
cgroup
组,以便damocles-worker
为其外部执行器进程分配硬件资源。
# 生产模式
# damocles-manager
初始化工作目录
./dist/bin/damocles-manager daemon init
按需配置默认配置文件
~/.damocles-manager/sector-manager.cfg
配置项、作用、配置方法可以参考文档 damocles-manager 的配置解析。
创建矿工号(可选;如果已有,可略过此步骤)
$ ./damocles-manager util miner create \ --from=<OWNER_ADDRESS> \ --owner=<OWNER_ADDRESS> \ --worker=<WORKER_ADDRESS> \ --sector-size=32GiB
会得到如下返回值。
miner actor: f0xxx9 (f2drcv6746m5ehwxxxxxy)
结果中的
miner actor f0xxx9
就是创建的 miner id。注意⚠️:--from 地址要保证有足够的余额,保证上链成功。
启动
damocles-manager
./dist/bin/damocles-manager daemon run
注意⚠️:如果要开启 winningPost,配置文件的
Miners.Proof.Enabled
字段和启动的 flag--miner
需要同时设置为 true。要开启 windowPost 的话,配置文件的Miners.PoSt.Enabled
和启动 flag--poster
也需要同时设置为 true。
# damocles-worker
创建
sealing_thread.location
父级目录,damocles-worker 在启动时会自动初始化每个sealing_thread.location
目录。(可选) 下载计算参数文件
./dist/bin/damocles-manager util fetch-params 512MiB
规划用于各阶段的 CPU 核、numa 区域等配置。
按需完成配置文件。
配置项、作用、配置方法可以参考文档 damocles-worker 的配置解析。
启动
damocles-worker
./dist/bin/damocles-worker daemon -c /path/to/damocles-worker.toml
# Mock 模式 (开发人员使用)
默认情况下,可以通过一系列命令在单机上启动一组 mock
实例。
# damocles-manager
通过
./dist/bin/damocles-manager mock --miner=10000 --sector-size=2KiB
命令启动一个模拟为 Actor 为 t010000
的 SP
分配 2KiB 扇区的 damocles-manager
服务。
这一步骤也可以通过代码目录中的 ./mock/start_manager.sh
脚本完成。
# damocles-worker
创建并初始化本地存储,初始化远程存储
./dist/bin/damocles-worker store sealing-init -l ./mock-tmp/store1 ./mock-tmp/store2 ./mock-tmp/store3 ./dist/bin/damocles-worker store file-init -l ./mock-tmp/remote
这一步骤也可以通过代码目录中的
./mock/cleanup_store.sh
脚本完成。以
mock
配置启动damocles-worker
./dist/bin/damocles-worker daemon -c ./damocles-worker/assets/damocles-worker.mock.toml
这一步骤也可以通过代码目录中的
./mock/start_worker.sh
脚本完成。