如何查看和调整NEAR的验证人质押状态

在之前的一系列内容中,我们假设你的服务器中已经安装了 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数量进行有效管理了。