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)
ComposanteValidateurNœud RPC (référence)
CPU2,8 GHz+ / AMD Gen3+ / Intel Ice Lake+ / Extensions SHA / AVX216 cœurs / 32 fils+
RAM256 Go+512 Go+
DisqueNVMe Gen3 x4 ou mieux / Séparation de comptes-ledger-Snapshots recommandéeGrande capacité recommandée
GPUNon requisNon 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
Ce 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
 mainnet

Nom 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

Adresse IP du serveur d'entrée

Saisissez l'adresse IP du serveur.
bash
? 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
Ensuite, 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

Fixation 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)

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
Veuillez 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

Gé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>
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

Déployer le Validateur

Une fois la configuration confirmée, le déploiement commencera.
bash
slv v deploy -n mainnet -p epics-sub
bash
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 m
C'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 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-sub
Cette 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 Migration