Run an RPC Node
An RPC node provides JSON-RPC and WebSocket endpoints for developers, dApps, indexers, infrastructure providers, and partners. RPC nodes do not validate blocks and do not require staking.
RPC nodes should not expose consensus ports publicly and must follow strict security practices.
1. System Requirements
Recommended:
- OS: Ubuntu 22.04 LTS
- CPU: 4 cores
- RAM: 8–16 GB
- Storage: 500 GB+ NVMe SSD
- Network: High-bandwidth connection
- Dependencies: git, jq, curl, make, build-essential, pkg-config
- Go: v1.25+
Install dependencies:
Install Go:
2. Install Shardeum Node Binary
Verify:
3. Environment Variables
4. Initialize the Node
5. Copy Genesis File
6. Start and Sync the Node
Start:
Monitor:
Wait until fully synced.
7. Enable JSON-RPC
Edit $HOME/.mainnet/$NODE_ID/config/app.toml.
Find the RPC section and set:
Restart your node if using systemd.
8. Optional: Enable gRPC & REST Endpoints
In app.toml:
Enable these only if required by your infrastructure.
9. Firewall Configuration
Expose only RPC/WebSocket ports:
Do not expose port 26657 (Tendermint RPC) to the public. Restrict sensitive endpoints to localhost or trusted IPs.
10. systemd Service (Recommended)
Create service:
Example:
Enable:
11. Pruning (Recommended for RPC Nodes)
RPC nodes often use custom pruning.
Edit app.toml:
Restart the node.
12. Scaling RPC Nodes (Optional)
For high-traffic dApps:
- Use load balancers (Nginx, HAProxy, AWS ELB)
- Run multiple RPC nodes behind a reverse proxy
- Rate-limit requests to avoid overload
- Separate "public RPC" from "private infra RPC"
- Run indexing services in parallel (The Graph, SubQuery, etc.)
13. Useful Commands
Check sync:
Check network peers:
Check logs:
Query RPC:
14. Troubleshooting
RPC endpoint not responding
- Confirm RPC enabled in
app.toml - Confirm IP binding is correct
- Check firewall rules
- Check node is fully synced
High latency
- Reduce pruning window
- Increase hardware resources
- Add more RPC nodes behind a proxy
Node stuck catching up
- Check peers
- Restart node
- Verify time sync (NTP)
RPC Node Setup Complete
Your RPC node is operational and serving JSON-RPC / WebSocket traffic for the Shardeum EVM mainnet.
Use this setup for:
- dApp backend integrations
- Indexing services
- Developer environments
- High-availability RPC infrastructure