Run a Full Node
A full node verifies blocks, relays network data, and can optionally serve RPC endpoints for dApps and infrastructure partners. Full nodes do not participate in consensus and do not require staking.
1. System Requirements
Recommended:
- OS: Ubuntu 22.04 LTS
- CPU: 4 cores
- RAM: 8–16 GB
- Storage: 500 GB+ NVMe SSD
- Network: 100 Mbps
- 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
Choose a node ID and moniker (ASCII only):
5. Copy Genesis File
6. Start and Sync the Node
Start:
Monitor:
Or tail the log:
Sync is complete when block height matches the explorer.
7. Optional: Run as systemd Service
Create service:
Example content:
Enable:
8. Optional: Enable JSON-RPC
Edit config/app.toml inside your node directory.
Enable:
Restart the node if using systemd.
9. Firewall Configuration
For production, restrict JSON-RPC to trusted IPs or localhost.
10. Optional: Pruning Settings
Full nodes can reduce storage usage.
Edit app.toml:
Or for higher performance:
Restart node after making changes.
11. Node Management Commands
Checking Node Status
Sync status:
Node ID:
Check peers:
Check logs:
Or if running without systemd:
Account and Balance Management
List all keys:
Account balance:
Stopping the Node
Stop shardeumd process:
If using systemd:
12. Troubleshooting
Node Won't Sync
Check peer connections:
Common fixes:
- Verify seeds in
config.toml - Try adding more persistent peers
- Check your time sync (NTP):
timedatectl status - Check port 26656 is open
Out of Disk Space
Check disk usage:
Solutions:
- For full nodes: Enable pruning in
app.toml: - Or use custom pruning:
- Increase disk space
Important: If running as Archive Node with --pruning nothing, you need adequate storage for complete history.
RPC Not Responding
- Check firewall rules:
sudo ufw status - Verify RPC enabled in
app.toml - Confirm bind address is correct (
0.0.0.0:8545for external access) - Check node is fully synced
- Restart the service:
sudo systemctl restart shardeumd
13. Important Notes
- Chain ID:
shardeum_8118-1(mainnet) - EVM Chain ID:
8118(hex:0x1fb6) for MetaMask and EVM interactions - Unbonding Period: 21 days (if you later become a validator)
- Archive Node: Use
--pruning nothingflag to maintain complete history - Backups: Always back up
node_key.jsonsecurely
Full Node Complete
Your Shardeum full node is now running and contributing to network decentralization.
You may proceed to:
- Promote it to a validator, or
- Enable RPC for dApps, or
- Pair with a sentry node for validator security