Ethereum Goerli测试网geth挖矿报unauthorized signer错误排查
故障产生原因
- Goerli测试网采用Clique权威证明(PoA)共识,和传统PoW公链任意地址都可参与挖矿的逻辑不同:只有经过网络共识投票通过、被纳入官方授权签名者列表的地址,才具备密封区块、参与出块的权限。
- 日志返回的
unauthorized signer错误,直接原因是你配置的miner.etherbase对应地址,不在当前Goerli网络高度的授权签名者清单中,节点没有出块权限,区块密封流程被共识规则拦截。 - 补充说明:目前Goerli测试网已进入退役流程,官方早已关闭普通用户申请成为授权出块签名者的通道,普通用户运行的节点不可能在公开Goerli网络上获得出块挖矿权限。
正确配置方案
场景1:运行普通Goerli全节点(仅同步数据、发起交易/部署合约,不需要出块)
直接删除启动命令中所有和挖矿相关的参数即可,普通同步节点不需要出块权限。修改后可正常运行的命令如下:
geth --goerli --datadir="/mnt/sdc1/ethereum/goerli/" --port="30304" --cache 4096 --http --http.addr="0.0.0.0" --http.port="8546" --http.vhosts="*" --http.corsdomain="*" --http.api="admin,debug,web3,eth,txpool,personal,clique,miner,net" --authrpc.jwtsecret=/tmp/jwtsecret --authrpc.vhosts="*" --authrpc.port=8553 --allow-insecure-unlock
需要移除的参数包括--mine、--miner.threads=4、--miner.etherbase,这类参数仅授权出块节点需要配置,普通节点保留反而会持续触发无权限出块的报错。
场景2:本地搭建私有Clique测试网,测试出块挖矿逻辑
你需要先将用于出块的etherbase地址加入网络的授权签名者列表,才能正常启动挖矿:
- 如果是全新搭建私有链,在创世块配置的
extradata字段中,把你的出块地址写入初始授权签名者集合 - 如果是已运行的私有Clique链,需要由现有已授权的签名者发起投票,将你的出块地址加入签名者列表
- 配置完成后,先解锁对应出块账户,确认通过
clique.getSigners()接口可以查询到你的地址在授权列表中,再开启miner即可正常出块,不会再触发未授权报错。
注意:公开运行的Goerli测试网不接受普通用户的签名者权限申请,不存在任何可以让个人地址获得Goerli出块权限的配置方法。如果需要测试PoW挖矿流程,建议搭建本地PoW私有测试网,或选择其他支持开放挖矿的测试网络。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

