Skip to content

Releases: ValidatorsDAO/slv

v0.3.1

27 Dec 16:38
Compare
Choose a tag to compare

The Toolkit for Solana Devs

SLV is a toolkit for Solana developers. It provides a set of tools to help
developers build, test, and deploy Solana Validatros 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!

Validators DAO Discord

Dependencies

  • OS MacOS or Linux

※ Please use WSL2 for Windows users.

slv Install script will install the following dependencies.

Please install the following dependencies manually if install script fails.

Installation & Validator (Firedancer) Launch

Install slv CLI

curl -fsSL https://storage.slv.dev/slv/install | sh
slv validator init
slv validator deploy

Usage

slv v --help

Deploy Solana Validator Testnet with Firedancer

※ 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 aurhorized identity key with slv v set:identity
after the deployment.

Input Server's Default Username

Most of the time, the default username is ubuntu.

slv v init
? 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.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.

Set the solv user password

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

Select the Solana Network you want to deploy. ※ Currently, only the testnet is
supported.

? Select Solana Network (testnet)
❯ testnet
  mainnet

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. Then, slv
will create 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>
⚠️ Please place your voteAccount pubkey in 
        
  ~/.slv/keys/<your-vote-account>.json

Please place your vote account key in ~/.slv/keys/<your-vote-account>.json.

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 Authrority Key › <your-authority-pubkey>
✔︎ Validator testnet config saved to ~/.slv/config.validator.testnet.yml

Now you can deploy with:

$ slv v deploy -n testnet

Now your configuration is saved to ~/.slv/config.validator.testnet.yml.

Deploy the Solana Validator

Once you confirm the configuration, the deployment will start.

slv v deploy -n testnet
Your Testnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key   │ EjDwu2Czy8eWEYRuNwtjniYks47Du3KNJ6JY9rs3aFSV │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key       │ EwoVPLUhdhm722e7QWk8GMQ43917qRXiC9HFyefEMiSV │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key  │ EcT4NsMPwxanusdy3dza5nznqwuKo9Pz3GzW5GPD32SV │
├────────────────┼──────────────────────────────────────────────┤
│ IP             │ x.x.x.x                                      │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ firedancer                                   │
├────────────────┼──────────────────────────────────────────────┤
│ Version        │ 0.302.20104                                  │
└────────────────┴──────────────────────────────────────────────┘
? 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.

Change the Identity Key from Unstaked Key to 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.

※ Nodowntime Migration is not available with Firedancer yet. We will updated as
soon as it's available.

Restart Firedancer

If you have any issues with the validator, you can restart the firedancer with
the following command.

If you use the --rm option, the validator will be stopped and removed ledger
and snapshot dirs, and Download Snapshot with the snapshot finder and start the
validator.

slv v restart -n testnet --pubkey <your-identity-pubkey> --rm

slv Validator Commands

Usage:   slv validator
Version: 0.3.1        

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       - Restart validator

Community Support

If you have any questions or need help, please join our Discord community.

Validators DAO Discord