This guide provides a technical walkthrough for setting up a Solana mainnet validator. It covers essential tools, configurations, and operational best practices while excluding advanced validator economics (e.g., stake attraction, subsidies).
Prerequisites: Basic Linux system administration skills (terminal commands, shell scripting, configuration files). New to Linux? Check out Linux Journey.
Terminology: What Is a Solana Validator?
The solana-validator binary within the Solana CLI performs these core functions:
- Connects to a Solana cluster and syncs state
- Shares snapshots and cluster data
- Votes to verify new blocks via consensus
- Processes transactions and produces blocks
- Exposes RPC/event-driven APIs
Synonyms: Client (network participant), server (data provider), or node.
RPC Node: An unstaked, non-voting validator that serves network data without participating in consensus.
Validator Entity: An ecosystem participant running a staked, voting validator.
Step 1: Server Hardware Requirements
Minimum Specifications:
- CPU: 12 cores/24 threads
- RAM: 256GB
- Storage: 2ร1TB SSDs (RAID0 recommended)
- Network: 10GB connection
Options:
- Self-Hosted: Purchase and manage hardware.
- Data Center Rental: Providers like TeraSwitch offer optimized setups.
- Cloud Providers: Not recommended due to cost/performance issues.
Decentralization Tip: Choose locations/ASNs with fewer existing nodes to qualify for delegation programs like the Solana Foundation Delegation Program (SFDP).
Top Data Centers: Listed on validators.app.
Step 2: Install Solana CLI Locally
- Installation: Follow the official guide.
Configure Endpoints:
$ solana config set --url https://api.testnet.solana.com # Testnet $ solana config set --url https://api.mainnet-beta.solana.com # MainnetWallet Setup:
$ solana-keygen new --outfile ~/.config/solana/id.json $ solana airdrop 1 ~/.config/solana/id.json # Testnet only
Pro Tip: Use separate wallets for testnet/mainnet to avoid accidental transactions.
Step 3: Set Up Vote Account
Keypairs Required:
- Identity Keypair: Validator identifier (keep minimal SOL balance).
- Vote Account Keypair: Immutable vote account reference.
- Withdraw Keypair: Master key (store offline; consider paper/hardware wallet).
Commands:
$ solana-keygen new -o identity.json
$ solana-keygen new -o vote.json
$ solana-keygen new -o withdraw.json
$ solana create-vote-account --fee-payer ~/.config/solana/id.json vote.json identity.json withdraw.json Optional:
- Vanity Pubkey: Use
solana-keygen grind. Commission Adjustment:
$ solana vote-update-commission --fee-payer ~/.config/solana/id.json 8 withdraw.json # Set to 8%- Multi-Sig: Manage shared validators via Squads.
Step 4: Configure Validator Server
System Setup:
- Ubuntu LTS: Latest stable version.
Service User:
$ sudo adduser sol
Tuning:
Apply Solana-recommended sysctl settings for file descriptors/memory limits.
Storage:
- Accounts Data: 1TB SSD.
- Ledger Data: Separate 1TB SSD.
- RAID0 Alternative: Configure drives for max IOPS.
Step 5: Install Solana CLI on Server
Recommended: Build from source. Update using:
$ solana-install update Optional: Install Jito Validator for MEV revenue.
Step 6: Validator Run Script
Example validator.sh for testnet:
#!/bin/bash
solana-validator \
--identity identity.json \
--known-validator <PUBKEY> \
--log /home/sol/logs/solana-validator.log \
--accounts /home/sol/accounts \
--ledger /home/sol/ledger \
--rpc-port 8899 \
--entrypoint entrypoint.testnet.solana.com:8001 \
--expected-genesis-hash 4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY Verification:
$ solana catchup <VALIDATOR_PUBKEY> Step 7: Monitoring
- Solana Watchtower: Alerts for downtime/stake changes.
- Custom Health Checks: Poll
getHealthRPC. - Third-Party Tools: Datadog, Splunk, or Stakewiz.
Step 8: Delegate Stake
Create Stake Account:
$ solana create-stake-account stake_acct_1.json 1 --stake-authority stake_auth.jsonDelegate:
$ solana delegate-stake stake_acct_1.json <VALIDATOR_PUBKEY>
Activation: Stake becomes active next epoch.
Step 9: Publish Validator Info
$ solana validator-info publish "My Validator" \
--website "https://myvalidator.com" \
--icon-url "https://myvalidator.com/icon.png" \
--details "High-performance Solana validator." FAQ
Q: How much SOL is needed to start voting?
A: ~1-2 SOL/day for voting transactions.
Q: Can I run a validator on cloud servers?
A: Possible but not cost-effective; dedicated hardware is recommended.
Q: How do I attract stake to my validator?
A: Set competitive commissions, publish metadata, and join delegation programs.
๐ Explore advanced validator strategies
Conclusion
Your Solana validator is now operational! Join the Validator Community for updates and support.
Additional Resources: