NEAR Protocol验证节点启动后数据库无法同步问题咨询
NEAR主网验证节点不同步排查方案
问题背景
参考NEAR主网验证节点部署流程操作,已成功完成主网Staking Pool创建,执行命令如下:
near call poolv1.near create_staking_pool '{"staking_pool_id":"<name_of_pool>", "owner_id":"<wallet_name>.near", "stake_public_key":"ed25519:3QohztWwCktk3j3MBiCuGaB6vXxeqjUasLan6ChSnduh", "reward_fee_fraction": {"numerator": 3, "denominator": 100}}' --account_id <wallet_name>.near --amount 30 --gas 300000000000000
相关交易已上链确认,执行第三步target/release/neard run启动节点后,数据库未启动同步,已确认3030、24567端口处于监听状态,防火墙已开放对应端口,可按以下步骤排查解决:
排查步骤
- 检查节点配置文件:确认
~/.near/config.json中的chain_id为mainnet,boot_nodes配置和主网官方参数一致,没有被误改 - 校验创世文件有效性:确认初始化节点时使用的是主网创世文件,若存在疑问可先备份原有
~/.near/genesis.json,执行neard init --chain-id mainnet --download-genesis重新拉取官方创世文件 - 检查数据目录权限:确认
~/.near目录及所有子目录的归属用户和当前执行neard命令的用户一致,权限不足会导致无法写入区块数据,可执行ls -l ~/.near验证权限,若异常执行sudo chown -R $(whoami):$(whoami) ~/.near修复 - 查看详细运行日志:启动节点时调高日志输出等级,执行
RUST_LOG=debug target/release/neard run,排查是否存在创世块校验失败、网络连接报错、数据写入失败类日志 - 验证Peer连接情况:节点启动后另开终端执行
curl -s http://127.0.0.1:3030/status | jq .network_info.num_connected_peers,如果返回值为0说明未连接到任何主网节点,需检查出方向24567端口是否被防火墙或运营商拦截 - 校验验证节点密钥:确认
~/.near/validator_key.json中的公钥和创建Staking Pool时传入的stake_public_key完全一致,密钥不匹配会导致节点无法被主网识别,出现同步异常 - 若上述检查无异常,可使用主网快照替换原有数据目录,避免本地从创世块同步耗时过长,同时解决原有数据损坏导致的同步失败问题
内容的提问来源于stack exchange,提问作者Aleksandr
相关产品推荐
相关产品推荐

