Solana Testnet Validator - Schnellstart
Installation und Start des Validators
bash
curl -fsSL https://storage.slv.dev/slv/install | sh
slv validator init
slv validator deploycurl -fsSL https://storage.slv.dev/slv/install | sh
slv validator init
slv validator deploySolana 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>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➜ slv v init
? Select Solana Network (testnet) › testnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
noIn 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? What's the user for the server? (ubuntu) › ubuntuIP-Adresse des Servers eingeben
Geben Sie die IP-Adresse des Servers ein.
bash
? What's the IP address of the server? ›? 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? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeededAnschließ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? Select Validator Type (firedancer-jito)
agave
jito
jito-bam
firedancer-agave
❯ firedancer-jitoIdentity-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? 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.xBitte 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📍 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.wtfVote-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>? 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 testnetslv v deploy -n testnetZunä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) › YesYour 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) › YesFertig! 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 msolv 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-testslv v set:identity -n testnet --pubkey epics-testDieser Befehl legt den Identity-Schlüssel fest, der auf Ihrem lokalen Computer an folgendem Ort liegt:
~/.slv/keys/<name>.jsonFiredancer 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> --rmslv v restart -n testnet --pubkey <name> --rmSLV-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 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