Solana Mainnet Validator - Quickstart
Introduction
To deploy a Solana mainnet validator, you'll use the SLV command-line tool.
This quickstart guide explains how to launch and deploy a mainnet validator hot spare.
SLV mainnet validators support
keyless operation
.
No sensitive information is stored within the validator node.You must have Ubuntu 24.04 LTS clean installed on your server.
Preparing a Baremetal Server
While it is possible to run a Solana node on VPS or virtual machines (VM), achieving optimal performance and stable operation is challenging. Solana officially recommends the use of baremetal servers.
Recommended server specifications are as follows:
- Agave recommended specs: 24-core CPU, 256GB RAM or higher
- Firedancer recommended specs: 32-core CPU, 512GB RAM or higher
For the best balance of cost and performance, choosing Agave with a 24-core CPU and 384GB RAM is ideal. (This recommendation ensures not merely the minimum to run a validator, but stable operation and reliable returns.) SLV Metal offers this configuration starting at β¬580 per month.
When you run the
slv v init
command, you will be asked whether your baremetal server is already set up:β slv v init ? Select Solana Network (testnet) βΊ mainnet ? π‘οΈ Do you have a Solana Node Compatible Server? (no) β― yes no
This tutorial assumes you select
yes
.If you have not yet prepared your baremetal server, please refer to the Baremetal Server Setup Guide.
Additionally, you may find these resources helpful:
Deploy Solana Mainnet Jito Validator
This command will prompt you to provide necessary information to deploy.
slv v init
New SLV Deployment is always use
unstaked-keypair.json
for the identity key.
This is the best practice to avoid double voting, and etc.So Please make sure to set the authorized identity key with
slv v set:identity
after the deployment.
Most of the mainnet case you use slv v switch
to change the identity key with no downtime.
Please refer to this guide for more information.Select the Solana Network
Select the Solana Network you want to deploy.
slv v init ? Select Solana Network (mainnet) testnet β― mainnet
Input Server's Default Username
Most of the time, the default username is
ubuntu
.? What's the user for the server? (ubuntu) βΊ ubuntu
Input Server's IP Address
Input the IP address of the server.
? What's the IP address of the server? βΊ
Set RSA Key for SSH
β» Please set the path to your RSA key. The default path is
~/.ssh/id_rsa
.
Currently, only the default path is supported.? What's the path to your RSA key? (~/.ssh/id_rsa) βΊ ~/.ssh/id_rsa π Checking SSH connection... βοΈ SSH connection succeeded
Then SLV will check the connection to the server. If the connection is
successful, the next step will be prompted.
Select Solana Validator Type
Select the type of Solana validator.
? Select Validator Type (jito) β― jito firedancer
Set Commission Rate
Set the commission rate for your validator.
β» 1000 equals 10%.
? Enter Commission Bps (1000) βΊ 1000
Set Region
Enter the region where the server is located.
? π Select Block Engine Region β― amsterdam frankfurt ny salt_lake_city tokyo
Set Relayer URL
Enter the Relayer URL.
? Enter Relayer URL (http://localhost:11226) βΊ http://localhost:11226
Set Relayer Account
Enter the Relayer Account.
? Enter Relayer Account(Optional) () βΊ xxxxxxxxxxxPubkeyxxxxxxxxxxxxxxxxxxxx
Set Staked RPC Identity (Optional)
Enter the Staked RPC Identity.
If you don't have a specific setting, press Enter to skip.
? Enter Staked RPC Identity(Optional) () βΊ
Set Snapshot URL (Optional)
Enter the Snapshot URL.
If you don't have a specific setting, press Enter to skip.
? Enter Snapshot URL(Optional) () βΊ http://
Generate or Set the Solana Validator Identity
You can generate a new identity key or set an existing identity key. This
example shows how to set an existing identity key.
? Do you want to create a new identity key now? (Y/n) βΊ No ? Please Enter Your Identity Public Key βΊ EjDwu2Czy8eWEYRuNwtjniYks47Du3KNJ6JY9rs3aFSV β οΈ Please place your identity key in ~/.slv/keys/EjDwu2Czy8eWEYRuNwtjniYks47Du3KNJ6JY9rs3aFSV.json . . βοΈ Success β Inventory updated to ~/.slv/inventory.yml β Successfully created solv user on x.x.x.x
Please place your identity key in
~/.slv/keys/<your-pubkey>.json
.
β» This key is not copied into the node, but is needed to later change to an authorized identity key.Then, SLV will create the solv user with your password.
Generate or Set the Solana Vote Account
You can generate a new vote account key or set an existing vote account key.
This example shows how to set an existing vote account key.
? Do you want to create a new vote account key now? (Y/n) βΊ No ? Please Enter Your Vote Account Public Key > <your-vote-account>
Set Your Authority Public Key
Please input your authority public key. This key is used to withdraw rewards
from the vote account.
? Please Enter Your Vote Account's Authority Key βΊ <your-authority-pubkey> βοΈ Validator mainnet config saved to ~/.slv/inventory.mainnet.validators.yml
Set UFW Firewall
The UFW firewall is configured to allow SSH connections only from specific IP addresses.
To add to the existing whitelist, select
Keep and add more
.π Updating Allowed SSH IPs for mainnet_validators Current Allowed SSH IPs: - x.x.x.x - x.x.x.x ? What would you like to do with the current IPs? β― Keep and add more Replace all Keep as is
Next, enter the IP addresses that are allowed to connect to the node.
π Updating Allowed IPs for mainnet_validators Current Allowed IPs: - x.x.x.x - x.x.x.x ? What would you like to do with the current IPs? β― Keep and add more Replace all Keep as is
This completes the firewall configuration.
To update the whitelist later, run the following command:
slv v update:allowed-ips
~/.slv/versions.yml
saves the configuration, including IP and version information.~/.slv/inventory.mainnet.validators.yml
saves the validator node information.Deploy the Validator
Once you confirm the configuration, the deployment will start.
slv v deploy -n mainnet -p elsoul-spare Your Mainnet Validators Settings: ββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββ β Identity Key β elsoul-spare β ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€ β Vote Key β ELLB9W7ZCwRCV3FzWcCWoyKP6NjZJKArLyGtkqefnHcG β ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€ β Authority Key β auth β ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€ β IP β 185.209.178.39 β ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€ β Validator Type β jito β ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€ β Version β 2.1.16 β ββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββ ? Do you want to continue? (Y/n) βΊ Yes . . . Successfully deployed validator on mainnet β‘οΈβ‘οΈβ‘οΈ Enhanced Solana RPC Connection API Key β‘οΈβ‘οΈβ‘οΈ We're excited to offer a free API key exclusively for the Validators DAO community π It's our way of supporting the community and empowering you with fast, reliable connections. To get your Free API key, simply join us through the link below: Validators DAO: `https://discord.gg/X4BgkBHavp` Unlock fast connections and elevate your experience with your very own API key π
It's done! Your Solana Validator is now deployed. It will take some time to
catch up with the Solana network.
Debugging & Monitoring
You can debug and monitor the Solana RPC node after deployment.
$ solv m
solv
is an alias for agave-validator -l /mnt/ledger
.
This setting is added to ~/.profile
during the RPC node deployment.Change the Identity Key
After the deployment, you need to change the identity key from the unstaked key to the authorized identity key.
slv v set:identity -n mainnet --pubkey <your-identity-pubkey>
This command will change the identity key to the authorized identity key.
β» For no-downtime migration - Please refer to this guide for more information.
SLV Validator Commands
Usage: slv validator Version: 0.8.0 Description: Manage Solana Validator Nodes Options: -h, --help - Show this help. Commands: init - Initialize a new validator deploy - Deploy Validators list - List validators set:identity - Set Validator Identity set:unstaked - Set Validator Identity to Unstaked Key Stop/Change Identity/Start restart - Stop and Start Validator setup:firedancer - Setup Firedancer Validator - Testnet Only setup:relayer - Setup Jito Relayer - Mainnet Only deploy:relayer - Setup Jito Relayer - Mainnet Only update:version - Update Validator Version update:script - Update Validator Startup Config apply - Apply Ansiible Playbook update:allowed-ips - Update allowed IPs for mainnet validator nodes switch - Switch Validator Identity - No DownTime Migration