Deployment Guide
This guide covers the complete deployment process for running a Harmonic Salsa validator in production.System Requirements
Hardware Requirements
Minimum Specifications:- CPU: 2.8GHz+ base clock, 12+ cores/24+ threads (AMD Epyc or Intel Xeon recommended)
- RAM: 256GB+ (512GB recommended for mainnet)
- Storage:
- Ledger: 2TB+ NVMe SSD (high IOPS required)
- Accounts DB: 2TB+ NVMe SSD (separate drive recommended)
- Total: 4TB+ usable storage across separate drives
- Network: 1 Gbps+ symmetric, low latency
- GPU: CUDA-enabled GPU (optional, Linux only)
- CPU: 16+ cores, 3.0GHz+ boost clock
- RAM: 512GB ECC memory
- Storage: 2x 4TB NVMe drives in separate mounts
- Network: 10 Gbps dedicated connection
Software Requirements
Operating System:- Ubuntu 22.04 LTS or 24.04 LTS (recommended)
- Fedora 38+ (supported)
- Other Linux distributions (community tested)
rust-toolchain.toml file in the repository ensures the correct Rust version is used automatically.
Network Configuration
Port Requirements
Required Open Ports:- Gossip: 8001 (default, configurable)
- RPC: 8899 (default, only if running RPC)
- Dynamic Port Range: 8000-8020 (configurable via
--dynamic-port-range)- Minimum 25 ports recommended to avoid binding failures
- QUIC: RPC port + 6 (e.g., 8905 if RPC is 8899)
- Admin RPC: Custom port (for validator control)
- Metrics: Configured via
$SOLANA_METRICS_CONFIG
Firewall Configuration
Using UFW (Uncomplicated Firewall):System Tuning
Kernel Parameters: Create/etc/sysctl.d/21-agave-validator.conf:
/etc/security/limits.d/90-solana-nofiles.conf:
Storage Setup
Drive Preparation
Identify Drives:Mount Points
Create Directories:Service Setup (systemd)
Create Sol User
Install Harmonic Salsa
Build from Source:Systemd Service Configuration
Create Service File: Create/etc/systemd/system/sol.service:
Validator Startup Script
Create Validator Script: Create/home/sol/bin/validator.sh:
Enable and Start Service
Log Rotation
Configure logrotate: Create/etc/logrotate.d/sol:
XDP Configuration (Advanced)
When XDP is enabled for enhanced networking performance: Required Capabilities:Post-Deployment Validation
Verify Validator is Running
Monitor Catchup Progress
Common Deployment Issues
Insufficient Memory Lock
Symptom: Validator fails to start with memory lock errors Solution: EnsureLimitMEMLOCK=2000000000 is set in systemd service file
Port Binding Failures
Symptom: “Address already in use” errors Solution: Ensure dynamic port range has at least 25 ports availableSlow Catchup
Symptom: Validator takes excessive time to catch up Solution:- Verify CPU governor is set to “performance”
- Ensure release build is used (not debug)
- Check network bandwidth and latency
Disk Space Issues
Symptom: Out of disk space Solution: Ensure each drive has 2TB+ available, use--limit-ledger-size
Refer to ~/workspace/source/docs/src/operations/setup-a-validator.md and ~/workspace/source/docs/src/operations/guides/validator-start.md for additional deployment details.