在之前的一系列内容中,我们假设你的服务器中已经安装了 near-shell 并且可以使用near执行一些相关的命令,例如:near --version (查看near版本)。下面我们来介绍在NEAR网络中,当你成功当选为验证人之后,使用哪些方法可以查看与验证人相关的Stake数据,并且进行及时的调整。
查看NEAR验证人的Stake状态
查询验证人状态的方法有两种,一种是通过命令行,一种是通过RPC的方法,以下是两个查询方法对应的执行方法:
查询当前Epoch的验证人Stake状态
1、命令行查询方法
near validators current | awk '/<POOL_ID>/ {print $4}'
near validators current 显示当前Epoch所有当选的验证人
awk '/<POOL_ID> {print $4}' 对显示的结果进行过滤并打印Stake的数量
2、RPC查询方法
curl -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' https://rpc.betanet.near.org | jq -c '.result.current_validators[] | select(.account_id | contains ("<POOL_ID>"))' | jq .stake
"method": "validators" 方法使用是验证人
jq -c '.result.current_validators 使其只显示当前Epoch
select(.account_id | contains ("<POOL_ID>"))' 验证人名称过滤
PS: 需要注意的是使用RPC查访的方法显示的是10x24的显示单位。
查询之后Epoch的验证人Stake状态
1、命令行查询方法
near validators next | grep "Kicked out" | grep "<POOL_ID>"
Kicked out 代表着在下个Epoch,验证人将会无法进入验证人集,所以由此可知,如果上面的结果不为空,那么就意味着你的验证人将在下个Epoch不会入选验证人集。
或者使用下面的命令:
near proposals | grep "Rollover" | grep "<POOL_ID>"
Rollover 代表着在下下个Epoch,验证人是入选状态,所以由此可以知,如果上面的结果不为空,那么意味着你的验证人人下下个Epoch一直会是在验证人集当中。
2、RPC查询方法
curl -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' https://rpc.betanet.near.org | jq -c '.result.next_validators[] | select(.account_id | contains ("<POOL_ID>"))'
<POOL_ID> 替换成验证人ID,如果结果不为空,意味着你的验证人在下个Epoch会入选验证人集。
curl -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' https://rpc.betanet.near.org | jq -c '.result.prev_epoch_kickout[] | select(.account_id | contains ("<POOL_ID>"))' | jq .reason
使用上边的命令,查询验证人没有入选验证人集的原因。
查看当前Epoch信息及验证集最低票价
使用下面的命令查询NEAR当前网络的块高:
curl https://rpc.betanet.near.org/status | jq .sync_info.latest_block_height
使用下面的命令查询当前Epoch的起使块:
curl -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' https://rpc.betanet.near.org | jq .result.epoch_start_height
你可以通过 以前两个命令的结果计算出本轮Epoch还剩余多少块完成。
使用下面的命令查看当前Epoch的验证集最低票价:
near validators current | awk '/price/ {print substr($6, 1, length($6)-2)}'
使用下面的命令查看下一个Epoch的验证集最低票价
near validators next | awk '/price/ {print substr($7, 1, length($7)-2)}'
使用下面的命令查看下下个Epoch的验证集最低票价
near proposals | awk '/price =/ {print substr($15, 1, length($15)-1)}'
调整NEAR验证人的Stake数量
通过上面的信息你可以知道如何对Stake进行调整,以此可以进入NEAR的验证人集了,使用下面的命令可以对委托的Stake数量进行调整:
near call <POOL_ID> stake '{"amount": "<STAKE_AMOUNT>"}' --accountId <WARCHEST_ID>
<POOL_ID> 矿池ID
<STAKE_AMOUNT> 委托/解委托的数量
<WARCHEST_ID> 委托者账号
通过上面的方法,相信你就可以跟据实际的情况对自己的验证人Stake数量进行有效管理了。