Validateur Solana Mainnet - Quickstart
Présentation
Pour déployer un validateur de réseau principal Solana, vous utiliserez l'outil de ligne de commande SLV.
Ce guide de démarrage rapide explique comment lancer et déployer un validateur de réseau principal.
Vous devez avoir Ubuntu 24.04 LTS propre installé sur votre serveur.
Préparation d'un serveur bare metal
Bien qu'il soit possible d'exécuter un nœud Solana sur VPS ou des machines virtuelles (VM), obtenir des performances optimales et un fonctionnement stable est difficile. Solana recommande officiellement l'utilisation de serveurs bare metal.
Les validateurs Mainnet doivent être fournis pour rester stables pendant la congestion.
Voici une ligne directrice basée sur la documentation officielSolana / Agave / Firedancer.
Validateur Agave (exigences et recommandations officielles)
Crédits obligatoires
- Il n'existe pas d'exigence minimale stricte en matière de SOL
- Besoins du Compte de crédit 0.02685864 SOL devant être exonéré de loyer
- Les opérations de vote peuvent coûter JUSQU'A ~1.1 SOL/jour
Exigences en matière de matériel (ligne directe)
| Composante | Validateur | Nœud RPC (référence) |
|---|---|---|
| CPU | 2,8 GHz+ / AMD Gen3+ / Intel Ice Lake+ / Extensions SHA / AVX2 | 16 cœurs / 32 fils+ |
| RAM | 256 Go+ | 512 Go+ |
| Disque | NVMe Gen3 x4 ou mieux / Séparation de comptes-ledger-Snapshots recommandée | Grande capacité recommandée |
| GPU | Non requis | Non requis |
Remarque: La vitesse de l'horloge et le débit efficace sont considérés comme plus importants que le nombre de cœurs.
Firedancer (Frankendancer)
Firedancer (Frankendancer) dépend actuellement d'Agave,
au minimum, il suppose la configuration recommandée par Agave ou plus.
minimum
- CPU 24-core @ >2,8 GHz
- 256 Go RAM
- 2TB NVMe (haute TBW)
Recommandation
- CPU 32-core @ > 3 GHz (AVX512 soutenu)
- 512 Go RAM (ECC)
- Comptes / Séparation du grand livre
- Bande passante réseau de 1Gbps ou plus
Pour une configuration rentable équilibrée, Agave avec un processeur 24-core et 384 Go de RAM est une ligne directrice pratique.
Quand vous lancez
slv v init commande, on vous demandera si votre serveur bare metal est déjà configuré:bash
➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
no➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
noCe tutoriel suppose que vous sélectionnez
yes.Si vous n'avez pas encore préparé votre serveur bare metal, veuillez vous référer au Guide de configuration du serveur bare metal.
De plus, vous trouverez ces ressources utiles:
Déployer Solana Mainnet Firedancer Jito Validateur
Les nouveaux déploiements SLV utilisent toujours
unstaked-keypair.json comme clé d'identité.
Il s'agit d'une pratique exemplaire pour éviter le double vote et d'autres questions.Par conséquent, après le déploiement, veuillez utiliser
slv v set:identity pour définir la clé d'identité autorisée.Dans la plupart des opérations de validation Mainnet, vous utiliserez
slv v switch changer la clé d'identité.
Pour la migration sans interruption, veuillez vous référer à ce guide.Sélectionnez le réseau Solana
Sélectionnez le réseau Solana que vous souhaitez déployer.
bash
slv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetslv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetNom d'utilisateur par défaut du serveur d'entrée
La plupart du temps, le nom d'utilisateur par défaut est
ubuntu ou root.bash
? What's the user for the server? (ubuntu) › ubuntu? What's the user for the server? (ubuntu) › ubuntuAdresse IP du serveur d'entrée
Saisissez l'adresse IP du serveur.
bash
? What's the IP address of the server? ›? What's the IP address of the server? ›Définir la clé RSA pour SSH
Veuillez définir le chemin vers votre clé RSA. Le chemin par défaut est
~/.ssh/id_rsa.bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeededEnsuite, SLV vérifiera la connexion au serveur. Si la connexion est
La prochaine étape sera déclenchée.
Sélectionner le type de validation de Solana
Sélectionnez le type de validateur Solana.
bash
? Select Validator Type (firedancer-jito)
agave
jito
jito-bam
firedancer-agave
❯ firedancer-jito? Select Validator Type (firedancer-jito)
agave
jito
jito-bam
firedancer-agave
❯ firedancer-jitoFixation du taux de la Commission
Définissez le taux de commission pour votre validateur.
1000 est égal à 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)? Enter Commission BPS (Max 1000 = 10%) (1000)Générer ou définir la clé de validation de Solana
Vous pouvez générer une nouvelle clé d'identité ou définir une clé d'identité existante.
Cet exemple montre comment définir une clé d'identité existante avec le nom "epics-sub".
bash
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM
? Enter Inventory Name (KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM) › epics-sub
⚠️ Please place your identity key in
~/.slv/keys/KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.x? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM
? Enter Inventory Name (KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM) › epics-sub
⚠️ Please place your identity key in
~/.slv/keys/KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.xVeuillez placer votre clé d'identité dans
~/.slv/keys/<your-pubkey>.json.Détection automatique de la région
Ensuite, le système ping chaque moteur de bloc de votre nœud configuré pour détecter automatiquement la région la plus proche. En mesurant les valeurs réelles de ping, vous pouvez sélectionner la région optimale.
bash
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
📍 Measuring latencies from x.x.x.x to mainnet regions...
Pinging Amsterdam (amsterdam.mainnet.block-engine.jito.wtf)...
Pinging Dublin (dublin.mainnet.block-engine.jito.wtf)...
Pinging Frankfurt (frankfurt.mainnet.block-engine.jito.wtf)...
Pinging London (london.mainnet.block-engine.jito.wtf)...
Pinging New York (ny.mainnet.block-engine.jito.wtf)...
Pinging Salt Lake City (slc.mainnet.block-engine.jito.wtf)...
Pinging Singapore (singapore.mainnet.block-engine.jito.wtf)...
Pinging Tokyo (tokyo.mainnet.block-engine.jito.wtf)...
✅ London: 8.801 ms
✅ Dublin: 12.946 ms
✅ Frankfurt: 5.888 ms
✅ Amsterdam: 0.169 ms
✅ New York: 74.321 ms
✅ Salt Lake City: 115.577 ms
✅ Singapore: 154.200 ms
✅ Tokyo: 229.989 ms
🎯 Nearest region: 🇳🇱 Amsterdam
Latency: 0.169 ms
Block Engine: https://amsterdam.mainnet.block-engine.jito.wtf
Shred Receiver: 74.118.140.240:1002
Relayer: http://amsterdam.mainnet.relayer.jito.wtf:8100
NTP Server: ntp.amsterdam.jito.wtf✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
📍 Measuring latencies from x.x.x.x to mainnet regions...
Pinging Amsterdam (amsterdam.mainnet.block-engine.jito.wtf)...
Pinging Dublin (dublin.mainnet.block-engine.jito.wtf)...
Pinging Frankfurt (frankfurt.mainnet.block-engine.jito.wtf)...
Pinging London (london.mainnet.block-engine.jito.wtf)...
Pinging New York (ny.mainnet.block-engine.jito.wtf)...
Pinging Salt Lake City (slc.mainnet.block-engine.jito.wtf)...
Pinging Singapore (singapore.mainnet.block-engine.jito.wtf)...
Pinging Tokyo (tokyo.mainnet.block-engine.jito.wtf)...
✅ London: 8.801 ms
✅ Dublin: 12.946 ms
✅ Frankfurt: 5.888 ms
✅ Amsterdam: 0.169 ms
✅ New York: 74.321 ms
✅ Salt Lake City: 115.577 ms
✅ Singapore: 154.200 ms
✅ Tokyo: 229.989 ms
🎯 Nearest region: 🇳🇱 Amsterdam
Latency: 0.169 ms
Block Engine: https://amsterdam.mainnet.block-engine.jito.wtf
Shred Receiver: 74.118.140.240:1002
Relayer: http://amsterdam.mainnet.relayer.jito.wtf:8100
NTP Server: ntp.amsterdam.jito.wtfGénérer ou définir la clé du compte de vote Solana Validator
Vous pouvez générer une nouvelle clé de compte de vote ou définir une clé de compte de vote existante.
Cet exemple montre comment définir une clé de compte de vote existante.
bash
? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>Les informations du nœud de validation seront sauvegardées dans
~/.slv/inventory.mainnet.validators.yml.bash
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
✔ Successfully created solv user on epics-sub
✔︎ Validator Mainnet Config Saved To ~/.slv/inventory.mainnet.validators.yml
Now you can deploy with:
$ slv v deploy -n mainnet -p epics-sub✔︎ Success
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml
✔ Successfully created solv user on epics-sub
✔︎ Validator Mainnet Config Saved To ~/.slv/inventory.mainnet.validators.yml
Now you can deploy with:
$ slv v deploy -n mainnet -p epics-subDéployer le Validateur
Une fois la configuration confirmée, le déploiement commencera.
bash
slv v deploy -n mainnet -p epics-subslv v deploy -n mainnet -p epics-subbash
Your Mainnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key │ KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key │ EpicsoqLdDP8qRn3wQRKTSKAXbjK9dUgFfNPRQS77MQD │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key │ authAccount │
├────────────────┼──────────────────────────────────────────────┤
│ IP │ x.x.x.x │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ firedancer-jito │
├────────────────┼──────────────────────────────────────────────┤
│ Version │ 0.712.30006 │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
.
.
.
Successfully Deployed RPC 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 🚀
You can monitor your Node with the following steps:
Log in to your server with SSH:
ssh [email protected]
Then, run the following command to monitor your node:
$ solv mYour Mainnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key │ KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key │ EpicsoqLdDP8qRn3wQRKTSKAXbjK9dUgFfNPRQS77MQD │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key │ authAccount │
├────────────────┼──────────────────────────────────────────────┤
│ IP │ x.x.x.x │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ firedancer-jito │
├────────────────┼──────────────────────────────────────────────┤
│ Version │ 0.712.30006 │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
.
.
.
Successfully Deployed RPC 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 🚀
You can monitor your Node with the following steps:
Log in to your server with SSH:
ssh [email protected]
Then, run the following command to monitor your node:
$ solv mC'est fait! Votre Solana Validator est maintenant déployé. Il faudra du temps pour
synchroniser avec le réseau Solana.
Débogue et surveillance
Après le déploiement, vous pouvez déboguer et surveiller dans le nœud RPC Solana.
Vous pouvez vérifier l'état du nœud RPC Solana en utilisant les commandes suivantes:
bash
$ solv m$ solv msolv est un pseudonyme pour agave-validator -l /mnt/ledger.
Cet endpoint est ajouté à ~/.profile pendant le déploiement du nœud RPC.Changer la clé d'identité
Après le déploiement, vous devez changer la clé non prise de la clé d'identité autorisée.
bash
slv v set:identity -n mainnet --pubkey epics-subslv v set:identity -n mainnet --pubkey epics-subCette commande changera la clé d'identité à la clé d'identité autorisée.
Pour une migration sans interruption, veuillez vous référer à ce guide.
Commandes de validation SLV
bash
slv validator --help
Usage: slv validator
Version: 0.9.700
Description:
🛠️ Manage Solana Validator Nodes 🛠️
Options:
-h, --help - Show this help.
Commands:
init - 🚀 Initialize a new validator configuration
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:firedancer - 🔄 Update Firedancer Version
build:solana-cli - 🛠️ Build Solana CLI from Source
install:solana - ➡️ Install Solana CLI Binary
update:script - ⚙️ Update Validator Startup Config
update:jinja - 🧩 Update Jinja Template
start - 🟢 Start Validator
stop - 🔴 Stop Validator
restart - ♻️ Restart Validator
cleanup - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
get:snapshot - 💾 Download Snapshot with aria2c
gen:vote-account - 🗳️ Generate Vote Account
switch - 🔁 Switch Validator Identity - No DownTime Migrationslv validator --help
Usage: slv validator
Version: 0.9.700
Description:
🛠️ Manage Solana Validator Nodes 🛠️
Options:
-h, --help - Show this help.
Commands:
init - 🚀 Initialize a new validator configuration
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:firedancer - 🔄 Update Firedancer Version
build:solana-cli - 🛠️ Build Solana CLI from Source
install:solana - ➡️ Install Solana CLI Binary
update:script - ⚙️ Update Validator Startup Config
update:jinja - 🧩 Update Jinja Template
start - 🟢 Start Validator
stop - 🔴 Stop Validator
restart - ♻️ Restart Validator
cleanup - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
get:snapshot - 💾 Download Snapshot with aria2c
gen:vote-account - 🗳️ Generate Vote Account
switch - 🔁 Switch Validator Identity - No DownTime Migration