Solana Mainnet Validator - Snelstart

Inleiding

Om een Solana-mainnet-validator te deployen, gebruik je de commandlinetool van SLV. Deze snelstarthandleiding legt uit hoe je een hot spare van een mainnet-validator start en deployt.
Op je server moet een schone installatie van Ubuntu 24.04 LTS staan.

Een bare-metal server voorbereiden

Het is mogelijk om een Solana-node op een VPS of virtuele machine (VM) te draaien, maar optimale prestaties en een stabiele werking zijn dan lastig te bereiken. Solana raadt officieel het gebruik van bare-metal servers aan.
Mainnet-validators zouden zo ingericht moeten zijn dat ze ook tijdens congestie stabiel blijven.
Hieronder staat een richtlijn op basis van de officiële documentatie van Solana / Agave / Firedancer.

Agave-validator (officiële vereisten en aanbevelingen)

SOL-vereisten
  • Bij elke epoch-grens moet het Vote Account minimaal het rent-exempt-minimum plus één Validator Admission Ticket bevatten (0.8 SOL bij een slottijdinstelling van 200 ms)
  • Het Validator Admission Ticket wordt in het eerste block van elke epoch van het Vote Account afgeschreven
  • Controleer het rent-exempt-minimum met solana rent 3762 (3762 is de grootte van het Vote Account in bytes)
  • De Identity Key betaalt niet langer een vergoeding per stem — onder Alpenglow worden stemmen niet meer als transacties verzonden
Hardwarevereisten (richtlijn)
ComponentValidatorRPC-node (ter referentie)
CPU2.8GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA-extensies / AVX216 cores / 32 threads+
RAM256GB+512GB+
SchijfNVMe Gen3 x4 of beter / scheiding van Accounts-Ledger-Snapshots aanbevolenGrotere capaciteit aanbevolen
GPUNiet vereistNiet vereist
Opmerking:
Kloksnelheid en effectieve doorvoer worden belangrijker geacht dan het aantal cores.

Firedancer (Frankendancer)

Firedancer (Frankendancer) is momenteel afhankelijk van Agave,
dus vereist het minimaal de aanbevolen configuratie voor Agave of een hogere.
Minimum
  • 24-core CPU @ >2.8GHz
  • 256GB RAM
  • 2TB NVMe (High TBW)
Aanbevolen
  • CPU met 32 cores @ >3GHz (met AVX512-ondersteuning)
  • 512GB RAM (ECC)
  • Scheiding van Accounts / Ledger
  • Netwerkbandbreedte van 1Gbps of hoger
Voor een goede balans tussen kosten en prestaties is Agave met een 24-core CPU en 384GB RAM een praktische richtlijn.
Wanneer je het commando slv v init uitvoert, wordt gevraagd of je bare-metal server al is ingericht:
bash
➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
  no
Deze tutorial gaat ervan uit dat je yes kiest.
Heb je je bare-metal server nog niet voorbereid, raadpleeg dan de handleiding voor het inrichten van een bare-metal server.
Daarnaast kunnen deze bronnen nuttig zijn:

Een Solana Mainnet Firedancer Jito-validator deployen

Nieuwe SLV-deployments gebruiken altijd unstaked-keypair.json als identity key. Dit is een best practice om dubbel stemmen en andere problemen te voorkomen.
Gebruik daarom na de deployment slv v set:identity om de geautoriseerde identity key in te stellen.
Bij het beheer van een mainnet-validator gebruik je meestal slv v switch om de identity key te wisselen. Raadpleeg voor een migratie zonder downtime deze handleiding.

Solana-netwerk kiezen

Kies het Solana-netwerk waarop je wilt deployen.
bash
slv v init
? Select Solana Network (mainnet)
  testnet
❯ mainnet

Standaardgebruikersnaam van de server invoeren

Meestal is de standaardgebruikersnaam ubuntu of root.
bash
? What's the user for the server? (ubuntu) › ubuntu

IP-adres van de server invoeren

Voer het IP-adres van de server in.
bash
? What's the IP address of the server? ›

RSA-sleutel voor SSH instellen

※ Geef het pad naar je RSA-sleutel op. Het standaardpad is ~/.ssh/id_rsa.
bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded
Daarna controleert SLV de verbinding met de server. Als de verbinding slaagt, verschijnt de volgende stap.

Type Solana-validator kiezen

Kies het type Solana-validator.
bash
? Select Validator Type (firedancer-jito)
  agave
  jito
  jito-bam
  firedancer-agave
❯ firedancer-jito

Commission-percentage instellen

Stel het commission-percentage voor je validator in. ※ 1000 staat gelijk aan 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)

Identity key van de Solana-validator genereren of instellen

Je kunt een nieuwe identity key genereren of een bestaande identity key instellen. In dit voorbeeld zie je hoe je een bestaande identity key instelt met de naam "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
Plaats je identity key in ~/.slv/keys/<your-pubkey>.json.

Automatische regiodetectie

Vervolgens pingt het systeem vanaf je geconfigureerde node elke block engine om automatisch de dichtstbijzijnde regio te bepalen. Doordat de werkelijke pingwaarden worden gemeten, kun je de optimale regio kiezen.
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

Vote account key van de Solana-validator genereren of instellen

Je kunt een nieuwe vote account key genereren of een bestaande vote account key instellen. In dit voorbeeld zie je hoe je een bestaande vote account key instelt.
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>
De gegevens van de validatornode worden opgeslagen in ~/.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

De validator deployen

Zodra je de configuratie bevestigt, start de deployment.
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

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
Klaar! Je Solana-validator is nu gedeployd. Het duurt even voordat hij met het Solana-netwerk is gesynchroniseerd.

Debuggen en monitoren

Na de deployment kun je binnen de Solana-RPC-node debuggen en monitoren. Met de volgende commando's kun je de status van de Solana-RPC-node controleren:
bash
$ solv m
solv is een alias voor agave-validator -l /mnt/ledger. Deze instelling wordt tijdens de deployment van de RPC-node aan ~/.profile toegevoegd.

De identity key wijzigen

Na de deployment moet je de unstaked key vervangen door de geautoriseerde identity key.
bash
slv v set:identity -n mainnet --pubkey epics-sub
Dit commando wijzigt de identity key in de geautoriseerde identity key.
※ Raadpleeg voor een migratie zonder downtime deze handleiding.

SLV-validatorcommando's

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