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)*
| Komponente | Gültig | RPC-Node (Referenz) |
|---|---|---|
| CPU | 2,8 GHz+ / AMD Gen3+ / Intel Ice Lake+ / SHA Erweiterungen / AVX2 | 16 Kerne / 32 Threads+ |
| RAM | 256 GB+ | 512 GB+ |
| Festplattenspeicher | NVMe Gen3 x4 oder besser / Accounts-Ledger-Snapshots Trennung empfohlen | Empfohlene größere Kapazität |
| GPU | Nicht erforderlich | Nicht 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➜ slv v init
? Select Solana Network (testnet) › mainnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
noDieses 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
❯ mainnetslv v init
? Select Solana Network (mainnet)
testnet
❯ mainnetBenutzername des Eingabeservers
Die meisten der Zeit, der Standard-Benutzername ist
ubuntu oder root.bash
? What's the user for the server? (ubuntu) › ubuntu? What's the user for the server? (ubuntu) › ubuntuIP-Adresse des Eingabeservers
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? ›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? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeededDann 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? Select Validator Type (firedancer-jito)
agave
jito
jito-bam
firedancer-agave
❯ firedancer-jitoPreis der Kommission
Richten Sie den Provisionssatz für Ihren Validatoren ein.
- 1000 entspricht 10%.
bash
? Enter Commission BPS (Max 1000 = 10%) (1000)? 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? 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.xBitte 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✔ 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.wtfDen 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>? 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✔︎ 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-subValidator einsetzen
Sobald Sie die Konfiguration bestätigen, beginnt die Bereitstellung.
bash
slv v deploy -n mainnet -p epics-subslv v deploy -n mainnet -p epics-subbash
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 mYour 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 mEs 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 msolv 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-subslv v set:identity -n mainnet --pubkey epics-subDieser 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 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