Common_issues
Chapter 45: Common Node Issues
Section titled “Chapter 45: Common Node Issues”Overview
Section titled “Overview”This chapter covers the most common issues you’ll encounter when running blockchain nodes and how to fix them.
45.1 Sync Issues
Section titled “45.1 Sync Issues”Node Stuck at Header
Section titled “Node Stuck at Header”Symptoms:
eth.syncingshows currentBlock but doesn’t progress- Peer count is healthy
Solutions:
# 1. Restart with fresh databasesystemctl stop gethrm -rf /data/ethereum/geth/chaindatasystemctl start geth
# 2. Try different bootnodesgeth --bootnodes "enr:..."Very Slow Sync
Section titled “Very Slow Sync”Symptoms:
- Sync progressing but very slowly
Solutions:
# Increase peer count--maxpeers 100
# Check CPU/Memorytop
# Use NVMe SSD45.2 Network Issues
Section titled “45.2 Network Issues”No Peers
Section titled “No Peers”Symptoms:
net.peerCountreturns 0
Solutions:
# Check firewallsudo ufw status
# Check port 30303 is opentelnet discovery.ethdisco.net 30303
# Add bootnodes manuallygeth --bootnodes "enr:..."Peers Dropping
Section titled “Peers Dropping”Symptoms:
- Peer count fluctuates wildly
Solutions:
- Check network stability
- Increase dial timeout
- Check for IP bans
45.3 Performance Issues
Section titled “45.3 Performance Issues”High CPU Usage
Section titled “High CPU Usage”Solutions:
# Reduce cache--cache 2048
# Disable metrics if not needed# (remove --metrics flag)Out of Memory
Section titled “Out of Memory”Solutions:
# Reduce cache--cache 4096
# Check available RAMfree -h
# Add swapsudo fallocate -l 8G /swapfileDisk Full
Section titled “Disk Full”Solutions:
# Check disk spacedf -h
# Enable pruninggeth --pruneancientstore
# Remove old datarm -rf /data/ethereum/geth/chaindata/ancient45.4 RPC Issues
Section titled “45.4 RPC Issues”RPC Timeout
Section titled “RPC Timeout”Solutions:
# Increase timeout in nginxproxy_read_timeout 300s;
# Check node is not overloaded# (check CPU, memory)RPC Returns Errors
Section titled “RPC Returns Errors”Check:
# Check node is syncedeth.syncing
# Check logsjournalctl -fu geth45.5 Database Issues
Section titled “45.5 Database Issues”Database Corruption
Section titled “Database Corruption”Symptoms:
- Node crashes on startup
- Sync fails repeatedly
Solutions:
# Remove chaindatasystemctl stop gethrm -rf /data/ethereum/geth/chaindata
# Restart syncsystemctl start geth45.6 Quick Diagnostics
Section titled “45.6 Quick Diagnostics”Checklist
Section titled “Checklist”# 1. Check if runningsystemctl status gethps aux | grep geth
# 2. Check logsjournalctl -fu geth -n 50
# 3. Check sync statuscurl -X POST http://localhost:8545 \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'
# 4. Check peer countcurl -X POST http://localhost:8545 \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}'
# 5. Check block heightcurl -X POST http://localhost:8545 \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'Summary
Section titled “Summary”- Sync issues: Try fresh database, different peers
- Network issues: Check firewall, ports
- Performance: Adjust cache, monitor resources
- RPC issues: Check sync status, node health
Next Chapter
Section titled “Next Chapter”In Chapter 46: Debugging Tools & Techniques, we’ll explore debugging.
Last Updated: 2026-02-20