运行Evmos节点报错:InitGenesis后验证人集为空问题排查
问题排查与解决
这个报错的核心是创世状态未初始化有效的验证节点,以下是具体错误点和修复方案:
1. 错误指定--pubkey参数
你在gentx命令里手动添加了--pubkey $(evmosd tendermint show-validator),但节点未启动时,该命令会返回空值或无效公钥,导致生成的gentx无法正确关联验证节点身份,最终收集gentxs后创世文件里没有有效验证人数据。
修复方法:去掉--pubkey参数,让gentx命令自动从密钥中读取公钥,修改后的命令如下:
evmosd gentx my_validator 1000000000stake \ --commission-rate=0.1 \ --commission-max-rate=1 \ --commission-max-change-rate=0.1 \ --chain-id=evmos_9000-4
2. 清理旧状态后重新执行流程
之前的操作已生成无效创世文件,需要清理节点数据后重新跑流程:
- 清理旧数据:
rm -rf ~/.evmosd - 重新执行完整初始化步骤:
evmosd init testing --chain-id=evmos_9000-4 evmosd keys add my_validator evmosd add-genesis-account my_validator 1000000000stake # 使用修复后的gentx命令 evmosd gentx my_validator 1000000000stake \ --commission-rate=0.1 \ --commission-max-rate=1 \ --commission-max-change-rate=0.1 \ --chain-id=evmos_9000-4 evmosd collect-gentxs evmosd validate-genesis evmosd start
3. 手动验证创世文件(可选)
若不想从头执行,可直接检查~/.evmosd/config/genesis.json中的validators数组,确认其中存在你的验证节点信息,且delegator_address、validator_address、pubkey字段非空,tokens值不小于1000000(DefaultPowerReduction默认值)。
内容的提问来源于stack exchange,提问作者Руслан Миров
相关产品推荐
相关产品推荐

