Solana RPC node installer for Ubuntu with Jito Solana/Agave validator, Yellowstone gRPC, NVMe disk tuning, snapshots, and monitoring scripts.
โก Solana RPC Install
Production-ready Solana RPC node deployment in 3 simple steps
Deploy battle-tested Solana RPC nodes with stable, proven configurations and source compilation from GitHub.
ไธญๆ | English | Website | Telegram | Discord
What This Project Provides
solana-rpc-install is a focused installer for running a Solana RPC node on Ubuntu with Jito Solana / Agave validator, Yellowstone gRPC, systemd service management, NVMe disk mounting, snapshot bootstrap, and production-oriented Linux tuning.
It is built for operators who need a practical Solana mainnet RPC deployment guide for trading bots, indexing pipelines, DEX event streaming, MEV infrastructure, or private RPC workloads without hand-assembling every validator, Geyser, storage, and monitoring setting.
Included Scripts
| Script | Purpose | |--------|---------| | 1-prepare.sh | Mount NVMe data disks, create Solana directories, and apply Linux system optimizations | | 2-install-jito-validator.sh | Build and install Jito Solana / Agave validator from source | | 3-start.sh | Download snapshots, install the systemd service, and start the RPC node | | validator.sh | Auto-select the right validator profile for 128GB, 192GB, 256GB, or 512GB+ RAM | | yellowstone-config.json | Production-tested Yellowstone gRPC Geyser configuration | | performance-monitor.sh, get_health.sh, catchup.sh | Monitor node health, memory, performance, and sync progress |
๐ฏ System Requirements
Minimum Configuration:
- CPU: AMD Ryzen 9 9950X (or equivalent)
- RAM: 128 GB minimum (256 GB recommended)
- Storage: 1-3x NVMe SSDs (flexible configuration, script auto-adapts)
- OS: Ubuntu 22.04/24.04
- Network: High-bandwidth connection (1 Gbps+)
๐ Quick Start
Three-Step Installation
# Switch to root user
sudo su -
Clone repository to /root
cd /root
git clone https://github.com/0xfnzero/solana-rpc-install.git
cd solana-rpc-install
Step 1: Mount disks + System optimization
bash 1-prepare.sh
(Optional) Verify mount configuration
bash verify-mounts.sh
Step 2: Build Jito Solana from source (15-30 minutes)
bash 2-install-jito-validator.sh
Press Enter to install v4.1.1, or enter a specific version (e.g., v4.1.0-rc.1)
Supports stable, rc, and beta Jito tags
Step 3: Download snapshot and start node
bash 3-start.sh
โน๏ธ Installation Method
This installation uses source compilation from GitHub to build Jito Solana validator. This ensures you get the complete agave-validator binary with full MEV support required for RPC nodes.
โ ๏ธ Critical: Memory Management Details (Required for 128GB Systems)
๐ Why Swap Might Be Needed?
- Memory peaks can exceed 128GB during initial sync (115-130GB)
- Without swap, node may crash with OOM
- Swap provides safety buffer during sync phase
- After sync stabilizes, memory usage drops to 85-105GB
๐ง Swap Management (Optional for 128GB Systems)
Add Swap (If needed during sync)
# Only if you see high memory pressure during sync
cd /root/solana-rpc-install
sudo bash add-swap-128g.sh
Script automatically checks:
โ Only adds swap if system RAM < 160GB
โ Skips if swap already exists
โ Adds 32GB swap with swappiness=10 (minimal usage)
Remove Swap (After sync completes)
Once synchronization completes, memory usage stabilizes at 85-105GB, and you can remove swap for optimal performance:
# Check current memory usage
systemctl status sol | grep Memory
If memory peak < 105GB, safe to remove swap
cd /root/solana-rpc-install
sudo bash remove-swap.sh
๐ Decision Guidelines
| Memory Peak | Recommended Action | |-------------|-------------------| | < 105GB | โ Can remove swap for optimal performance | | 105-110GB | โ ๏ธ Recommended to keep swap as buffer | | > 110GB | ๐ด Must keep swap to prevent OOM |
Note: If memory issues occur after removing swap, you can always add it back:
cd /root/solana-rpc-install sudo bash add-swap-128g.sh
๐ Next Steps: Install Jito ShredStream
After completing your RPC node installation, you can enhance performance with Jito ShredStream:
- Quick Start Guide: QUICK_START.md
- Repository: jito-shredstream-install
๐ Monitoring & Management
# Real-time logs
journalctl -u sol -f
Performance monitoring
bash /root/performance-monitor.sh snapshot
Health check (available after 30 minutes)
/root/get_health.sh
Sync progress
/root/catchup.sh
โจ Key Features
๐ง Battle-Tested Configuration Philosophy
All configurations are based on proven production deployments with thousands of hours of uptime:
- Conservative Stability > Aggressive Optimization
- Simple Defaults > Complex Customization
- Proven Performance > Theoretical Gains
๐ฆ System Optimizations (No Reboot Required)
- ๐ TCP Congestion Control: Westwood (classic, stable algorithm)
- ๐ง TCP Buffers: 12MB (conservative, low-latency optimized)
- ๐พ File Descriptors: 1M limit (sufficient for production)
- ๐ก๏ธ Memory Management: swappiness=30 (balanced approach)
- ๐ VM Settings: Conservative dirty ratios for stability
โก Yellowstone gRPC Configuration
- โ Compression Enabled: gzip + zstd (reduces memory copy overhead)
- ๐ฆ Conservative Buffers: 50M snapshot, 200K channel (fast processing)
- ๐ฏ Proven Defaults: System-managed Tokio, default HTTP/2 settings
- ๐ก๏ธ Resource Protection: Strict filter limits prevent abuse
๐ Deployment Features
- ๐ฆ Source Compilation Installation:
- ๐ง Intelligent Configuration Selection: Auto-detects system RAM and selects optimal validator configuration
- ๐ Automatic Disk Management: Smart disk detection and mounting
- ๐ก๏ธ Production Ready: Systemd service with dynamic memory limits and OOM protection
- ๐ Network Resilience: Enhanced version verification with graceful degradation
- ๐ Monitoring Tools: Performance tracking and health checks included
๐ Network Ports
| Port | Protocol | Purpose | |------|----------|---------| | 8899 | HTTP | RPC endpoint | | 8900 | WebSocket | Real-time subscriptions | | 10900 | gRPC | High-performance data streaming | | 8000-8030 | TCP/UDP | Validator communication (dynamic) |
๐ Performance Metrics
- Snapshot Download: Network-dependent (typically 200MB - 1GB/s)
- Memory Usage: 60-110GB during sync, 85-105GB stable (optimized for 128GB systems)
- Sync Time: 1-3 hours (from snapshot)
- CPU Usage: Multi-core optimized (32+ cores recommended)
- Stability: Proven configuration with >99.9% uptime in production
๐ ๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Solana RPC Node Stack โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Jito Solana Validator (v4.1.x) โ
โ โโ Installation: Source compilation from GitHub โ
โ โ โข agave-validator with full MEV support โ
โ โ โข 100% Jito Foundation compliant (15-30 min) โ
โ โโ Yellowstone gRPC auto-matched to Solana version โ
โ โโ RPC HTTP/WebSocket (Port 8899/8900) โ
โ โโ Accounts & Ledger (Optimized RocksDB) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ System Optimizations (Battle-Tested) โ
โ โโ TCP: 12MB buffers, Westwood congestion control โ
โ โโ Memory: swappiness=30, balanced VM settings โ
โ โโ File Descriptors: 1M limit, sufficient for prod โ
โ โโ Stability: Conservative defaults, proven in prod โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Yellowstone gRPC (Open-Source Tested Config) โ
โ โโ Compression: gzip+zstd enabled (fast processing) โ
โ โโ Buffers: 50M snapshot, 200K channel (low latency) โ
โ โโ Defaults: System-managed, no over-optimization โ
โ โโ Protection: Strict filters, resource limits โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Infrastructure โ
โ โโ Systemd Service (Auto-restart, graceful shutdown) โ
โ โโ Multi-disk Setup (System/Accounts/Ledger) โ
โ โโ Monitoring Tools (Performance/Health/Catchup) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐งช Configuration Philosophy
Why Conservative Configuration?
Based on extensive production testing, we discovered:
- Compression Enabled = Lower Latency
- Smaller Buffers = Faster Processing
- System Defaults = Better Stability
- Proven in Production
๐ Backup Configuration
If you need the aggressive optimization config for specific use cases:
- Extreme config backed up as
yellowstone-config-extreme-backup.json - Accessible in repository history (commit 6cc31d9)
๐ Documentation
- Installation Guide: You're reading it!
- Mount Strategy: See MOUNT_STRATEGY.md
- Troubleshooting: Check logs with
journalctl -u sol -f - Configuration: All optimizations included by default
- Monitoring: Use provided helper scripts
- Optimization Details: See
YELLOWSTONE_OPTIMIZATION.md
๐ค Support & Community
- Telegram: https://t.me/fnzero_group
- Discord: https://discord.gg/vuazbGkqQE
- Issues: GitHub Issues
- Website: https://fnzero.dev/
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
โญ If this project helps you, please give us a Star!
Made with โค๏ธ by fnzero