Erstellen eines nativen Rocket Pool Nodes ohne Docker
Diese Anleitung ist für Smartnode v1.6.5 und höher konzipiert.
Wenn Sie eine frühere Version verwenden, müssen Sie auf v1.6.5 oder höher aktualisieren, bevor Sie den Native-Modus konfigurieren.
In diesem Abschnitt führen wir Sie durch den Prozess der nativen Installation des Rocket Pool Smartnode-Stacks auf Ihrem System, ohne die Verwendung von Docker-Containern.
Der allgemeine Plan sieht wie folgt aus:
- Erstellen Sie ein Standard-Solo-Staking-Setup mit
systemd-Diensten für den Execution Client, den Consensus Client / Beacon Node und den Validator Client - Erstellen Sie Systemdienste für die Rocket Pool-Komponenten (die node- und watchtower-Prozesse)
- Konfigurieren Sie Rocket Pool für die Kommunikation mit Ihren Client-Diensten
- Aktualisieren Sie Ihre Validator Client-Dienstdefinition, um den Fee Recipient und die Validator-Keys von Rocket Pool zu verwenden
Dies ist ein ziemlich komplexes Setup, das einige Zeit in Anspruch nehmen wird.
Die Vielfalt der verfügbaren Betriebssysteme und Distributionen macht es unpraktisch, Anleitungen für alle bereitzustellen. Die Anweisungen in dieser Anleitung sind auf ein Debian-basiertes System (einschließlich Ubuntu) zugeschnitten. Für andere Distributionen oder Betriebssysteme können Sie den allgemeinen Schritten in der Anleitung folgen, müssen jedoch bestimmte Befehle durch die für Ihr System geeigneten ersetzen.
Diese Anleitung richtet sich an Benutzer, die mit der Linux-Systemadministration und -Nutzung vertraut sind. Dies umfasst die Verwendung des Terminals, das Erstellen von Systemkonten, die Verwaltung von Berechtigungen und die Installation von Diensten. Wir gehen davon aus, dass Sie mit diesen Aktivitäten vertraut sind - da Sie den Großteil der Infrastruktur selbst verwalten, bieten wir nur begrenzte Unterstützung für Native-Installationen. Wenn Sie mit diesen Aktivitäten nicht vertraut sind, empfehlen wir Ihnen nicht, den Native-Modus zu verwenden.
Schritt 1: Einrichtung der Execution- und Consensus-Clients
Der Native-Modus erweitert im Wesentlichen ein Standard-Solo-Staking-Setup und ermöglicht es der Smartnode-Software einfach, sich an die Clients anzuhängen, die sie bereits ausführt (mit einigen kleinen Modifikationen).
Zu diesem Zweck empfehlen wir Ihnen, zunächst einige der konventionellen Solo-Staking-Anleitungen der Community zu befolgen:
- Somer Esats Anleitungen pro Client: https://github.com/SomerEsat/ethereum-staking-guides
- CoinCashew-Anleitungen: https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet
Beachten Sie, dass Sie nicht tatsächlich einen Validator erstellen werden, wie in diesen Anleitungen definiert - Rocket Pool wird das für Sie tun. Sie können die Teile ignorieren, die das Staking Deposit CLI-Tool betreffen.
Sie müssen den Anleitungen nur bis zu dem Punkt folgen, an dem Sie einen Execution Client-Dienst, einen Consensus Client / Beacon Node-Dienst und einen Validator Client-Dienst installiert haben und alle die Chain synchronisieren. Überspringen Sie die Schritte, die das Finanzieren eines Validators und das Aufzeichnen seiner Mnemonic betreffen.
Es gibt auch einen Sonderfall für den Fee Recipient - wenn Sie zu dem Teil der Anleitung kommen, an dem Sie den Fee Recipient in Ihrer Validator Client-Konfiguration angeben, lassen Sie ihn zunächst leer. Wir werden beschreiben, wie Sie ihn für Rocket Pool-Validatoren einrichten, weiter unten.
Sobald Ihre Clients installiert sind und Sie in ihren Logs sehen können, dass sie die Chains ordnungsgemäß synchronisieren, können Sie den nächsten Schritten folgen, um den Rocket Pool Smartnode einzurichten und ihn mit Ihren Clients zu verbinden.
Schritt 2: Installation von Rocket Pool
Erstellen des Dienstkontos
Der erste Schritt besteht darin, ein neues Systemkonto für die Rocket Pool-Dienste zu erstellen und den Login- und Shell-Zugriff dafür zu deaktivieren:
Fügen Sie sich nun der rp-Gruppe hinzu.
Sie müssen dies tun, um die Rocket Pool CLI verwenden zu können, da sie und der Rocket Pool-Daemon beide auf die Execution Layer Wallet-Datei zugreifen müssen.
Fügen Sie schließlich das Benutzerkonto für Ihren Validator Client auch zur rp-Gruppe hinzu.
Der Name dieses Benutzerkontos hängt davon ab, welcher Anleitung Sie gefolgt sind, um Ihren VC-Dienst einzurichten.
Wenn Ihr VC beispielsweise als Benutzer lighthousevalidator ausgeführt wird, würden Sie Folgendes tun:
Melden Sie sich danach ab und wieder an, damit die Änderungen wirksam werden.
Einrichtung der Binärdateien
Erstellen Sie zunächst einen Ordner für Rocket Pool und einen Datenunterordner.
Sie können diesen platzieren, wo Sie möchten; für diese Anleitung werde ich ihn in /srv platzieren:
Laden Sie nun die CLI- und Daemon-Binärdateien herunter (oder ignorieren Sie dies und erstellen Sie sie aus dem Quellcode, wenn Sie dies bevorzugen). Wählen Sie die Plattform aus, die Ihr System verwendet, aus den folgenden Registerkarten.
Setzen Sie nun den Eigentümer und die Gruppe des Daemons auf rp:
Setzen Sie schließlich das suid-Bit und andere Berechtigungsbits auf der Daemon-Binärdatei:
Dadurch wird sichergestellt, dass der Daemon immer als rp-Benutzer ausgeführt wird, sodass er immer die richtigen Berechtigungen hat.
Der Smartnode wird höchstwahrscheinlich mit Berechtigungsfehlern fehlschlagen, wenn Sie dies nicht tun. Bitte stellen Sie sicher, dass Sie diesen Befehl ausführen!
Einrichtung des Installationsordners
Nachdem die CLI und der Daemon installiert sind, müssen Sie als Nächstes die Ordnerstruktur und die begleitenden Dateien einrichten, die der Smartnode erwartet. Beginnen Sie mit der Erstellung der folgenden Ordner:
Laden Sie als Nächstes die folgenden Skripte herunter - Rocket Pool wird sie verwenden, wenn es Ihren Validator Client neu starten oder stoppen muss, um seinen Fee Recipient zu ändern (später besprochen) oder neue Keys zu laden, nachdem Sie einen neuen Minipool erstellt haben:
Öffnen Sie nun ~/.profile mit Ihrem Editor der Wahl und fügen Sie diese Zeile am Ende hinzu:
Speichern Sie sie und laden Sie dann Ihr Profil neu:
Dadurch können Sie mit der Rocket Pool CLI über den rp-Befehl interagieren, was eine nette Abkürzung ist.
Erstellen der Dienste
Als Nächstes erstellen wir einen systemd-Dienst für den Rocket Pool Node-Daemon.
Dies ist der Dienst, der automatisch nach jedem Checkpoint RPL-Belohnungen überprüft und beansprucht und Minipools staked, nachdem Sie sie über node deposit erstellt haben.
Wir erstellen auch einen watchtower-Dienst.
Dieser wird verwendet, wenn Sie Mitglied des Oracle DAO sind oder wenn Sie jemals Ihre eigenen Belohnungsintervallbäume generieren möchten (später im Abschnitt Belohnungen beanspruchen besprochen).
Erstellen Sie den rp-node-Dienst:
Inhalt:
Erstellen Sie eine Logdatei für den Dienst, damit Sie seine Ausgabe beobachten können - dies ersetzt das Verhalten von rocketpool service logs node:
Inhalt:
Speichern Sie sie und machen Sie sie dann ausführbar:
Jetzt können Sie die Logs des Nodes einfach anzeigen, indem Sie Folgendes ausführen:
Die Dienste sind jetzt installiert.
Einrichtung des passwortlosen Skriptzugriffs
Der nächste Schritt besteht darin, dem rp-Benutzer die Möglichkeit zu geben, den Validator Client neu zu starten, wenn neue Validator-Keys erstellt werden, und den Validator Client zu stoppen, wenn ein Notfallzustand erkannt wird.
Erstellen Sie eine neue sudoers-Datei mit visudo:
Fügen Sie die folgenden Zeilen hinzu:
Wobei <validator service name> der Name Ihres VC-Dienstes ist (z.B. lighthousevalidator)
Ändern Sie nun /srv/rocketpool/restart-vc.sh:
- Kommentieren Sie die Zeile am Ende aus und ändern Sie sie in
sudo systemctl restart <validator service name>
Ändern Sie auch /srv/rocketpool/stop-validator.sh:
- Kommentieren Sie die Zeile am Ende aus und ändern Sie sie in
sudo systemctl stop <validator service name>
Fertig!
Der node-Prozess kann nun Ihren VC bei Bedarf automatisch neu starten oder stoppen.
Schritt 3: Konfigurieren des Smartnodes
Nachdem Ihre Dienste alle erstellt sind, ist es an der Zeit, den Smartnode-Stack zu konfigurieren.
Bitte besuchen Sie die Anleitung Konfiguration des Smartnode-Stacks (Native-Modus) und kehren Sie hierher zurück, wenn Sie fertig sind.
Aktivieren und Ausführen der Dienste
Nachdem alle Dienste installiert sind, ist es an der Zeit:
- Sie zu aktivieren, damit sie automatisch neu starten, wenn sie abbrechen, und automatisch bei einem Neustart starten
- Sie alle zu starten
Einrichten einer Wallet
Erstellen Sie als Nächstes eine neue Node-Wallet oder stellen Sie eine vorhandene Wallet wieder her. Bitte befolgen Sie sorgfältig die Anweisungen im Abschnitt Einrichten einer Wallet der Anleitung und kehren Sie dann hierher zurück, wenn Sie fertig sind.
Verwenden Sie nach Abschluss die Service-Logdatei-Skripte, um zu überprüfen, ob sie Ihre neue Wallet erfolgreich geladen haben. Sie sollten dies auch mit dem folgenden Befehl überprüfen:
Wenn es ordnungsgemäß funktioniert, sollte es die folgende Ausgabe erzeugen:
Schritt 4: Aktualisierung der VC-Dienstdefinition
Im Gegensatz zu einem Solo-Staking-Setup generiert und verwaltet Rocket Pool seine Validator-Keys automatisch. Es gibt ein paar Anpassungen, die Sie an der VC-Dienstdefinitionsdatei vornehmen müssen, die Sie gerade erstellt haben, damit sie ordnungsgemäß mit Rocket Pool funktioniert, einschließlich:
- Des Fee Recipient
- Des Daten- oder Wallet-Verzeichnisses des VC
- Der Keys- und Secrets-Verzeichnisse des VC
Wir werden diese Schritt für Schritt für jeden Client durchgehen.
Einrichten der Fee Recipient-Datei
Es ist entscheidend, dass Sie diese Schritte befolgen - wenn Sie dies nicht tun und den falschen Fee Recipient verwenden, werden Strafen auf Ihre Validatoren angewendet und Abzüge von Ihrem Beacon Chain-Guthaben vorgenommen!
Der Fee Recipient ist das Argument, das Sie Ihrem Validator Client übergeben und das die Adresse auf der Execution Layer angibt, an die Ihre Priority Fees und MEV-Belohnungen gesendet werden sollen. Rocket Pool hat zwei verschiedene Adressen für den Fee Recipient:
- Wenn Sie am Smoothing Pool teilnehmen, muss es die Adresse des Smoothing Pools sein
- Wenn Sie nicht am Smoothing Pool teilnehmen, muss es die Fee Distributor-Adresse Ihres Nodes sein
Um mehr über den Smoothing Pool und Ihren Fee Distributor zu erfahren, lesen Sie bitte den Abschnitt Fee Distributors und der Smoothing Pool der Anleitung.
Der node-Dienst von Rocket Pool setzt dies automatisch für Sie, indem er erkennt, welcher benötigt wird, und ihn in einer Konfigurationsdatei setzt und Ihren Validator Client-Dienst neu startet, um die Änderung zu übernehmen.
Ihr Validator Client-Dienst kann diese Konfigurationsdatei automatisch verwenden, sodass Sie den Fee Recipient nicht hart codieren müssen.
Öffnen Sie die systemd-Dienstdefinitionsdatei, die Sie gerade für Ihren Validator Client erstellt haben.
Fügen Sie vor der ExecStart-Zeile diese Zeile hinzu:
Ändern Sie dann Ihr Fee Recipient-Argument wie folgt; wählen Sie Ihren Client aus den folgenden Registerkarten:
--suggested-fee-recipient address in --suggested-fee-recipient ${FEE_RECIPIENT}Wenn Sie Ihren Validator Client vor den Diensten von Rocket Pool starten, kann es zu einem Fehler kommen, weil diese Datei noch nicht existiert. Machen Sie sich keine Sorgen, diese Datei wird von Rocket Pool erstellt, sobald Sie seine Dienste initialisiert und gestartet haben.
Festlegen der Daten- und Keys-Verzeichnisse
Als Nächstes müssen Sie dem VC mitteilen, wo er seine Daten speichern und die Validator-Keys laden soll, die Rocket Pool generiert. Klicken Sie auf den Client, den Sie verwenden, in den folgenden Registerkarten:
Erstellen Sie die folgenden Verzeichnisse und setzen Sie ihren Eigentümer auf rp:
Fügen Sie nun die folgenden Parameter in der Dienstdefinitionsdatei des Lighthouse VC hinzu oder ändern Sie sie auf diese neuen Werte:
Lockern der umask-Einstellungen
Standardmäßig kommt Ihr System typischerweise mit einer umask-Konfiguration, die das +w-Bit aus den Gruppenberechtigungen entfernt, wenn der node-Daemon einen neuen Ordner erstellt.
Dies ist für mehrere Consensus Clients problematisch, da sie tatsächlich Dinge wie Lock-Dateien oder andere Metadaten in die Verzeichnisse schreiben, die der Smartnode erstellt, wenn er neue Validator-Keys während einer Minipool-Einzahlung generiert.
Um dies zu bekämpfen und sicherzustellen, dass Ihr VC ordnungsgemäß funktioniert, lockern Sie bitte Ihre umask-Einstellungen.
Anstelle von 0022 sollten Sie beispielsweise erwägen, sie für den rp-Benutzer auf 0002 zu setzen.
Jedes System ist unterschiedlich, daher konsultieren Sie bitte eine Anleitung, die Ihr Betriebssystem abdeckt, um zu erfahren, wie Sie dies tun.
Dieser Schritt ist entscheidend, um sicherzustellen, dass die automatischen Staking- und Validierungsaufgaben ordnungsgemäß durchgeführt werden.
Wenn Sie nach Ablauf der 12-Stunden-Scrub-Prüfung Ihres Minipools und dem Eintritt in den staking-Status Berechtigungsprobleme in den Logs Ihres VC bemerken, müssen Sie wahrscheinlich sudo chmod 775 auf den Ordner ausführen, der Ihre Validator-Keys enthält, damit Ihr VC-Dienst in diesen Ordner schreiben kann.
Neuladen des VC-Dienstes
Nachdem diese Änderungen vorgenommen wurden, können Sie den VC-Dienst jetzt mit dem Folgenden neu laden und neu starten:
Wenn Sie nicht Prysm verwenden, beobachten Sie bitte die Logs des VC sorgfältig, um sicherzustellen, dass er erfolgreich gestartet wurde und die folgenden korrekt definiert sind:
- Der Fee Recipient
- Der Datenpfad
- Der Wallet- / Keys- / Secrets-Pfad
Sie können dies beispielsweise mit ps aux | grep fee überprüfen, um die laufenden Prozesse zu filtern und den Fee Recipient anzusehen, den Ihr VC verwendet hat.
Er sollte derselbe sein, der in /srv/rocketpool/data/validators/rp-fee-recipient-env.txt definiert ist.
Wenn alle die richtigen Werte verwenden, dann herzlichen Glückwunsch! Sie haben Ihren Rocket Pool Node erfolgreich eingerichtet und können den nächsten Abschnitten der Anleitung folgen, um zu erfahren, wie Sie ihn verwenden.
Nächste Schritte
Nachdem Ihre Clients installiert sind, empfehlen wir Ihnen, einen Blick auf die Sicherheitsvorschläge im Abschnitt Sichern Ihres Nodes zu werfen. Da Sie ein Native-Setup ausführen, haben Sie wahrscheinlich einige dieser Dinge bereits getan; dennoch schadet es nicht, es zumindest zu erkunden und zu sehen, wie gut die empfohlene Sicherheitslage zu Ihrem System passt.