Node won’t start
Fatal: database contains incompatible genesis (have X, new Y)
Fatal: database contains incompatible genesis (have X, new Y)
The data directory was previously initialized with a different genesis file.Fix: either pick a fresh
--datadir, or wipe the existing one:bind: address already in use
bind: address already in use
Another process is using the port (
30303, 8545, or 8546).Fix: find it with lsof -i :8545 and stop it, or pick a different port via --port, --http.port, --ws.port.too many open files
too many open files
Linux’s default
ulimit -n is too low for a full node.Fix: raise it. In systemd: LimitNOFILE=65536. In a shell: ulimit -n 65536.Sync issues
Sync stalls or peer count is 0
Sync stalls or peer count is 0
Quantum Chain mainnet uses dedicated bootnodes. If your node is firewalled, discovery cannot work.Fix: open inbound UDP+TCP
30303, or pass --bootnodes <enode> for a known peer.Sync is much slower than expected
Sync is much slower than expected
Snap sync needs sustained disk write bandwidth. HDDs and slow SSDs throttle the chain.Fix: use NVMe storage. For full and archive nodes, allocate
--cache 4096 or higher.Errors importing block: invalid quantum signature
Errors importing block: invalid quantum signature
Your node is running an old binary that pre-dates
quantumVerificationBlock.Fix: rebuild from a tagged release: git fetch --tags && git checkout <tag> && make geth.Validator (Clique) issues
My sealer is not producing blocks
My sealer is not producing blocks
Possible causes:
- The address isn’t in the sealer set. Check with
clique.getSigners(). - The account is locked. Pass
--unlockand--password. - The node hasn’t synced. Sealers must be at the head before they can seal.
- It is “out of turn” — wait until the in-turn slot.
recently signed warning
recently signed warning
A sealer must wait
(N/2 + 1) blocks between blocks it signs. This is anti-malleability protection in Clique. The warning resolves itself.Proposed sealer change isn't taking effect
Proposed sealer change isn't taking effect
Sealer changes are applied at the next epoch boundary (every 30 000 blocks on mainnet). Use
clique.proposals to confirm your vote is recorded.RPC issues
403 Forbidden / unauthorized origin
403 Forbidden / unauthorized origin
method not found
method not found
The RPC namespace is not enabled.Fix: include it in
--http.api. For example, eth,net,web3,debug,trace.gas required exceeds allowance
gas required exceeds allowance
Default
--rpc.gascap is 50 000 000. Heavy eth_call queries can hit it.Fix: raise the cap, or split the call.Transaction issues
nonce too low
nonce too low
A transaction with this nonce was already mined or replaced.Fix: fetch the next nonce with
eth_getTransactionCount(addr, "pending").replacement transaction underpriced
replacement transaction underpriced
To replace a pending transaction, the new one must have a fee at least 10% higher.Fix: raise the gas price (legacy) or
maxFeePerGas (EIP-1559) by 10%+.transaction stuck in mempool
transaction stuck in mempool
Either the gas price is below the network minimum or the nonce has a gap.Fix: check
txpool_status. For nonce gaps, fill the missing nonce. For low fees, replace at a higher fee.invalid sender / signature verification failed
invalid sender / signature verification failed
The post-quantum signature does not verify against the public key registered for the sender address.Fix: confirm the signing service is using the correct key for the wallet, and that you targeted
chainId=20803.Disk usage
Where to look
| Source | What it tells you |
|---|---|
journalctl -u geth -f | Live logs |
eth_syncing | Sync progress |
txpool_status, txpool_content | Mempool contents |
clique_status | Sealer health |
:6060/metrics | Prometheus metrics |
admin_peers | Connected peers |