I’m running a private Proof-of-Authority (PoA) Ethereum fork using Geth with the Clique consensus algorithm and a custom chainId (1698369). My setup consists of four servers:
- Public RPC node behind NGINX.
- Private RPC + 3 validators (on different ports).
- Private RPC + 3 validators (on different ports).
- Private RPC + 3 validators (on different ports).
All 13 services (1 public RPC, 3 private RPCs, 9 validators) start successfully from genesis.json and show as Active in systemctl. However, when querying eth.blockNumber on any RPC or validator node, it remains stuck at 1, even after hours of runtime.
To debug, I inspected logs for one validator with:
journalctl -u geth-mainnet-validator1.service -n 50000 | grep -E "Block|seal|mine|Commit|unlock" Here’s a sample of the output across validators:
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" The logs show validators attempting to seal blocks, but most fail with err="unauthorized signer", except for one instance where validator3 seals block 1. After that, no further blocks are produced, and I see err="signed recently, must wait for others".
Here’s my 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"} } }