所有者地址对应于矿工初始化时提供的Lotus节点地址。仅在以下情况下才需要所有者地址:
被选为矿工所有者地址的地址被设计为离线保存中,或由硬件钱包备份。在生产环境中,我们强烈建议使用单独的owner和worker地址。
可以使用以下命令更新owner地址:
lotus-miner actor set-owner --really-do-it <address>
旧地址和新地址必须对 Lotus 节点可用。您可以创建新地址或导入现有地址。
工人地址用于发送和支付矿工执行的日常操作:
# 修改worker地址 lotus-miner actor propose-change-worker <address> lotus-miner actor confirm-change-worker <address>
与owner 地址不同,设置为矿工的worker地址的地址应该是Lotus本地钱包的一部分,矿工可以访问。Lotus Miner 将使用它所连接的 Lotus 节点触发所有必要的事务。worker 地址必须有足够的资金来支付矿工的日常运营,包括初始化。
Control 地址用于向链提交WindowPoSts证明。WindowPoSt 是在 Filecoin 中验证存储的机制,矿工要求每 24 小时提交所有扇区的证明。这些证明作为消息提交给区块链,因此需要支付相应的费用。
许多与挖矿相关的操作需要向链发送消息,但并非所有这些都像 WindowPoSts 一样具有高价值。通过使用Control 地址,您可以停止阻止一串交易的第一笔交易。这种阻塞问题称为队头阻塞。
可以创建和配置多个控制地址。将使用第一个有足够资金提交 WindowPoSt 交易的Control 地址,如果Control 地址没有足够资金,则将使用owner 地址。如果owner 地址资金不足或不可用,则将使用worker 地址提交 WindowPoSt。
lotus wallet new bls # 创建钱包 > f3defg... lotus send --from <address> f3defg... 100 # 从 <address> 转移100个币到 f3defg...
lotus-miner actor control set --really-do-it f3defg... > Add f3defg... > Message CID: bafy2...
lotus state wait-msg bafy2... > ... > Exit Code: 0 > ...
lotus-miner actor control list > name ID key use balance > owner t01111 f3abcd... other 300 FIL > worker t01111 f3abcd... other 300 FIL > control-0 t02222 f3defg... post 100 FIL
重复此过程以添加其他地址。
通过设置你的Control地址来执行预提交和提交,清理你的worker地址所需的任务。有了这个,仅从worker地址发送存储市场的消息。如果基础费用高,那么你仍然可以将sectors推送到链上,而这些消息不会被发布交易之类的东西阻止。
您需要使用 master 分支从 GitHub 构建 Lotus 才能使用此功能。
1.创建两个控制地址。控制地址可以是任何类型的地址:secp256k1 或 bls:
lotus wallet new bls > f3rht... lotus wallet new bls > f3sxs... lotus wallet list > Address Balance Nonce Default > f3rht... 0 FIL 0 X > f3sxs... 0 FIL 0
2.在这两个地址中添加一些资金。
3.等待大约 5 分钟,以便为地址分配 ID。
4.获取这些地址的 ID:
lotus wallet list -i > Address ID Balance Nonce Default > f3rht... f0100933 0.59466768102284489 FIL 1 X > f3sxs... f0100939 0.4 FIL 0
5.添加control地址:
lotus-miner actor control set --really-do-it=true f0100933 f0100939 > Add f3rht... > Add f3sxs... > Message CID: bafy2bzacecfryzmwe5ghsazmfzporuybm32yw5q6q75neyopifps3c3gll6aq lotus actor control list > name ID key use balance > owner t01... f3abcd... other 15 FIL > worker t01... f3abcd... other 10 FIL > control-0 t02... f3defg... post 100 FIL > control-1 t02... f3defg... post 100 FIL
6.将新创建的地址添加到 [Addresses] 下的矿工配置中:
[Addresses] PreCommitControl = ["f3rht..."] CommitControl = ["f3sxs..."]
7.重启 lotus-miner
通过调用 info 获取与矿工钱包关联的余额:
lotus-miner info > Miner: t01000 > Sector Size: 2 KiB > Byte Power: 100 KiB / 100 KiB (100.0000%) > Actual Power: 1e+03 Ki / 1e+03 Ki (100.0000%) > Committed: 100 KiB > Proving: 100 KiB > Below minimum power threshold, no blocks will be won > Deals: 0, 0 B > Active: 0, 0 B (Verified: 0, 0 B) > > Miner Balance: 10582.321501530685596531 FIL > PreCommit: 0.000000286878768791 FIL > Pledge: 0.00002980232192 FIL > Locked: 10582.321420164834231291 FIL > Available: 0.000051276650676449 FIL > Worker Balance: 49999999.999834359275302423 FIL > Market (Escrow): 0 FIL > Market (Locked): 0 FIL
本例中矿工ID为t01000,它的总余额为:10582.321501530685596531 FIL 和可用余额 0.000051276650676449 FIL,可以用作抵押品或支付质押。Worker 余额是:49999999.999834359275302423 FIL
通过调用actor withdraw将资金从Mineractor地址转移到owner地址:
lotus-miner actor withdraw <amount>
所有者的地址需要在 Lotus 节点中可用,并且有足够的资金来支付这笔交易的 gas。需要临时导入冷地址才能使操作成功。