Solana Mainnet Validator - Schnellstart

Einleitung

Zur Bereitstellung eines Solana Mainnet-Validators verwenden Sie das SLV-Befehlszeilentool. Dieser Schnellstart-Guide erklärt, wie man einen Mainnet-Validator-Hot-Ersatz starten und bereitstellen kann.
Sie müssen Ubuntu haben 24.04 LTS sauber auf Ihrem Server installiert.

Vorbereitung eines Bare Metal Servers

Während es möglich ist, einen Solana-Knoten auf VPS oder virtuellen Maschinen (VM) zu betreiben, ist eine optimale Leistung und stabilen Betrieb schwierig. Solana empfiehlt offiziell die Verwendung von Bare Metal-Servern.
Mainnet-Validatoren sollten vorgesehen sein, während des Staus stabil zu bleiben. Im Folgenden finden Sie eine Anleitung, die auf der offiziellen Solana / Agave / Firedancer Dokumentation basiert.

Agave Validator (offizielle Anforderungen und Empfehlungen)

SOL-Anforderungen*
  • Es gibt keine strenge Mindestanforderungen an SOL
  • Das Vote-Konto braucht 0.02685864 SOL** für Rent
  • Voting-Transaktionen kosten bis ~1.1 SOL / Tag
Hardware-Anforderungen (Richtlinie)*
KomponenteGültigRPC-Node (Referenz)
CPU2,8 GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA Erweiterungen / AVX216 Kerne / 32 Threads+
RAM256 GB+512 GB+
FestplattenspeicherNVMe Gen3 x4 oder besser / Accounts-Ledger-Snapshots Trennung empfohlenEmpfohlene größere Kapazität
GPUNicht erforderlichNicht erforderlich
Anmerkung: Taktfrequenz und effektiver Durchsatz gelten als wichtiger als Kernanzahl.

Firedancer (Frankendancer)

Firedancer (Frankendancer) ist derzeit abhängig von Agave, so nimmt es zumindest die Agave empfohlene Konfiguration oder höher an.
Mindestens*
  • 24-Core-CPU @ >2,8 GHz
  • 256 GB RAM
  • 2 TB NVMe (hohe TBW)
Angemeldet*
  • 32-Core-CPU @ >3 GHz (AVX512 unterstützt)
  • 512 GB RAM (ECC)
  • Konten / Ledger Trennung
  • Netzwerkbandbreite von 1 Gbps oder höher
Für ein ausgewogenes Kosten-Leistungs-Setup ist Agave mit 24-Core-CPU und 384 GB RAM eine praktische Leitlinie.
Wenn Sie die slv v init Befehl, Sie werden gefragt, ob Ihr Bare Metal Server bereits eingerichtet ist:
bash
 slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
 yes
  no
Dieses Tutorial übernimmt die Auswahl yes.
Wenn Sie Ihren Bare Metal Server noch nicht vorbereitet haben, lesen Sie bitte die Bare Metal Server Setup Guide.
Zusätzlich können Sie diese Ressourcen hilfreich finden:

Bereitstellung Solana Mainnet Firedancer Jito Validator

Neue SLV-Einsätze verwenden immer unstaked-keypair.json als Identitätsschlüssel. Dies ist eine beste Praxis, um Doppelabstimmung und andere Fragen zu verhindern.
Bitte verwenden Sie daher nach der Bereitstellung slv v set:identity den autorisierten Identitätsschlüssel festzulegen.
In den meisten Mainnet-Validator-Betriebn verwenden Sie slv v switch um den Identitätsschlüssel zu ändern. Für die No-downtime-Migration wenden Sie sich bitte an diese Führung.

Wählen Sie das Solana-Netzwerk

Wählen Sie das Solana-Netzwerk aus, das Sie bereitstellen möchten.
bash
slv v init
? Select Solana Network (mainnet)
  testnet
 mainnet

Benutzername des Eingabeservers

Die meisten der Zeit, der Standard-Benutzername ist ubuntu oder root.
bash
? What's the user for the server? (ubuntu) › ubuntu

IP-Adresse des Eingabeservers

Geben Sie die IP-Adresse des Servers ein.
bash
? What's the IP address of the server? ›

Set RSA Schlüssel für SSH

Bitte setzen Sie den Pfad zu Ihrem RSA-Schlüssel. Der Standardpfad ist ~/.ssh/id_rsa.
bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded
Dann wird SLV die Verbindung zum Server überprüfen. Wenn die Verbindung erfolgreich, der nächste Schritt wird aufgefordert.

Wählen Sie Solana-Validator Typ

Wählen Sie die Art des Solana-Validators aus.
bash
? Select Validator Type (firedancer-jito)
  agave
  jito
  jito-bam
  firedancer-agave
 firedancer-jito

Preis der Kommission

Richten Sie den Provisionssatz für Ihren Validatoren ein.
  • 1000 entspricht 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)

Den Solana-Validator Identity Key generieren oder einstellen

Sie können einen neuen Identitätsschlüssel generieren oder einen vorhandenen Identitätsschlüssel festlegen. Dieses Beispiel zeigt, wie man einen vorhandenen Identitätsschlüssel mit dem Namen "epics-sub" einstellt.
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
Bitte geben Sie Ihren Identitätsschlüssel an ~/.slv/keys/<your-pubkey>.json.

Automatische Regionserkennung

Als nächstes wird das System jede Block-Engine von Ihrem konfigurierten Knoten abschalten, um die nächste Region automatisch zu erkennen. Durch die Messung der tatsächlichen Pingwerte können Sie die optimale Region auswählen.
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

Den Solana-Validator Vote Account Key generieren oder einstellen

Sie können einen neuen Votumkontoschlüssel erstellen oder einen bestehenden Votumkontoschlüssel festlegen. Dieses Beispiel zeigt, wie man einen bestehenden Stimmkontoschlüssel einstellt.
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>
Die Validierungsknoteninformationen werden gespeichert, um ~/.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

Validator einsetzen

Sobald Sie die Konfiguration bestätigen, beginnt die Bereitstellung.
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
Es ist erledigt! Ihr Solana-Validator wird jetzt eingesetzt. Es wird einige Zeit dauern, synchronisieren mit dem Solana-Netzwerk.

Debugging & Monitoring

Nach dem Einsatz können Sie im Solana-RPC-Knoten debuggen und überwachen. Sie können den Status des Solana-RPC-Knotens mit folgenden Befehlen überprüfen:
bash
$ solv m
solv ist ein Alias für agave-validator -l /mnt/ledger. Diese Einstellung wird hinzugefügt ~/.profile während des RPC-Knoteneinsatzes.

Änderung des Identitätsschlüssels

Nach der Bereitstellung müssen Sie den nicht übernommenen Schlüssel zum autorisierten Identitätsschlüssel ändern.
bash
slv v set:identity -n mainnet --pubkey epics-sub
Dieser Befehl ändert den Identitätsschlüssel auf den autorisierten Identitätsschlüssel.
 Für die No-Downtime-Migration wenden Sie sich bitte an diese Führung.

SLV Validator Befehle

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