Lotus Miner: Addresses - owner/worker/control
一个矿工可以配置三个地址(Address)
,分别是owner
,worker
和control
,这些特性允许对从矿工发送和接收的资金进行管理的粒度,并为挖矿操作提供额外的安全性。
在矿工初始化期间,一个miner actor
创建在链上了,然后这个actor
给了矿工他自己的ID,miner actor
负责收集发送给矿工的所有款项。例如:当一发送一个付款以兑换不同类型的交易时,付款将支付给miner actor
,而不是矿工本身。
wallets.LotusMiner
守护程序执行网络所需的操作,并且可以使用不同Lotus节点钱包去支付费用(fees)或者与miner actor
相互作用。
矿工当前配置的地址列表可以用以下命令列出
lotus-miner actor control list
输入命令之后,与矿工相关的不同类型的地址将会列出
# owner地址(owner address)
owner
地址对应于矿工初始化 (miner initialization. )期间提供的Lotus节点地址,仅在以下情况下才会需要owner
地址(owner address)
在miner actor中更改
owner地址
或者worker地址
从 miner actor中提取余额
提交 WindowPoSts,除非定义了
control地址(control address)
并且拥有足够的余额
这个地址选为矿工的 owner address 是为了离线保存在冷存储(cold storage)
中 或者由硬件钱包 hardware wallet备份. 在生产环境中,我们强烈建议使用单独的owner address和worker address。
可以使用以下命令更新owner address:
lotus-miner actor set-owner --really-do-it <address>
旧地址和新地址必须对Lotus节点可用. 你可以 创建一个新地址或导入现有地址.
#worker地址(The worker address)
worker address通常用于由矿工执行的日常操作和发送
在链上初始化矿工
更改矿工的
peer id
或多地址multiaddresses
与市场和支付渠道参与者互动。
签署新的块.
提交证明,声明错误。如果已提交的
WindowPoSts
发生以下情况则使用worker address
-
control address
未定义或者没有足够的余额 -
owner address
没有足够的余额
与owner address不同的是,设置的矿工worker address
应该为Lotus本地钱包的一部分并且该矿工可以访问。当lotus节点连接的时候,Lotus矿工将触发所有必须的交易 。worker address
应该有相当充足的余额为日常操作支付,包括初始化。
#control 地址(Control addresses)
control addresses
可以用作向链提交WindowPoSts
证明。WindowPoSt是一种机制,通过该机制可以在Filecoin中验证存储,并要求矿工每24小时提交所有部门的证明。这些证明将作为消息提交给区块链,因此需要支付相应的费用。
许多与挖矿有关的行动都需要向链发送消息, 但是并非这些操作所有都像WindowPoSts一样高费用。 我们建议使用control addresses
以避免在拥塞的链条件下出现链头阻塞问题。(链封锁) Head-of-line blocking (opens new window)改操作是一个性能限制操作,发生在当第一个交易占用交易的一条线时。
一个Lotus miner 可以创建和配置多个control addresses
。当提交一个WindowPoSt
交易的时候,第一个被找到有足够余额支付的controll addresses
将被使用. 否则, Lotus将转换至owner
并且最终转换至worker address
设置一个 control address
:
- 创建一个新的地址,并向其发送一些
gas
资金
lotus wallet new bls
> f3defg...
lotus send --from <address> f3defg... 100
- 通知矿工的新地址:
lotus-miner actor control set --really-do-it f3defg...
> Add f3defg...
> Message CID: bafy2...
- 等消息记录在链上:
lotus state wait-msg bafy2...
> ...
> Exit Code: 0
> ...
- 检查
minen control list
并确认该地址被正确的加入
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
重复以上过程以添加其他地址
#管理余额(Managing balances)
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
这些可以用作抵押(collateral)或者为pledge支付. -
Worker
的余额是49999999.999834359275302423 FIL
.
#从矿工`Miner actor提款(Withdrawing funds from the Miner actor)
通过调用lotus-miner actor withdraw
命令将资金从Miner actor
地址转到owner address
地址
lotus-miner actor withdraw <amount>
提示:
owner's address
需要在Lotus节点中可用并且有足够的余额为这次交易支付gas
费用。 为了成功完成此操作,需要临时导入冷地址(Cold addresses)