Solana Testnet Validator - Schnellstart

Installation und Start des Validators

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

Solana Testnet Firedancer Validator bereitstellen

🚀 Voraussetzungen Bitte bereiten Sie einen Server vor, auf dem Ubuntu 24.04 LTS frisch installiert ist.
🔑 Zum Umgang mit Schlüsseln Bei neuen SLV-Firedancer-Bereitstellungen wird aus Sicherheitsgründen zunächst immer unstaked-keypair.json als Identity-Schlüssel verwendet.
Dies ist eine bewährte Vorgehensweise, um kritische Probleme wie Double Voting zu vermeiden.
✅ Identity-Einstellung nach der Bereitstellung Legen Sie nach der Bereitstellung unbedingt mit dem folgenden Befehl den autorisierten Identity-Schlüssel fest:
bash
slv v set:identity -n testnet --pubkey <name>

Vorbereitung eines Bare-Metal-Servers für Testnet

Solana-Knoten lassen sich zwar auf einem VPS oder auf virtuellen Maschinen (VM) betreiben, doch optimale Leistung und Stabilität sind in der Praxis schwer zu erreichen. Solana empfiehlt offiziell den Einsatz von Bare-Metal-Servern, die eine deutlich höhere Leistung bieten als virtualisierte Umgebungen.
Da Testnet-Umgebungen im Vergleich zum Mainnet eine geringere Last haben, haben wir einen stabilen Betrieb mit Servern mit 16-Core-Ryzen-CPU und 128 GB DDR5-RAM bestätigt. Diese Serverkonfiguration hilft, die Betriebskosten zu senken, und wird daher empfohlen.
Wenn Sie den Befehl slv v init ausführen, werden Sie gefragt, ob Ihr Bare-Metal-Server bereits eingerichtet ist:
bash
➜ slv v init
? Select Solana Network (testnet) › testnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
  no
In diesem Tutorial wird davon ausgegangen, dass Sie yes auswählen.
Wenn Sie Ihren Bare-Metal-Server noch nicht vorbereitet haben, folgen Sie bitte dem Leitfaden zur Einrichtung des Bare-Metal-Servers, um die Einrichtung abzuschließen.

Standard-Benutzernamen des Servers eingeben

In den meisten Fällen lautet der Standard-Benutzername ubuntu oder root.
bash
? What's the user for the server? (ubuntu) › ubuntu

IP-Adresse des Servers eingeben

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

RSA-Schlüssel für SSH festlegen

※ Bitte legen Sie den Pfad zu Ihrem RSA-Schlüssel fest. Der Standardpfad ist ~/.ssh/id_rsa. Derzeit wird nur der Standardpfad unterstützt, übernehmen Sie ihn daher bitte unverändert.
bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded
Anschließend prüft SLV die Verbindung zum Server. Wenn die Verbindung erfolgreich ist, wird der nächste Schritt angezeigt.

Solana-Validator-Typ auswählen

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

Identity-Schlüssel des Solana-Validators generieren oder festlegen

Sie können einen neuen Identity-Schlüssel generieren oder einen vorhandenen Identity-Schlüssel festlegen. Dieses Beispiel zeigt, wie Sie einen vorhandenen Identity-Schlüssel mit dem Namen "epics-test" festlegen.
bash
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp
? Enter Inventory Name (TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp) › epics-test
⚠️ Please place your identity key in

  ~/.slv/keys/TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.x
Bitte legen Sie Ihren Identity-Schlüssel unter ~/.slv/keys/<your-pubkey>.json ab. Anschließend erstellt SLV den Benutzer solv mit einem Passwort.

Automatische Regionserkennung

Als Nächstes pingt das System von Ihrem konfigurierten Knoten aus jede Block Engine an, um automatisch die nächstgelegene Region zu ermitteln. Anhand der tatsächlich gemessenen Ping-Werte können Sie die optimale Region auswählen.
bash
📍 Measuring latencies from x.x.x.x to testnet regions...
  Pinging Dallas (dallas.testnet.block-engine.jito.wtf)...
  Pinging New York (ny.testnet.block-engine.jito.wtf)...
  ✅ New York: 74.341 ms
  ✅ Dallas: 114.722 ms

🎯 Nearest region: 🇺🇸 New York
   Latency: 74.341 ms
   Block Engine: https://ny.testnet.block-engine.jito.wtf
   Shred Receiver: 64.130.35.224:1002
   Relayer: http://ny.testnet.relayer.jito.wtf:8100
   NTP Server: ntp.dallas.jito.wtf

Vote-Account-Schlüssel des Solana-Validators generieren oder festlegen

Sie können einen neuen Vote-Account-Schlüssel generieren oder einen vorhandenen Vote-Account-Schlüssel festlegen. Dieses Beispiel zeigt, wie Sie einen vorhandenen Vote-Account-Schlüssel festlegen.
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 Konfiguration wurde jetzt in ~/.slv/inventory.testnet.validators.yml gespeichert.

Validator bereitstellen

Sobald Sie die Konfiguration bestätigen, beginnt die Bereitstellung.
bash
slv v deploy -n testnet
Zunächst wird die Konfiguration zur Bestätigung angezeigt. Wählen Sie „Yes“, um fortzufahren.
bash
Your Testnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key   │ TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp  │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key       │ 6XdQ6szHJjm1t3XbgahSS6WVEhsrs5fniZbLgfkN1QWn │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key  │ authAccount                                  │
├────────────────┼──────────────────────────────────────────────┤
│ IP             │ x.x.x.x.                                     │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ jito                                         │
├────────────────┼──────────────────────────────────────────────┤
│ Version        │ 3.0.7-jito                                   │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
Fertig! Ihr Solana-Validator ist jetzt bereitgestellt. Es dauert eine Weile, bis er mit dem Solana-Netzwerk synchronisiert ist.

Debugging & Monitoring

Nach der Bereitstellung können Sie auf dem Solana-RPC-Knoten debuggen und überwachen. Den Status des Solana-RPC-Knotens können Sie mit den folgenden Befehlen prüfen:
bash
$ solv m
solv ist ein Alias für agave-validator -l /mnt/ledger. Diese Einstellung wird bei der Bereitstellung des RPC-Knotens zu ~/.profile hinzugefügt.

Identity-Schlüssel wechseln

Nach der Bereitstellung müssen Sie vom Unstaked-Schlüssel auf den autorisierten Identity-Schlüssel wechseln.
bash
slv v set:identity -n testnet --pubkey epics-test
Dieser Befehl legt den Identity-Schlüssel fest, der auf Ihrem lokalen Computer an folgendem Ort liegt:
~/.slv/keys/<name>.json

Firedancer neu starten

Wenn Probleme mit dem Validator auftreten, können Sie Firedancer mit dem folgenden Befehl neu starten.
Die Option --rm stoppt den Validator, entfernt die Ledger- und Snapshot-Verzeichnisse, lädt mit dem Snapshot Finder einen Snapshot herunter und startet anschließend den Validator.
bash
slv v restart -n testnet --pubkey <name> --rm

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