Everything you need for Solana development is hereπ
Launch validators, RPCs, and dApps at blazing speedβ‘οΈ
Doc Link: https://slv.dev/
SLV is a toolkit for Solana developers. It provides a set of tools to help developers build, test, and deploy Solana Validators and Solana-based applications.
In the newly revamped slv, you can complete all configurations from a remote machineβno more direct node logins required. This approach ensures that only essential packages are installed on the node, leaving behind no unnecessary clutter. Weβve also introduced Ansible Playbooks & Jinja Template for Linux configuration, allowing us to manage and migrate multiple validators with greater efficiency and security.
Additionally, the new slv always uses a dummy key (an invalid key named βunstaked-identity.jsonβ) for its initial startup. Once you confirm everything is running smoothly, you simply set the actual Identity and switch to the active key. Following this consistent flow helps prevent double votes and ensures youβre prepared in case the node ever becomes unreachable.
Weβll continue to provide method documentation along the way, and we look forward to your ongoing support!
MacOS or Linux
β» Please use WSL2 for Windows users.
Download WSL2 For Windows 10 https://docs.microsoft.com/en-us/windows/wsl/install
Install slv CLI
curl -fsSL https://storage.slv.dev/slv/install | sh
slv validator init
slv validator deploy
slv v --help
Usage: slv validator
Version: 0.9.10
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
setup:firedancer - π₯ Setup/Update Firedancer Validator
update:version - β¬οΈ Update Validator Version
update:script - βοΈ Update Validator Startup Config
start - π’ Start Validator
stop - π΄ Stop Validator
restart - β»οΈ Restart Validator
cleanup - π§Ή Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
get:snapshot - β‘οΈ Download Snapshot with aria2c β‘οΈ
update:allowed-ips - π‘οΈ Update allowed IPs for mainnet validator nodes
switch - π Switch Validator Identity - No DownTime Migration
run:api - π Run Validator API
SLV now supports downloading snapshots with aria2.
slv v get:snapshot
This command will download the latest snapshot.
Now you can deploy Solana Agave Testnet Validators with SLV.
slv v init
? Select Solana Network (testnet)
β― testnet
mainnet
? Select Validator Type (agave) βΊ agave
> agave
firedancer
Now you can deploy Solana Mainnet Validators with SLV.
slv v init
? Select Solana Network (testnet)
testnet
β― mainnet
? Select Validator Type (jito) βΊ firedancer
jito
> firedancer
Now you can deploy Solana RPC nodes with SLV. This feature includes the ability to deploy Geyser gRPC Plugin.
slv rpc init
SLV Metal is a high-performance bare metal server designed specifically for Solana nodes. Choosing the right server for Solana can be challenging, so we provide a curated list of fully optimized servers.
From hardware specs to network performance and Linux configuration, everything is fine-tuned for maximum efficiency. With SLV Metal, you can deploy Solana nodes in just a few commands.
slv metal list
? π‘οΈ Select SLV BareMetal Type (validator)
β― π§ͺ For Solana Testnet Validator
π° For Solana Mainnet Validator
β‘οΈ RPC - For Solana RPC Node
π¦ APP - For Trade Bot, DApp and More!
You must have Ubuntu 24.04 LTS clean installed on your server.
This command will prompt you to provide necessary information to deploy.
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 time, the default username is ubuntu
.
slv v init
? What's the user for the server? (ubuntu) βΊ ubuntu
Input the IP address of the server.
? What's the IP address of the server? βΊ
β» Please set the path to your RSA key. The default path is ~/.ssh/id_rsa
.
? 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.
Please set the password for the solv
user of the server.
8 characters or more, including numbers, uppercase and lowercase letters
? Please enter your password βΊ *********
? Please confirm your password βΊ *********
βοΈ Password saved to ~/.slv/config.pwd.yml
Encrypted password will be saved to ~/.slv/config.pwd.yml
.
Select the Solana Network you want to deploy. β» Currently, only the testnet is supported.
? Select Solana Network (testnet)
β― testnet
mainnet
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.testnet.validators.yml
β Successfully created solv user on x.x.x.x
Please place your identity key in ~/.slv/keys/<your-pubkey>.json
. Then, slv
will create solv user with your password.
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>
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 testnet config saved to ~/.slv/inventory.testnet.validators.yml
Now you can deploy with:
$ slv v deploy -n testnet
Now your configuration is saved to ~/.slv/inventory.testnet.validators.yml
.
Once you confirm the configuration, the deployment will start.
slv v deploy -n testnet -p EjDwu2Czy8eWEYRuNwtjniYks47Du3KNJ6JY9rs3aFSV
Your Testnet Validators Settings:
ββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββ
β Identity Key β EjDwu2Czy8eWEYRuNwtjniYks47Du3KNJ6JY9rs3aFSV β
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€
β Vote Key β EwoVPLUhdhm722e7QWk8GMQ43917qRXiC9HFyefEMiSV β
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€
β Authority Key β EcT4NsMPwxanusdy3dza5nznqwuKo9Pz3GzW5GPD32SV β
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€
β IP β x.x.x.x β
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€
β Validator Type β firedancer β
ββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββββ€
β Version β 0.406.20113 β
ββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββ
? Do you want to continue? (Y/n) βΊ Yes
It's done! Your Solana Validator is now deployed. It will take some time to catch up with the Solana network.
Next, You need to change the identity key from the unstaked key to the authorized 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 testnet --pubkey <your-identity-pubkey>
Then, the identity key will be changed to the authorized identity key. This command will stop firedancer, change the identity key, and restart the firedancer.
If you want to update the slv template, you can use the following command.
slv upgrade
Usage: slv
Version: 0.9.2
Description:
slv is a Toolkit for Solana Developers
Options:
-h, --help - Show this help.
-V, --version - Show the version number for this program.
-P, --print - Print slv ASCII Art
Commands:
upgrade - Upgrade slv to the latest version
bot, b - Manage Solana gRPC Geyser Client
app - Manage Solana Applications
validator, v - Manage Solana Validator Nodes
rpc, r - Manage Solana RPC Nodes
cloud, c - Manage Solana Cloud-based Applications
swap, s - Manage Solana Swap
metal, m - π SLV BareMetal: High-Performance Servers Built for Solana Nodes
signup - Signup to SLV using Discord
login - Login to SLV using Discord
check - Check RPC and gRPC endpoints
If you have any questions or need help, please join our Discord community.
- Add
slv validator init
for Solana Validator Deploy (in progress) - Add
slv rpc init
for Solana RPC Build (in progress) - Add CI/CD pipeline (Github Actions) for
slv
Release - [] Add
slv bot
for gRPC Geyser Client (in progress) - [] Add
slv swap
for Solana Token Swap (in progress) - [] Add
slv cloud
for configuring Solana App on Cloud (in progress) - [] Add
slv app
for Solana App Development (in progress) - Add
test
for keeping the codebase stable (in progress)
Install Deno
curl -fsSL https://deno.land/install.sh | sh
Run slv CLI
git clone https://github.com/ValidatorsDAO/slv.git
deno task dev --help
Run Build
deno task build
Run Test
deno test -A
SLV uses GitHub Actions for automated releases. The process is as follows:
- Update the version in
cmn/constants/version.ts
- Create and push a tag with the new version (e.g.,
v0.6.1
) - GitHub Actions will automatically:
- Run tests
- Update all version references
- Build the binaries
- Upload artifacts to storage
- Create a GitHub release
For heavy compilation tasks, SLV can use a remote build server:
- Set up a Ubuntu 24.04 LTS server
- Configure the server in
ansible/inventory.yml
- Use the remote build workflow:
# Manually trigger the workflow gh workflow run slv-remote-build.yml -f version=0.6.1 # Or push a tag git tag v0.6.1 git push origin v0.6.1
See the ansible/README.md
file for more details on remote builds. Improvements
are always welcome!
Bug reports and pull requests are welcome on GitHub at https://github.com/ValidatorsDAO/slv This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
- deno 2.x.x
The package is available as open source under the terms of the Apache-2.0 License.
Everyone interacting in the SLV projectβs codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.