$npx -y skills add basezh/agent-skills-on-base --skill running-a-base-nodeRuns a Base node for production environments. Covers hardware requirements, Reth client setup, networking, and sync troubleshooting. Use when setting up self-hosted RPC infrastructure or running archive nodes. Covers phrases like "run a Base node", "set up Base RPC", "Base node h
| 1 | # Running a Base Node |
| 2 | |
| 3 | For production apps requiring reliable, unlimited RPC access. |
| 4 | |
| 5 | ## Security |
| 6 | |
| 7 | - **Restrict RPC access** — bind to `127.0.0.1` or a private interface, never expose RPC ports (`8545`/`8546`) to the public internet without authentication |
| 8 | - **Firewall rules** — only open ports 9222 (Discovery v5) and 30303 (P2P) to the public; block all other inbound traffic |
| 9 | - **Run as a non-root user** with minimal filesystem permissions |
| 10 | - **Use TLS termination** (reverse proxy with nginx/caddy) if exposing the RPC endpoint to remote clients |
| 11 | - **Monitor for unauthorized access** — log and alert on unexpected RPC calls or connection spikes |
| 12 | |
| 13 | ## Hardware Requirements |
| 14 | |
| 15 | - **CPU**: 8-Core minimum |
| 16 | - **RAM**: 16 GB minimum |
| 17 | - **Storage**: NVMe SSD, formula: `(2 × chain_size) + snapshot_size + 20% buffer` |
| 18 | |
| 19 | ## Networking |
| 20 | |
| 21 | **Required Ports:** |
| 22 | - **Port 9222**: Critical for Reth Discovery v5 |
| 23 | - **Port 30303**: P2P Discovery & RLPx |
| 24 | |
| 25 | If these ports are blocked, the node will have difficulty finding peers and syncing. |
| 26 | |
| 27 | ## Client Selection |
| 28 | |
| 29 | Use **Reth** for Base nodes. Geth Archive Nodes are no longer supported. |
| 30 | |
| 31 | Reth provides: |
| 32 | - Better performance for high-throughput L2 |
| 33 | - Built-in archive node support |
| 34 | |
| 35 | ## Syncing |
| 36 | |
| 37 | - Initial sync takes **days** |
| 38 | - Consumes significant RPC quota if using external providers |
| 39 | - Use snapshots to accelerate (check Base docs for URLs) |
| 40 | |
| 41 | ## Sync Status |
| 42 | |
| 43 | **Incomplete sync indicator**: `Error: nonce has already been used` when deploying. |
| 44 | |
| 45 | Verify sync: |
| 46 | - Compare latest block with explorer |
| 47 | - Check peer connections |
| 48 | - Monitor logs for progress |