Monero Node installieren

Monero Node Installation

Mit den anhaltenden Netzwerkangriffen auf Monero ist es ein guter Zeitpunkt für Benutzer, sich mit dem Betrieb eines eigenen Knotens zu beschäftigen.

In diesem kurzen Beitrag beschreibe ich, wie man ganz einfach einen Monero-Knoten auf einem Linux-Server, dem häufigsten Betriebssystem für virtuelle private Server (VPS), betreibt. Ich empfehle dringend, entweder Debian oder Ubuntu als Linux-Distribution zu verwenden, und diese Anleitung geht davon aus, dass Sie eine dieser Distributionen verwenden.

Warum sollten Sie Ihren eigenen Monero-Knoten betreiben ?

Das Monero-Netzwerk basiert auf einem verteilten Netz von Monero-Knoten, von denen jeder einzelne Transaktionen validiert, Transaktionen an den Rest des Netzwerks weitergibt und neuen Knoten hilft, sich einfach und schnell mit dem aktuellen Stand des Netzwerks zu synchronisieren.

Wenn Sie einen Monero-Knoten für sich selbst betreiben, erhalten Sie nicht nur die stärkeren Datenschutzgarantien auf Netzwerkebene, sondern tragen auch zur Dezentralisierung, Stabilität und Geschwindigkeit des Monero-Netzwerks bei.

Jeder Knoten kann zwei verschiedene Dienste anbieten, von denen jeder auf einzigartige Weise einen positiven Einfluss auf das Netzwerk hat:

Peer-to-Peer (p2p) Port (Standard 18080): Dieser Port ermöglicht es anderen Knoten im Netzwerk, sich mit Ihrem Knoten zu verbinden, um die Blockchain herunterzuladen und Ihnen alle Transaktionen zu senden, die sie validieren und die Sie noch nicht haben. Er erhöht auch die allgemeine Privatsphäre im Netzwerk, da Ihr Knoten an der Dandelion++-Propagierung von Transaktionen teilnimmt.

Remote Procedure Call (RPC)-Port (Standard 18089): Die Freigabe dieses Ports (insbesondere mit dem public-node arg) ermöglicht es anderen Benutzern im Netzwerk, insbesondere denen, die mobile Wallets oder die GUI-Wallet im “Simple”-Modus verwenden, sich mit Ihrem Knoten zu verbinden, um ihre Wallets zu synchronisieren, ohne dass sie ihren eigenen vollständigen Knoten lokal ausführen müssen.

In dieser Anleitung habe ich nur Konfigurationsdateien und Docker-Befehle angegeben, die den p2p-Port offenlegen, da dies eine wichtige Hilfe für das Netzwerk ist. Sie können eine der Konfigurationsdateien verwenden, die den unten aufgeführten public-node arg verwenden, wenn Sie auch Ihren eingeschränkten RPC-Port bekannt machen möchten.

Sie können entweder einen Knoten über systemd und Binärdateien einrichten oder monerod als Docker-Container bereitstellen (siehe unten).

Die Bereitstellung über Docker hat einige entscheidende Vorteile, nämlich eine einfache und betriebssystemübergreifende Installation sowie automatische Updates über Watchtower.

Hinweis:
Wenn Sie gerne einen Node bereitstellen möchten, aber diese Anleitung für Sie noch zu fortgeschritten ist, schauen Sie sich xmrcannon.net an, eine großartige Community-Ressource, die es Ihnen ermöglicht, in Monero zu bezahlen, um einen Node für Sie aufzusetzen.

Monero Node auf Linux Server installieren

Ich gehe in dieser Anleitung auch davon aus, dass Du den VPS/Host Deiner Wahl gekauft hast und per SSH verbunden bist.

Erforderliche Pakete aktualisieren und installieren

Zuerst müssen wir ein paar Tools installieren, die wir später benötigen werden:

 sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y ufw curl

Dann installieren Sie Docker:

 curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
su - $BENUTZER

Hinweis:
Dieser Befehl lädt ein Skript herunter und wird als root direkt von Docker ausgeführt. Bitte vergewissern Sie sich, dass Sie sich dabei wohlfühlen, und seien Sie vorsichtig, wenn Sie dies auf einem PC tun. Wenn Sie dies vermeiden möchten, folgen Sie bitte der offiziellen Dokumentation hier, um aus dem Repository zu installieren.

Server Härtung über UFW

Wir wollen sicherstellen, dass das System auf einfache Weise gehärtet ist, indem wir sicherstellen, dass die Firewall nur den Zugriff auf die Ports erlaubt, die für SSH und monerod notwendig sind, und zwar mit UFW.

Führen Sie die folgenden Befehle aus, um einige grundlegende UFW-Regeln hinzuzufügen und die Firewall zu aktivieren:

 # Alle nicht explizit erlaubten Ports verweigern
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH-Zugang zulassen
sudo ufw allow ssh

# Monerod p2p-Port zulassen
sudo ufw allow 18080/tcp

# Monerods eingeschränkten RPC-Port zulassen
sudo ufw allow 18089/tcp

# UFW aktivieren
sudo ufw enable

 

Herunterladen und Ausführen von monero über Docker

Wählen Sie den richtigen Befehlssatz aus, je nachdem, ob Sie einen vollständigen Knoten oder einen beschnittenen Knoten ausführen möchten und ob Sie Ihren öffentlichen eingeschränkten RPC-Knoten bekannt machen möchten, damit andere Benutzer ihre Wallets mit Ihrem Knoten synchronisieren können oder nicht:

Eine alternative Docker-Implementierung ist ebenfalls auf Github verfügbar, die sogar native Grafana-Visualisierungen enthält. Dieser Leitfaden konzentriert sich darauf, extrem einfach zu sein, daher werde ich mich hier auf monerod beschränken.

Tor Hidden Service Monero Node

Wenn Sie den Quellcode hinter dem hier verwendeten Image einsehen oder es selbst bauen möchten, finden Sie unter den folgenden Links:

Docker Hub Image: https://github.com/sethforprivacy/simple-monerod-docker

Hinweis:
Die von mir empfohlenen Befehle sind der erste Satz unten, aber Sie können je nach Bedarf auch eine der anderen 3 Optionen wählen.

docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18089:18089 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --no-igd --no-zmq --enable-dns-blocklist
docker run -d \
    --name watchtower --restart unless-stopped \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower --cleanup \
    monerod tor

# Alternative Docker-Befehle für Public Node:

docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18089:18089 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --public-node --no-igd --no-zmq --enable-dns-blocklist
docker run -d \
    --name watchtower --restart unless-stopped \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower --cleanup \
    monerod tor

# Alternative Docker-Befehle für Pruned Node:

docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18089:18089 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --no-igd --no-zmq --enable-dns-blocklist --prune-blockchain
docker run -d \
    --name watchtower --restart unless-stopped \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower --cleanup \
    monerod tor

# Alternative Docker-Befehle für Public und Pruned Node:

docker run -d --restart unless-stopped --name="monerod" -p 18080:18080 -p 18089:18089 -v bitmonero:/home/monero sethsimmons/simple-monerod:latest --rpc-restricted-bind-ip=0.0.0.0 --rpc-restricted-bind-port=18089 --public-node --no-igd --no-zmq --enable-dns-blocklist --prune-blockchain
docker run -d \
    --name watchtower --restart unless-stopped \
    -v /var/run/docker.sock:/var/run/docker.sock \
    containrrr/watchtower --cleanup \
    monerod tor

Um die Logs für monerod zu beobachten, führen Sie folgendes aus:

docker logs --follow monerod

 

Aktualisieren Ihres Monero-Knotens

Da wir Monero in einem Docker-Container betreiben und Watchtower zusammen mit ihm eingesetzt haben, wird der Knoten automatisch mit der neuesten Version von monerod neu gestartet, sobald eine neue Version auf Github veröffentlicht wird.

Es muss nichts weiter manuell getan werden.

Senden von Befehlen an Ihren Knoten

monerod unterstützt das lokale Senden von Befehlen, die es Ihnen ermöglichen, zusätzliche Informationen über den Status von monerod zu erhalten, Bandbreitenlimits zu setzen, Peer-Limits zu setzen, usw.

Eine vollständige Liste der Befehle (Stand: v0.17.1.8) finden Sie unten oder in der monerod-Hilfe:

Monero 'Oxygen Orion' (v0.17.1.8-release)
Commands: 
  alt_chain_info [blockhash]
  apropos  [ ...]
  ban [|@] []
  bannedbanned <address>
bans
bc_dyn_stats <last_block_count>
check_blockchain_pruning
diff
exit
flush_cache [bad-txs] [bad-blocks]
flush_txpool [<txid>]
hard_fork_info
help [<command>]
hide_hr
in_peers <max_number>
is_key_image_spent <key_image>
limit [<kB/s>]
limit_down [<kB/s>]
limit_up [<kB/s>]
mining_status
out_peers <max_number>
output_histogram [@<amount>] <min_count> [<max_count>]
pop_blocks <nblocks>
print_bc <begin_height> [<end_height>]
print_block <block_hash> | <block_height>
print_cn
print_coinbase_tx_sum <start_height> [<block_count>]
print_height
print_net_stats
print_pl [white] [gray] [pruned] [publicrpc] [<limit>]
print_pl_stats
print_pool
print_pool_sh
print_pool_stats
print_status
print_tx <transaction_hash> [+hex] [+json]
prune_blockchain
relay_tx <txid>
rpc_payments
save
set_bootstrap_daemon (auto | none | host[:port] [username] [password])
set_log <level>|<{+,-,}categories>
show_hr
start_mining <addr> [<threads>|auto] [do_background_mining] [ignore_battery]
status
stop_daemon
stop_mining
sync_info
unban <address>
update (check|download)
version

Wenn Sie einen Befehl ausführen möchten, führen Sie einfach docker exec monerod /usr/local/bin/monerod name_of_command aus, und es wird automatisch eine Verbindung zum Daemon hergestellt, der Befehl ausgeführt und die Ausgabe dieses Befehls im Terminal ausgegeben.

Einige der von mir am häufigsten verwendeten Befehle sind:

– docker exec monerod /usr/local/bin/monerod status: liefert eine kurze Ausgabe über den Status von monerod, einschließlich der Anzahl der Peers (sowohl out als auch in), der Blockhöhe, des Sync-Status und der Version
docker exec monerod /usr/local/bin/monerod sync_info: gibt eine Liste der Peers mit Informationen über ihren Status und die Synchronisierung des Knotens mit ihnen aus
– docker exec monerod /usr/local/bin/monerod print_net_stats: gibt Netzwerkstatistiken seit dem Start von monerod aus, einschließlich des gesamten empfangenen und gesendeten Datenverkehrs, der durchschnittlichen Raten und der gesetzten Grenzen
docker exec monerod /usr/local/bin/monerod update check: prüft, ob eine aktualisierte Version von monerod veröffentlicht wurde

Portweiterleitung

Wenn du dich entscheidest, diese Anleitung auf einem Gerät in deinem Heimnetzwerk zu verwenden, musst du sicherstellen, dass du die Ports 18080/tcp und 18089/tcp über deinen Router weiterleitest oder ein anonymes Netzwerk wie Tor verwendest.

Eine gute zentrale Seite mit vielen Anleitungen für bestimmte Router findest du unter portforward.com. Achte nur darauf, dass du die richtige Routermarke und das richtige Modell auswählst und dann 18080/18089 nur für TCP öffnest.

Anonyme Netzwerke nutzen mit Tor Hidden Service

Wenn du deinen RPC-Port auch über Tor als versteckten Dienst freigeben möchtest, befolge diese wenigen Befehle und du bist bereit. Damit kannst du auf deinen RPC-Port komplett über Tor zugreifen, ohne dass du über Exit-Nodes gehen musst.

Starte einen Tor-Docker-Container

docker run -d --restart unless-stopped --link monerod:monerod --name tor --volume tor-keys:/var/lib/tor/hidden_service/ goldy/tor-hidden-service

Abrufen der HiddenService-Adresse

docker exec -ti tor onions

Hinweis:
Um die Konnektivität zu testen, besuche einfach http://replacewithnewonionaddress:18089/get_info im Tor-Browser und vergewissere dich, dass du einen Textblock zurückbekommst.

Monero Node Tor

Verbinden mit deinem neuen entfernten Knoten

Dies hängt von der Wallet ab, die du benutzt, aber normalerweise musst du nur die IP-Adresse deines Knotens (entweder deine private IP-Adresse oder die deines VPS-Hosts) oder die Onion-Adresse angeben.

Ein Beispiel dafür, wie Sie dies in der Main-Desktop-Wallet tun, finden Sie hier:

Monero GUI: https://www.getmonero.org/resources/user-guides/remote_node_gui.html

Ein paar hilfreiche Linux CLI-Tools

Im Folgenden finden Sie einige meiner Lieblingstools für die allgemeine Verwendung der Linux-CLI. Ich hoffe, sie helfen Ihnen dabei, sich mit der CLI besser zurechtzufinden oder Ihren Node besser im Auge zu behalten!

Oh my Zsh 
Oh My Zsh ist ein großartiger Ersatz für bash/sh-Shells und bietet viel bessere Hervorhebungen, Funktionen und automatische Updates als git
Zur Seite von Zsh: https://ohmyz.sh/

vnstat 
Ein einfaches CLI-Tool zur Überwachung und Anzeige der Bandbreitennutzung
Zur Seite von vnstat: https://humdi.net/vnstat/

htop
Gibt einen guten Überblick über die Nutzung von Systemressourcen durch Prozesse und ist viel lesbarer als top
Zur Seite von htop: https://htop.dev/

multitail 
eine viel umfassendere Möglichkeit, Protokolle einzusehen (insbesondere mehr als eines gleichzeitig)
Zur Seite von multitail: https://www.vanheusden.com/multitail/

Schlussfolgerung
Hoffentlich hat diese Anleitung den Prozess der Einrichtung eines entfernten Knotens auf einem VPS vereinfacht, und viele weitere ähnliche Anleitungen sollten in Kürze erscheinen.

Diesen Beitrag teilen:

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht.

Solve : *
18 + 27 =