要成为一个合格的验证者,不仅仅是运行节点和建立部署质押资金池合约,还要时常维护,保持节点的平稳运行。
检查验证者节点状态
验证者节点席位一共有100个,因此要经常查询,确保自己是否在验证者席位中。只有在验证者席位中,才能作为验证者生产区块,进而获得奖励。大致有以下几种方式和途径:
1.在区块浏览器上查询。浏览器地址 https://explorer.betanet.near.org/
输入自己的验证者账号就可以查询
2.用near-cli 进行相关的查询
near validators current 查询当前验证者列表
near validators next 查询下一个epoch验证者列表
near validators next | grep stakingPool_ID 查看你在下一个epoch是否还在验证者列表中。stakingPool_ID为你的验证者账户名
near validators next | grep 'seat price' 查询成为验证者所需要的币数,这个数量是动态的,系统自动调整的
near state stakingPool_ID 可以查看自己锁仓的质押币数,如果小于成为验证者所需要的币数,记得及时补仓。
near view my_validator get_total_staked_balance '{}' 查看当前总共质押状态的币数
3.检查nearup 日志
在节点运行状态下,用nearup logs 可以查看最近的日志。 用nearup logs --follow 持续显示日志。如果日志里面有形如 V/82 的符号,V代表你已经成为82名验证者中的一员。如果你已经被踢出了验证者, 就会出现形如 -/75 的符号,意思是当前验证者有75人,但是你自己不是验证者。
4.用JSON RPC 查询
curl -d '{"jsonrpc": "2.0", "method": "validators", "id": "dontcare", "params": [null]}' -H 'Content-Type: application/json' https://rpc.betanet.near.org -v | jq
温馨提示
1.如果你的验证者节点因为网络原因掉线了,不在验证者名单中了,使用
near call my_validator ping '{}' --accountId user1 刷新状态。 记得把my_validator和user1替换成你自己的信息
2.如果由于版本升级或者更换电脑等原因,导致.near文件中的validator_key.json发生了改变,记得要及时升级公钥,否则不能生产区块:
使用 cat .near/betanet/validator_key.json | grep "account_id\|public_key"
查看当前最新的公钥,并且与
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 ("你自己的验证者账户名"))'
对比,如果不一致,使用如下命令更新公钥:
near call <你自己的验证者账户名> update_staking_key '{"stake_public_key":"ed25519:......你自己的新公钥.................."}' --accountId <你的betanet钱包名>