Production Configuration
This guide details the configuration options available for Harmonic Salsa validators in production environments.Environment Variables
Critical Environment Variables
RUST_LOG: Controls log verbosity using theenv_logger crate syntax.
Optional Environment Variables
SOLANA_BANKING_THREADS: DEPRECATED in v3.0+. Use--block-production-num-workers instead.
Configuration Files
Validator Keypairs
Identity Keypair (validator-keypair.json):
- Location:
/home/sol/validator-keypair.json - Purpose: Uniquely identifies your validator
- Security: Backup securely, required for validator operations
- Permissions:
chmod 600
vote-account-keypair.json):
- Location:
/home/sol/vote-account-keypair.json - Purpose: Identifies the vote account
- Note: Only public key is needed after account creation
- Permissions:
chmod 600
- Location: DO NOT store on validator
- Purpose: Ultimate authority over vote account
- Security: Store in hardware wallet, paper wallet, or secure offline location
- Critical: Loss of this key means permanent loss of vote account control
Solana CLI Configuration
Location:~/.config/solana/cli/config.yml
Configure via CLI:
Validator Command-Line Arguments
Required Arguments
—identity<PATH>:
Path to validator identity keypair.
<PATH>:
Path to vote account keypair.
<PATH>:
Ledger directory location.
<HOST:PORT>:
Cluster entrypoint for bootstrapping.
Network Arguments
—dynamic-port-range<MIN-MAX>:
Port range for validator networking (minimum 25 ports recommended).
<PORT>:
RPC server port (default: 8899).
<IP>:
IP address to bind gossip and services.
<IP:PORT>:
Advertised RPC address for public access.
Trust and Security Arguments
—known-validator<PUBKEY>:
Trusted validators for snapshot downloads (highly recommended).
<HASH>:
Expected genesis hash to prevent wrong cluster joins.
Storage Arguments
—accounts<PATH>:
Accounts database location (separate high-IOPS drive recommended).
Snapshot Configuration
—snapshots<PATH>:
Snapshot storage location (default: ledger directory).
<SLOTS>:
Full snapshot generation interval (default: 100,000 slots in v3.0+).
<SLOTS>:
Incremental snapshot interval (default: 10,000 slots).
<FORMAT>:
Snapshot compression format (zstd, bz2, tar, none).
<LEVEL>:
Compression level for zstd (1-21, default varies).
RPC Configuration
—enable-rpc-transaction-history: Enable historical transaction info storage (increases disk usage).<COUNT>:
Number of RPC request threads (default: CPU count).
<COUNT>:
Threads for CPU-intensive RPC requests (default: max(1, CPU count / 4)).
<BYTES>:
Maximum RPC request body size.
<SLOTS>:
Slot distance for health check (default: 128 in v2.0+).
Performance Tuning Arguments
—block-production-method<METHOD>:
Block production scheduler (default: central-scheduler-greedy in v2.2+).
<METHOD>:
Block verification method (default: unified-scheduler in v2.1+).
<COUNT>:
Threads for fork replay (default: 4).
<COUNT>:
Background threads for accounts DB operations.
<SIZE>:
Accounts read cache size limit.
Logging Arguments
—log<PATH>:
Log file path (use - for stdout).
<BYTES>:
Limit transaction log message storage.
Monitoring Arguments
—enable-rpc-bigtable-ledger-storage: Use BigTable for historical ledger data.<INDEX_TYPE>:
Enable account indexing for RPC performance.
Recovery Arguments
—wal-recovery-mode<MODE>:
RocksDB WAL recovery mode (options: tolerate_corrupted_tail_records, skip_any_corrupted_record).
<WHEN>:
When to use snapshot archives at startup (default: when-newest).
Tuning Parameters
CPU Optimization
Performance Governor:Memory Settings
Accounts Index: By default, accounts index is kept entirely in memory (v3.1+). Read Cache: Tune--accounts-db-read-cache-limit based on available RAM.
Network Tuning
QUIC Connections:- Default max unstaked connections: 500
- Default max staked connections: 2000
- Configure via
--max-unstaked-connectionsand--max-staked-connections
Storage I/O
Mount Options: Usenoatime in fstab to reduce write operations.
Separate Drives:
Always use separate high-performance drives for ledger and accounts.
Security Settings
Key Management
File Permissions:Network Security
Firewall: See deployment guide for UFW configuration. SSH Hardening:- Use key-based authentication only
- Disable password authentication
- Install fail2ban
Process Isolation
Run as Non-Root: Always run validator as dedicatedsol user, never as root.
Systemd Hardening:
Configuration Examples
Mainnet Validator
RPC Node Configuration
agave-validator --help for the complete list of configuration options.