考虑到庞大的初始硬件和Filecoin质押投资以及相关的运营成本,开始Filecoin挖掘是一项艰巨的任务。 囊括了安全性、易用性和分布式存储池的想法,Venus将帮助存储提供者,正如社区所说,把全职工作变成为一个严肃的爱好。 希望本教程能让您立即开始挖矿!
有两种方法可以开始使用Venus来提供存储服务。
- 部署最少的硬件并获得对第三方托管的共享venus模块的使用帐号。(本教程的其余部分将引导您完成这种部署Venus服务的方式)
- 自行部署所有需要的硬件和venus模块。(请参阅这个教程以了解更多信息)
在遵循其余的教程和成功部署后,您可以开始封装扇区,增加算力并通过您对网络存储容量的贡献最终获得区块奖励!
根据其在挖矿集群中的作用,模块可以大致分为两类:共享和独立。 共享模块可以被认为是开始封装扇区所需的基础。 大多数与区块链的交互,如链同步、发送消息、赢得赢票等,都是由共享模块处理的。 这个想法是许多矿工都可以共用一组共享模块,从而减少维护成本。 独立模块处理封装和证明您的扇区。如果您选择使用第三方托管的共享Venus模块,您将花费大部分时间在独立模块上。 另请注意,venus-wallet
模块可以作为共享或独立部署。
name | role | shared/independent |
---|---|---|
venus | daemon for chain interactions | shared |
venus-miner | block winning and proving | shared |
venus-messager | chain message management | shared |
venus-auth | utility for authorized use of shared modules | shared |
venus-gateway | utility for controlled access point of shared modules | shared |
venus-wallet | addresses/keys management | shared/independent |
venus-sealer, venus-worker | job scheduling, sealing and proving | independent |
下图展示了venus模块如何相互交互。
在此处了解有关硬件要求的更多信息。或者参阅我们的单机配置示例。
在深入部署您的挖矿操作之前,请确保您已完成以下步骤。
:::warning
建议您在部署到主网上之前在nerpa
或calibration
网络中测试您的配置。
:::
选择您熟悉的网络文件系统(例如 NFS)并部署您的存储集群。
有两种方法可以配置您的帐户。
如果您尝试连接到第三方托管的共享venus模块,联系上述服务的管理员并让他们为您设置。
:::tip
venus-wallet 可以部署为共享或独立模块,具体取决于您的安全要求。
:::
如果您是托管共享 venus 模块的管理员,请使用以下命令注册各个集群。
# 如果已有节点号
$ ./venus-auth user add --name <ACCOUNT_NAME> --miner <MINER_ID>
# 没有节点号,在创建节点号后更新
$ ./venus-auth user add --name <ACCOUNT_NAME>
$ ./venus-auth user update --name <ACCOUNT_NAME> --miner <MINER_ID>
# 为此账号分配token,用于接入服务层验证
$ ./venus-auth token gen --perm write <ACCOUNT_NAME>
<AUTH_TOKEN_FOR_ACCOUNT_NAME>
在运行 venus 之前,您需要安装以下软件。
Ubuntu/Debian:
sudo apt install mesa-opencl-icd ocl-icd-opencl-dev gcc git bzr jq pkg-config curl clang build-essential hwloc libhwloc-dev wget -y && sudo apt upgrade -y
CentOS:
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm; sudo yum install -y git gcc bzr jq pkgconfig clang llvm mesa-libGL-devel opencl-headers ocl-icd ocl-icd-devel hwloc-devel
安装rustup。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
构建venus,您需要安装Go 1.16 或更高版本。
wget -c https://golang.org/dl/go1.16.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local
将 /usr/local/go/bin
添加到您的路径并设置go env
。对于大多数Linux系统,您可以运行以下内容:
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc && source ~/.bashrc
# setup go env
go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on
如果卡住,请参阅官方Golang安装说明。
下载并编译Venus-wallet
的源代码。
- 首次编译
$ git clone https://github.com/filecoin-project/venus-wallet.git
# change directory to venus-wallet
$ cd venus-wallet
$ git checkout -b incubation origin/incubation
$ make
- 曾经成功编译过
# change directory to venus-wallet,switch to the incubation branch
$ git fetch
$ git pull
在后台运行venus-wallet
模块。
$ nohup ./venus-wallet run > wallet.log 2>&1 &
:::tip
使用 tail -f wallet.log
来监控钱包日志。
:::
为您的venus-wallet
设置密码
$ ./venus-wallet setpwd
Password:******
Enter Password again:******
Password set successfully
:::warning
请备份您的密码并妥善保存,否则你将无法使用wallet相关的功能。每次venus-wallet run启动时带--password标志会自动解锁钱包,如果没带,在wallet实例启动后你需要手动解锁:
$ ./venus-wallet unlock
Password:
# 查看解锁状态
$ ./venus-wallet lock-state
wallet state: unlocked
在扇区封装的过程中需要调用wallet进行签名,如果不解锁,会导致签名失败,进而导致扇区任务失败.
:::
生成owner和worker地址。(如果您没有现有的miner ID)
$ ./venus-wallet new bls
<OWNER_ADDRESS>
$ ./venus-wallet new bls
<WORKER_ADDRESS>
:::tip
如果您在Nerpa
或Calibration
上进行测试,则必须使用来自水龙头的测试币为您的所有地址提供资金。 对于 nerpa,请使用此水龙头。对于校准网,请使用此水龙头。
:::
配置venus-wallet接入共享服务,使用您从共享模块管理员处获得的帐号信息更改 ~/.venus_wallet/config.toml
中的[APIRegisterHub]
部分
[APIRegisterHub]
RegisterAPI = ["/ip4/<IP_ADDRESS_OF_VENUS_GATEWAY>/tcp/45132"]
Token = "<AUTH_TOKEN_FOR_ACCOUNT_NAME>"
SupportAccounts = ["<ACCOUNT_NAME>"]
重新启动venus-wallet
以使更改生效。
# grep [PID] of venus-wallet process
$ ps -ef | grep wallet
# kill the process and restart
$ kill [PID]
$ nohup ./venus-wallet run > wallet.log 2>&1 &
如成功连接 venus-gateway
,您将看到以下日志。
2021-07-12T15:14:12.457+0800 INFO wallet_event wallet_event/listenevent.go:197 connect to server fcf714b2-eeb6-498b-aafc-5e58eccd9d0f {"api hub": "/ip4/<IP_ADDRESS>/tcp/45132"}
:::tip
建议使用systemd
或supervisord
等线程控制。
:::
下载并编译venus-sealer
的源代码。
- 首次编译
$ git clone https://github.com/filecoin-project/venus-sealer.git
$ cd venus-sealer
$ git checkout -b incubation origin/incubation
# specify source compilation
export RUSTFLAGS="-C target-cpu=native -g"
export FFI_BUILD_FROM_SOURCE=1
$ make deps
$ make
源码编译也可以
$ RUSTFLAGS="-C target-cpu=native -g" FFI_BUILD_FROM_SOURCE="1" make deps
- 曾经成功编译过
$ git fetch
$ git pull
# Update and compile filecoin-ffi, if filecoin-ffi has not changed, no need to execute
$ git submodule update --init --recursive
$ make clean
$ make deps
$ make
:::warning
- 确保编译时使用
RUSTFLAGS="-C target-cpu=native -g" FFI_BUILD_FROM_SOURCE="1"
源码编译filecoin-ffi库,如果cpu支持则启用SHA扩展,这会大幅提高扇区封装速度,源码编译(make deps)时特征如下:
+ trap '{ rm -f $__build_output_log_tmp; }' EXIT
+ local '__rust_flags=--print native-static-libs -C target-feature=+sse2'
+ RUSTFLAGS='--print native-static-libs -C target-feature=+sse2'
+ cargo +nightly-2021-04-24 build --release --no-default-features --features multicore-sdr --features pairing,gpu
+ tee /tmp/tmp.IYtnd3xka9
Compiling autocfg v1.0.1
Compiling libc v0.2.97
Compiling cfg-if v1.0.0
Compiling proc-macro2 v1.0.27
Compiling unicode-xid v0.2.2
Compiling syn v1.0.73
Compiling lazy_static v1.4.0
Compiling cc v1.0.68
Compiling typenum v1.13.0
Compiling serde_derive v1.0.126
Compiling serde v1.0.126
:::
:::tip
如果您是第一次运行sealer,它会开始下载证明参数,这可能需要相当长的时间。如果您确认已下载proof params
,可使用TRUST_PARAMS=1
跳过下载逻辑执行。如果您位于中国,请按照提示此处加快流程。
:::
如果您还没有miner-id,请运行以下命令来初始化sealer。请确保<OWNER_ADDRESS>
中有足够资金支付gasfee,否则init
将失败。
$ nohup ./venus-sealer \
# Leave out this flag for mainnet
--network=nerpa init \
--worker=<WORKER_ADDRESS> \
--owner=<OWNER_ADDRESS> \
# Choose between 32G or 64G for mainnet
--sector-size 512M \
# Config for different shared venus modules
--node-url=/ip4/<IP_ADDRESS_OF_VENUS>/tcp/3453 \
--messager-url=/ip4/<IP_ADDRESS_OF_VENUS_MESSAGER>/tcp/<PORT_OF_VENUS_MESSAGER> \
--gateway-url=/ip4/<IP_ADDRESS_OF_VENUS_GATEWAY>/tcp/<PORT_OF_VENUS_GATEWAY> \
--auth-token=<AUTH_TOKEN_FOR_ACCOUNT_NAME> \
# Flags sealer to not storing any sealed sectors on the machine it runs on
# You can leave out this flag if you are on testnet
--no-local-storage \
> sealer.log 2>&1 &
以下为成功创建<MINER_ID>
的日志。
2021-07-12T17:02:07.199+0800 INFO main venus-sealer/init.go:142 Initializing venus sealer
2021-07-12T17:02:07.199+0800 INFO main venus-sealer/init.go:162 Checking proof parameters
2021-07-12T17:03:35.229+0800 INFO paramfetch go-paramfetch@v0.0.2-0.20210614165157-25a6c7769498/paramfetch.go:207 parameter and key-fetching complete
2021-07-12T17:03:35.229+0800 INFO main venus-sealer/init.go:176 Trying to connect to full node RPC
2021-07-12T17:03:35.592+0800 INFO main venus-sealer/init.go:190 Checking full node sync status
2021-07-12T17:03:35.592+0800 INFO main venus-sealer/init.go:198 Checking if repo exists
2021-07-12T17:03:35.592+0800 INFO main venus-sealer/init.go:210 Checking full node version
2021-07-12T17:03:36.099+0800 INFO main venus-sealer/init.go:226 Initializing repo
2021-07-12T17:03:36.100+0800 INFO main venus-sealer/init.go:339 Initializing libp2p identity
2021-07-12T17:03:39.022+0800 INFO main venus-sealer/init.go:515 Pushed CreateMiner message: 3bfd3fc8-4f8d-45c8-86e9-5fe29a02fec0
2021-07-12T17:03:39.022+0800 INFO main venus-sealer/init.go:516 Waiting for confirmation
2021-07-12T17:07:39.184+0800 INFO main venus-sealer/init.go:532 New miners address is: <MINER_ID> (t2qgsnl5qy7sehm7u5nobkblmi2t4tuvh7flc4nqy)
2021-07-12T17:07:39.184+0800 INFO main venus-sealer/init.go:411 Created new miner: <MINER_ID>
2021-07-12T17:07:39.185+0800 INFO main venus-sealer/init.go:295 Sealer successfully created, you can now start it with 'venus-sealer run'
:::tip
init
命令会发送创建矿工消息并等待上链,可能需要等待几分钟。
:::
如果您已经有miner-id,请运行以下命令来初始化sealer。请确保<OWNER_ADDRESS>
中有足够资金支付gasfee,否则init
将失败。
$ ./venus-sealer
# Leave out this flag for mainnet
--network=nerpa init \
--actor=<MINER_ID> \
# Config for different shared venus modules
--node-url=/ip4/<IP_ADDRESS_OF_VENUS>/tcp/3453 \
--messager-url=/ip4/<IP_ADDRESS_OF_VENUS_MESSAGER>/tcp/<PORT_OF_VENUS_MESSAGER> \
--gateway-url=/ip4/<IP_ADDRESS_OF_VENUS_GATEWAY>/tcp/<PORT_OF_VENUS_GATEWAY> \
--auth-token=<AUTH_TOKEN_FOR_ACCOUNT_NAME> \
# Flags sealer to not store any sealed sectors on the machine it runs on
--no-local-storage \
> sealer.log 2>&1 &
以下为成功init日志的范例。
2021-06-07T04:15:49.170+0800 INFO main venus-sealer/init.go:193 Checking if repo exists
2021-06-07T04:15:49.170+0800 INFO main venus-sealer/init.go:205 Checking full node version
2021-06-07T04:15:49.174+0800 INFO main venus-sealer/init.go:221 Initializing repo
2021-06-07T04:15:49.175+0800 INFO main venus-sealer/init.go:334 Initializing libp2p identity
2021-06-07T04:15:49.181+0800 INFO main venus-sealer/init.go:406 Created new miner: t02105
2021-06-07T04:15:49.181+0800 INFO main venus-sealer/init.go:290 Sealer successfully created, you can now start it with 'venus-sealer run'
运行sealer。
$ nohup ./venus-sealer run > sealer.log 2>&1 &
给sealer指定临时路径(存放p1-c2阶段生成文件,sector完成后会释放)和持久存储路径(用于做winningPoSt或wdPoSt的文件需要持久保存)
$ ./venus-sealer storage attach --init --store <ABSOLUTE_PATH_OF_YOUR_PERMANENT_STORAGE>
$ ./venus-sealer storage attach --init --seal <ABSOLUTE_PATH_OF_YOUR_SEALING_STORAGE>
如果你的两个目录是相同的,那么可以一次性指定
./venus-sealer storage attach --init --store --seal <ABSOLUTE_PATH>
如果你打算只用venus-sealer封装扇区,那么seal和store路径必须都配置,缺一不可。
$ ./venus-sealer storage list
37109bd3-15cc-4821-99e8-b7af891f2e84:
[####################*** ] 4.82 TiB/10.39 TiB 46%
Unsealed: 2; Sealed: 1; Caches: 1; Reserved: 483.2 GiB
Weight: 10; Use: Seal
URL: http://127.0.0.1:3456/remote (latency: 9.1ms)
f4074188-c851-4468-820b-e138beb5f12d:
[#################### ] 4.348 TiB/10.39 TiB 41%
Unsealed: 1; Sealed: 8; Caches: 8; Reserved: 0 B
Weight: 10; Use: Seal Store
Local: /mnt/mount/litao/
URL: http://192.168.200.17:2345/remote
封装一个扇区。
$ ./venus-sealer sectors pledge
一般启动一个脚本或系统事务用于发任务,最好是相隔一段时间发一个任务。为了避免任务数过多导致系统卡顿,需要控制sector的任务上限(MaxSealingSectors)。
$ vim ~/.venussealer/config.toml
[Sealing]
...
MaxSealingSectors = 0
检查正在进行的封装工作
$ ./venus-sealer sealing
$ ./venus-sealer sealing workers
$ ./venus-sealer sealing jobs
检查扇区状态
$ ./venus-sealer sectors list
$ ./venus-sealer sectors status --log <sectorNum>
如果某个扇区因为ticket过期或别的原因无法继续做下去,你需要及时remove掉,不然会占着磁盘和任务数。
# Terminating -> TerminateWait -> TerminateFinality/TerminateFailed
$ ./venus-sealer sectors terminate --really-do-it <sectorNum>
# Removing -> RemoveFailed/Removed
$ ./venus-sealer sectors remove --really-do-it <sectorNum>
Remove和Terminate执行受限于Sealing的并发机制,有时需要很长时间,你可以尝试多次执行这两个命令加快速度。查看Sector状态:
$ ./venus-sealer sectors list
ID State OnChain Active Expiration Deals
1 Proving YES YES 2513094 (in 1 year 24 weeks) CC
2 Removed NO NO n/a CC
3 PreCommit1 NO NO n/a CC
设置发送消息的地址:
[Addresses]
PreCommitControl = [] # P2
CommitControl = [] # C2
DisableOwnerFallback = false # true 表示禁用
DisableWorkerFallback = false # true 表示禁用
P2,C2消息的from可以设置多个,但必须是miner-id相关联的,如worker,owner或controller。
在Filecoin系统中,venus-sealer可以被认为是一个带有状态管理机的venus-worker,也就是说:
sealer = worker + sector_state_manager
除了做worker具备的工作外,它有两个主要功能:
- 管理每个扇区的状态,包括分配扇区任务,处理与扇区状态变化的事件等;
- 定期执行windowPost.
因此,我们通常将耗时的任务交给venus-worker做,让sealer做windowPoSt和Sectors状态管理。这样做的好处是:venus-sealer重启后,不会影响到worker正在进行的任务,否则会导致仍无频繁重做.
- 只允许venus-sealer做AddPiece,禁止做P1, P2, C1, C2等任务,修改` ~/.venussealer/config.toml ', 然后重启.
vim ~/.venussealer/config.toml
# modify
[Storage]
ParallelFetchLimit = 10
AllowAddPiece = true
AllowPreCommit1 = false
AllowPreCommit2 = false
AllowCommit = false
AllowUnseal = false
# Restart venus-sealer after saving
-- 启动worker并指定可以接的任务类型.
$ TRUST_PARAMS=1 nohup ./venus-worker run \
--miner-addr=</ip4/sealer-ip/tcp/sealer-port> \
--miner-token=<token> \
--task-total=100 \
--bindP1P2=false \
--listen=<0.0.0.0:3458> <flags> > worker.log 2>&1 &
- sealer-port: cat ~/.venussealer/api, eg. /ip4/0.0.0.0/tcp/2345/http,把0.0.0.0替换为venus-sealer实际的IP地址.
- token: cat ~/.venussealer/token
- flags:
--addpiece enable addpiece (default: true)
--precommit1 enable precommit1 (32G sectors: 1 core, 128GiB RAM) (default: true)
--unseal enable unsealing (32G sectors: 1 core, 128GiB RAM) (default: true)
--precommit2 enable precommit2 (32G sectors: multiple cores, 96GiB RAM) (default: true)
--commit enable commit (32G sectors: multiple cores or GPUs, 128GiB RAM + 64GiB swap) (default: true)
--task-total total number of task (default: 100)
--bindP1P2 P1 and P2 phase tasks are bound to the same machine (default: false)
- task-total为可同时进行的任务数,默认100;
- bindP1P2设置为true表示这个worker的P2只能接P1也在本机器上完成的Sector任务,如果网络带宽不足,建议启动,可以减少不必要的文件传输
一般情况下,我们只为venus-worker配置seal路径,Store继承venus-sealer。worker完成扇区密封时,永久存储文件将被转移到venus-sealer指定的store路径.
$ ./venus-worker storage attach --init --seal <ABSOLUTE_LOCAL_PATH>
- TMPDIR指定worker的临时目录,比如gpu的文件锁就会生成在此路径下,worker运行在同一机器上时需要指定不同的TMPDIR,否则会竞争文件锁;
- 多个worker在同一机器同用户创建时需要指定不同的库目录,需要带repo flag,形式:
$ TRUST_PARAMS=1 nohup ./venus-worker --repo=<REPO_PATH> run \
--miner-addr=</ip4/sealer-ip/tcp/sealer-port> --miner-token=<token> \
--task-total=100 --bindP1P2=false \
--listen=<0.0.0.0:3458> <flags> > worker.log 2>&1 &
查看venus-worker状态
$ ./venus-worker info
# A worker's storage will be added to the venus-sealer storage list
$ ./venus-sealer storage list
01135ade-337a-4011-9cd8-6e85edbe08fc:
[####### ] 26.52 TiB/181.2 TiB 14%
Unsealed: 0; Sealed: 1080; Caches: 1080; Reserved: 0 B
Weight: 10; Use: Seal Store
Local: /storage-nfs/torage
URL: http://0.0.0.0:2345/remote
14142f91-6365-4b2a-ad1b-d2dd4ebd6e33:
[################### ] 4.044 TiB/10.39 TiB 38%
Unsealed: 3; Sealed: 0; Caches: 0; Reserved: 0 B
Weight: 10; Use: Seal
URL: http://192.168.200.17:3458/remote (latency: 1.2ms)
如果您的系统硬件资源足够大,或者拥有GPU等可以加快扇区密封的资源,您可以根据实际环境设置环境变量。
# MINER_API_INFO as obtained before
export TMPDIR=/fast/disk/folder3 # used when sealing
export MINER_API_INFO:<TOKEN>:/ip4/<miner_api_address>/tcp/<port>/http`
export BELLMAN_CPU_UTILIZATION=0.875 # optimal value depends on exact hardware
export FIL_PROOFS_MAXIMIZE_CACHING=1
export FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1 # when GPU is available
export FIL_PROOFS_USE_GPU_TREE_BUILDER=1 # when GPU is available
export FIL_PROOFS_PARAMETER_CACHE=/fast/disk/folder # > 100GiB!
export FIL_PROOFS_PARENT_CACHE=/fast/disk/folder2 # > 50GiB!
# The following increases speed of PreCommit1 at the cost of using a full
# CPU core-complex rather than a single core.
# See https://github.com/filecoin-project/rust-fil-proofs/ and the
# "Worker co-location" section below.
export FIL_PROOFS_USE_MULTICORE_SDR=1
venus-worker使用了一个GPU程序,在双卡3080机器上运行,程序会自动搜寻并使用0号和1号GPU卡。性能测试要求程序只运行在一张GPU卡上,但程序没有参数设置GPU的地方。 采取CUDA环境变量CUDA_VISIBLE_DEVICES来限定程序运行的GPU设备解决问题:
// CUDA_VISIBLE_DEVICES设置说明,设置device对程序可见
CUDA_VISIBLE_DEVICES=1 // 仅使用device1 (即卡一)
CUDA_VISIBLE_DEVICES=0,1 // 仅使用device 0和 device1
CUDA_VISIBLE_DEVICES="0,1" // 同上, 仅使用device 0和 device1
CUDA_VISIBLE_DEVICES=0,2,3 // 仅使用device 0, device2和device3
CUDA_VISIBLE_DEVICES=2,0,3 // 仅使用device0, device2和device3
可以通过以下变量来提升显卡GPU内存的使用率,减少P2任务的用时 FIL_PROOFS_MAX_GPU_COLUMN_BATCH_SIZE - 每次计算Column的batch大小,默认400000; FIL_PROOFS_MAX_GPU_TREE_BATCH_SIZE - 每次Encoding计算的batch大小,默认700000
// 建议值
FIL_PROOFS_MAX_GPU_COLUMN_BATCH_SIZE=8000000,FIL_PROOFS_MAX_GPU_TREE_BATCH_SIZE=8000000
这些变量的使用有两种方式:
- 在启动venus-sealer和venus-worker前 export设置,如我想开启cpu多核计算
export FIL_PROOFS_USE_MULTICORE_SDR=1
nohup ./venus-sealer run >> sealer.log 2>&1 &
- 在启动命令中使用环境变量
FIL_PROOFS_USE_MULTICORE_SDR=1 nohup ./venus-worker run >> worker.log 2>&1 &
关于GPU的使用
- C2阶段会主动搜索机器是否有可用GPU,有则使用;
- P2阶段在生成tree-c和tree-r-last阶段可以使用gpu加速,但需要在启动对应sealer或worker时配置环境变量:FIL_PROOFS_USE_GPU_COLUMN_BUILDER=1表示生成tree-r-last阶段使用GPU,FIL_PROOFS_USE_GPU_TREE_BUILDER=1表示生成tree-c阶段使用GPU。
参考文档
- https://docs.filecoin.io/mine/lotus/miner-troubleshooting/
- https://docs.filecoin.io/get-started/lotus/installation/#linux
- https://docs.filecoin.io/mine/lotus/miner-setup/#pre-requisites
- https://github.com/filecoin-project/venus-docs/blob/master/docs/zh/mine/venus/power_growth_and_maintain.md
如果你已经用lotus-miner密封了一定数量的扇区,我们建议你继续使用lotus-miner,venus社区同步维护可接入共享组件的lotus-miner:https://github.com/ipfs-force-community/lotus,对于lotus官方的每个大版本,我们会同步发布对应版本。
最新分支: force/v1.10.1_venus_pool 对应 lotus官方 Tag: v1.10.1
这个分支只是将对接共享组件的逻辑加进来,其他逻辑一切没变,你可以按照原有的习惯去执行lotus-miner。
如果集群已经有算力,转为venus-sealer后需要把旧的路径attach到venus-sealer中,以便wdPoSt和winningPoSt时能读取对应的Sector密封数据。
假设已有集群的store 目录为 /tmp/data,在venus-sealer启动后需要执行:
$ ./venus-sealer storage attach --store /tmp/data
如果想用venus-sealer创建新的store路径,那么创建后需要把旧的sector相关文件全部拷贝到新创建的store目录下。
- 在pledge前需要将sealer.db数据库metadata表中的sector_count字段改为当前链上Sector的最大值+1,否则会重复分配已经存在sector-id.
来Slack上找我们吧!