基于Geth的Clique共识PoA私有以太坊分叉:eth.blockNumber停滞在1
PoA私有链区块停滞在1,验证节点出块失败
环境与部署
- 基于Geth搭建的权威证明(PoA)私有以太坊分叉,自定义chainId为1698369,采用Clique共识算法
- 4台服务器部署架构:
- 服务器1:部署在NGINX反向代理后的公共RPC节点
- 服务器2:私有RPC节点 + 3个独立端口的验证节点
- 服务器3:私有RPC节点 + 3个独立端口的验证节点
- 服务器4:私有RPC节点 + 3个独立端口的验证节点
- 所有13个服务(1个公共RPC、3个私有RPC、9个验证节点)均能通过genesis.json正常启动,systemctl状态显示为Active,但所有节点的
eth.blockNumber始终停留在1,运行数小时无任何增长
排查操作
执行以下命令查看验证节点日志:
journalctl -u geth-mainnet-validator1.service -n 50000 | grep -E "Block|seal|mine|Commit|unlock"
日志示例
Mar 21 01:10:53 node2 test-geth-mainnet-validator1[139532]: INFO [03-21|01:10:53.493] Commit new sealing work number=1 sealhash=d264b8..b8970e txs=0 gas=0 fees=0 elapsed="148.258µs" Mar 21 01:10:53 node2 test-geth-mainnet-validator1[139532]: WARN [03-21|01:10:53.493] Block sealing failed err="unauthorized signer" Mar 21 01:13:28 node2 test-geth-mainnet-validator1[139532]: INFO [03-21|01:13:28.162] Commit new sealing work number=2 sealhash=f12875..f24402 txs=0 gas=0 fees=0 elapsed="115.696µs" Mar 21 01:13:28 node2 test-geth-mainnet-validator1[139532]: WARN [03-21|01:13:28.162] Block sealing failed err="unauthorized signer" Mar 21 01:11:03 node2 test-geth-mainnet-validator3[139562]: INFO [03-21|01:11:03.659] Successfully sealed new block number=1 sealhash=bfc8a4..647af4 hash=77a147..1771e5 elapsed=7.713ms Mar 21 01:11:03 node2 test-geth-mainnet-validator3[139562]: INFO [03-21|01:11:03.660] Commit new sealing work number=2 sealhash=1310ab..2ea0d8 txs=0 gas=0 fees=0 elapsed="543.651µs" Mar 21 01:11:03 node2 test-geth-mainnet-validator3[139562]: WARN [03-21|01:11:03.660] Block sealing failed err="signed recently, must wait for others"
日志分析
- 多数验证节点尝试出块时失败,错误信息为
unauthorized signer - 仅validator3成功打包了区块1,之后无法生成新区块,错误信息为
signed recently, must wait for others
genesis.json配置
{ "config": { "chainId": 1698369, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0, "clique": { "period": 5, "epoch": 30000 } }, "nonce": "0x0", "timestamp": "0x67d1ddfd", "extraData": "0x00000000000000000000000000000000000000000000000000000000000000008582102B6e433AEb76B4baA2247c8BB67305405644C41862AFe35E7ffA5d46D106E78e56282106D24C0F541D9e0b6026dcee2532F778dB15E52AA716C17CfBaa87Ec82a26c2Ed9e0206aBF8c74d39d21eDDC1aD264D782A598DeB424d284DA751b0237eE44E3bA47fB9c036e3f9441F8c817d58f0d714c7FC79DE6A1eefAA4325B71590585B4b056B0750e97CEb07760b2b9797b7e31cfd648F7302925c28d582C1EB859B739829ea7D3B99f4445710EfBED2017F7bCeae4a6B59e451f97C6D91BA7115C8ed0c00d68a87bA8cb51aC05422138f639171d36f831F27c0000000000000000000000000000000000000000000000000000000000000000", "gasLimit": "0x989680", "difficulty": "0x1", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "8582102B6e433AEb76B4baA2247c8BB673054056": {"balance": "180000000000000000000000"}, "44C41862AFe35E7ffA5d46D106E78e56282106D2": {"balance": "180000000000000000000000"}, "4C0F541D9e0b6026dcee2532F778dB15E52AA716": {"balance": "180000000000000000000000"}, "C17CfBaa87Ec82a26c2Ed9e0206aBF8c74d39d21": {"balance": "180000000000000000000000"}, "eDDC1aD264D782A598DeB424d284DA751b0237eE": {"balance": "180000000000000000000000"}, "44E3bA47fB9c036e3f9441F8c817d58f0d714c7F": {"balance": "180000000000000000000000"}, "C79DE6A1eefAA4325B71590585B4b056B0750e97": {"balance": "180000000000000000000000"}, "CEb07760b2b9797b7e31cfd648F7302925c28d58": {"balance": "180000000000000000000000"}, "2C1EB859B739829ea7D3B99f4445710EfBED2017": {"balance": "180000000000000000000000"}, "F7bCeae4a6B59e451f97C6D91BA7115C8ed0c00d": {"balance": "1361000000000000000000000"}, "d2DEBaecF0591Ab97a4e1e8214fd357390f1879C": {"balance": "0"}, "68a87bA8cb51aC05422138f639171d36f831F27c": {"balance": "99997019000000000000000000000"} } }
内容的提问来源于stack exchange,提问作者Primea
相关产品推荐
相关产品推荐

