Skip to content

Common_issues

This chapter covers the most common issues you’ll encounter when running blockchain nodes and how to fix them.


Symptoms:

  • eth.syncing shows currentBlock but doesn’t progress
  • Peer count is healthy

Solutions:

Terminal window
# 1. Restart with fresh database
systemctl stop geth
rm -rf /data/ethereum/geth/chaindata
systemctl start geth
# 2. Try different bootnodes
geth --bootnodes "enr:..."

Symptoms:

  • Sync progressing but very slowly

Solutions:

Terminal window
# Increase peer count
--maxpeers 100
# Check CPU/Memory
top
# Use NVMe SSD

Symptoms:

  • net.peerCount returns 0

Solutions:

Terminal window
# Check firewall
sudo ufw status
# Check port 30303 is open
telnet discovery.ethdisco.net 30303
# Add bootnodes manually
geth --bootnodes "enr:..."

Symptoms:

  • Peer count fluctuates wildly

Solutions:

  • Check network stability
  • Increase dial timeout
  • Check for IP bans

Solutions:

Terminal window
# Reduce cache
--cache 2048
# Disable metrics if not needed
# (remove --metrics flag)

Solutions:

Terminal window
# Reduce cache
--cache 4096
# Check available RAM
free -h
# Add swap
sudo fallocate -l 8G /swapfile

Solutions:

Terminal window
# Check disk space
df -h
# Enable pruning
geth --pruneancientstore
# Remove old data
rm -rf /data/ethereum/geth/chaindata/ancient

Solutions:

Terminal window
# Increase timeout in nginx
proxy_read_timeout 300s;
# Check node is not overloaded
# (check CPU, memory)

Check:

Terminal window
# Check node is synced
eth.syncing
# Check logs
journalctl -fu geth

Symptoms:

  • Node crashes on startup
  • Sync fails repeatedly

Solutions:

Terminal window
# Remove chaindata
systemctl stop geth
rm -rf /data/ethereum/geth/chaindata
# Restart sync
systemctl start geth

Terminal window
# 1. Check if running
systemctl status geth
ps aux | grep geth
# 2. Check logs
journalctl -fu geth -n 50
# 3. Check sync status
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'
# 4. Check peer count
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}'
# 5. Check block height
curl -X POST http://localhost:8545 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

  • Sync issues: Try fresh database, different peers
  • Network issues: Check firewall, ports
  • Performance: Adjust cache, monitor resources
  • RPC issues: Check sync status, node health

In Chapter 46: Debugging Tools & Techniques, we’ll explore debugging.


Last Updated: 2026-02-20