System Requirements
Operating Systems
- Linux: Ubuntu 20.04+, Fedora 34+, or other modern distributions
- macOS: macOS 11 (Big Sur) or later
- Windows: Not officially supported (use WSL2)
Hardware Requirements
- Development
- Production Validator
Minimum requirements for local development:
- CPU: 4+ cores
- RAM: 8 GB minimum, 16 GB recommended
- Storage: 20 GB free space for building
Installing Rust Toolchain
Harmonic Salsa requires Rust to build from source. Install the Rust toolchain using rustup:Rust Version Management
The repository includes arust-toolchain.toml file that pins a specific Rust version. Cargo will automatically:
- Detect the required Rust version from this file
- Install the correct version if not already present
- Use the pinned version for all build commands
System Dependencies
Install the required system libraries and build tools for your platform.On Linux systems, you may encounter errors during the build if any of these dependencies are missing. Install all packages listed above before building.
Downloading Source Code
Clone the Harmonic Salsa repository from GitHub:Building from Source
Debug Build
Build a debug version for development and testing:- Compile faster (10-20 minutes)
- Include debug symbols for debugging
- Run significantly slower than release builds
- Not suitable for testnet or mainnet validators
./target/debug/.
Release Build
Build an optimized release version for production use:- Take longer to compile (20-40 minutes)
- Fully optimized for performance
- Required for testnet and mainnet validators
- Include split debug information (see profiles below)
./target/release/.
Build Profiles
The project includes multiple build profiles optimized for different use cases:release (default)
release (default)
Standard release build with optimizations.
- Thin LTO (Link-Time Optimization)
- Split debug info (unpacked)
- Good balance of build time and performance
release-with-debug
release-with-debug
Release build with full debug symbols.
- Same optimizations as release
- Full debug symbols included
- No symbol stripping
- Useful for profiling and debugging production issues
release-with-lto
release-with-lto
Maximum optimization release build.
- Fat LTO (maximum optimization)
- Single codegen unit
- Longest build time (30-60 minutes)
- Best runtime performance
- Recommended for production validators
Build Artifacts
After building, you’ll have access to numerous binaries in thetarget/release/ or target/debug/ directory:
Core Validator
solana-validator- Main validator clientsolana-test-validator- Local test validator
CLI Tools
solana- Main CLI tool for wallet and cluster operationssolana-keygen- Keypair generation and managementsolana-stake- Stake account managementsolana-tokens- Token distribution toolsolana-watchtower- Validator monitoring tool
Developer Tools
cargo-build-sbf- Build Solana programscargo-test-sbf- Test Solana programssolana-ledger-tool- Ledger inspection and manipulationsolana-genesis- Genesis block creation
Verification
Verify your installation by checking the version:Installation to System PATH
Optionally, install binaries to your system PATH:Updating
To update to the latest version:Troubleshooting
Build Failures
Missing system dependencies
Missing system dependencies
Error:
fatal error: 'openssl/ssl.h' file not foundSolution: Install all system dependencies listed above for your platform.Out of memory during build
Out of memory during build
Error: Build process killed or fails with memory errorsSolution: Reduce parallel build jobs:
Rust version mismatch
Rust version mismatch
Error: Compilation errors related to Rust language featuresSolution: Ensure rustup is up to date:Cargo will then automatically install the correct version from
rust-toolchain.toml.Build Taking Too Long
The initial build can take 20-60 minutes depending on:- CPU cores available
- Build profile selected
- Whether you’re building from a clean state
Next Steps
Quick Start
Run your first test validator
Validator Setup
Configure a production validator
CLI Tools
Learn about available CLI tools
Architecture
Understand the validator architecture