Ethereum Node und Client selbst installieren und betreiben
Bei Ethereum-Nodes handelt es sich um Computer, die Bestandteil des Ethereum-Blockchain-Netzwerks sind. Die Knoten verifizieren, speichern und erstellen Transaktionen in der Blockchain oder nehmen an den Testnetzwerken der Ethereum-Blockchain teil.
Die Software, mit der eine Verbindung auf den Node zur Ethereum Blockchain aufgebaut wird, ist wiederum der Ethereum-Client.
Mit dem Client ist es möglich, mit der Ethereum-Blockchain zu interagieren.
Wir zeigen in diesem Beitrag, wie sich Clients und Nodes mit der Ethereum-Blockchain verbinden lassen. Im Fokus stehen dabei die bekannten Clients Geth, OpenEthereum und Hyperledger Besu.
Ebenso zeigen wir nachfolgend Appliances, freie Software und auch Clients von Ethereum, mit denen die Anbindung an die Ethereum-Blockchain möglich ist.
Experimentierfreudige Anwender und Entwickler können aber auch die Installation auf herkömmlichen Computern durchführen und auch Mini-Computer wie RaspberryPI sind nutzbar.
Einstieg in die Installation einer eigenen Blockchain Node
Die Installation eines eigenen Node für die Ethereum-Blockchain ist kein unbedingt einfaches Unterfangen. Es gibt aber verschiedene Wege der Installation, die wir in diesem Beitrag näher durchleuchten.
Es gibt auch einfachere Möglichkeiten durch vorgefertigte Hard und Software. Auch darauf gehen wir in diesem Beitrag ein. Grundsätzlich ist es möglich auf Windows, Linux und macOS Ethereum zu installieren. Empfehlenswert ist die Installation allerdings vor allem auf Linux.
Unabhängig davon, welche Art von Node zum Einsatz kommen soll, ist es wichtig zu beachten, dass Blockchain-Knoten für einen produktiven Betrieb einiges an Rechenleistung benötigen und auch Speicherplatz für das Speichern der Blockchain notwendig ist.
Die Installation sollte generell auf Rechnern mit SSD mit mindestens 500 GB Speicherplatz erfolgen, die über eine relativ aktuelle CPU und mindestens 8 GB Arbeitsspeicher, besser deutlich mehr, verfügen.
Zusätzlich sollte die Leitung zum Internet ausreichend schnell sein, um Daten, mit den anderen Blockchain Nodes austauschen zu können.
Für Testzwecke reichen natürlich auch kleinere Computer aus und selbst virtuelle Server sind in der Lage für Entwickler und Anwender testweise eine Verbindung zur Blockchain aufzubauen.
Wenn die Hardware aber zu schwach ist, dann dauern die Synchronisierungsvorgänge schnell Stunden oder Tage. Auch die Arbeit mit der öffentlichen Blockchain oder den Testnetzwerken macht in diesem Fall keinen Spaß. Ethereum-Clients wie Geth ermöglichen das Zwischenspeichern von Daten im Arbeitsspeicher.
Dadurch lassen sich Nodes natürlich deutlich beschleunigen, wenn genügend RAM im Computer zur Verfügung steht.
Für produktive Blockchain Nodes ist es daher sinnvoll darauf zu achten, dass diese nicht nur über eine schnelle CPU und eine SSD oder NVMe verfügen, sondern auch über genügend Arbeitsspeicher, mit der ein Ethereum Node arbeiten kann.
Wichtig ist in diesem Fall natürlich auch, dass der Knoten mit den richtigen Optionen startet, um den Arbeitsspeicher als Zwischenspeicher zu nutzen.
Ethereum Node Rewards – Der Staking Node
Beim Betreiben eines eigenen Nodes erhalten Betreiber auch Belohnungen: Mit Staking können Validatoren also nicht nur zur Sicherheit der Blockchain von Ethereum beitragen sowie den Wechsel zu Ethereum 2.0, sondern auch passives Einkommen generieren.
Während des Validierungsprozesses/Attestierungsprozess fasst die Beacon Chain von Ethereum die Staker nach dem Zufallsprinzip. Die Gruppe hat eine festgelegte Zeit für das Vorschlagen eines neuen Blocks und die Validierung der darin enthaltenen Transaktionen.
Dabei handelt es sich um einen Slot, an dem ein Node teilnehmen kann. Sobald eine Mehrheit der Gruppe, auch Committee genannt, den neuen Block bestätigt hat, wird er der Blockchain hinzugefügt. Danach erhält der Staker, der für den Vorschlag des neuen Blocks ausgewählt wurde, seine Belohnung.
Die Basisbelohnung ist ein wichtiger Faktor für Ethereum 2.0. Wenn mehr Validatoren an Ethereum 2.0 angeschlossen sind, ist allerdings auch die Basisbelohnung pro Validator niedriger. Beim Einrichten eines Staking Nodes laufen auf dem Server Ethereum 1.0- und Ethereum 2.0-Clients.
Die Größe eines Ethereum Full Node
Wer einen eigenen Full Node in der Ethereum-Blockchain betreibt, muss Ende August 2021 mit etwa 275 GB Speicherplatz rechnen.
Bei Ethereum Full Nodes spielen auch CPU und Arbeitsspeicher eine wichtige Rolle. Deswegen ist es auch möglich, diese Knoten in der Cloud zu betreiben, zum Beispiel bei AWS.
Ethereum Node als DApp-Appliance betreiben
Wer eine Node betreiben will, kann aber auch auf Appliances setzen, wie DAppNode. Hier ist es möglich Hard- und Software direkt beim Anbieter zu bestellen, und darauf die Ethereum-Software zu installieren.
Die Preise für die Knoten beginnen bei etwa 480 Euro. Bei den Appliances ist die Software von DAppNode bereits vorinstalliert. Es sind aber auch Neuinstallationen oder Modifikationen möglich.
Die Software für die Appliance steht kostenlos zur Verfügung. Wir zeigen weiter unten in diesem Beitrag, wie die Installation der Software auf eigener Hardware oder in einer virtuellen Maschine erfolgen kann. Auch hier gibt es zahlreiche Möglichkeiten.
Bei der Software handelt es sich um Open Source, der Anbieter stellt diese auf GitHub zur Verfügung. Der Download der Software erfolgt als ISO-Datei und ermöglicht auch die Installation auf eigener Hardware oder einem virtuellen Computer.
Die Basis von DAppNode ist Debian-Linux. Es ist auch problemlos möglich, DAppNode auf einem Computer mit Ubuntu oder Debian manuell oder über ein Skript zu installieren. Auch darauf gehen wir in diesem Beitrag noch ausführlicher ein.
Die Installation auf eigener Hardware kann auch mit einem USB-Stick erfolgen. Die Entwickler empfehlen die Open-Source-Software Etcher für das Erstellen eines eigenen Datenträgers zur Installation.
Zusätzlich empfehlen die Entwickler einen Computer mit mindestens 8 GB Arbeitsspeicher und einer SSD als Datenspeicher mit mindestens 1 TB. Natürlich sollte der Computer mit dem Netzwerk und Internet verbunden sein, idealerweise mit einem sehr schnellen WLAN oder besser mit einem Netzwerkkabel. Auch die Installation auf ARM-Geräten ist möglich.
RaspberryPI als Ethereum Node nutzen
Die Installation auf einem Raspberry stellt kein Problem dar. Auf der Seite von kauri.io ist eine Anleitung zu finden, wie sich auf einem RaspberryPI 4 ein vollwertiger Ethereum Node installieren lässt.
Auch hier steht die entsprechende Software auf Github zur Verfügung. Es gibt weitere Installationsmöglichkeiten auf RaspberryPI.
Allerdings muss auch hier beachtet werden, dass nicht alle Geräte dazu geeignet sind, mit der Blockchain zu arbeiten. Da die Software kostenlos zur Verfügung steht, sind Tests problemlos möglich.
Für Testumgebungen sind die Voraussetzungen natürlich nicht so hoch wie für produktive Computer.
Vorgefertigte Ethereum-Knoten mit Anbindung an IPFS
Auch bei Avado stehen kostenlose Appliances zur Verfügung, mit denen eine Verbindung zur Ethereum-Blockchain ohne umfangreiche Installation möglich ist.
Bei den Knoten ist eine Anbindung an IPFS problemlos möglich. Neben Ethereum können auch andere Blockchain-Lösungen an DAppNode von Avado angebunden werden.
Eigenen Ethereum Node auf Linux installieren
Um relativ einfach einen eigenen Ethereum-Knoten zu installieren, bietet sich die Open-Source-Software DAppNode an. Wie bereits oben geschrieben, können hier auch eine ISO-Datei oder die Appliances der Hersteller zum Einsatz kommen.
Es ist aber auch möglich, die Installation auf einem eigenen Linux-Server durchzuführen, zum Beispiel auf Debian/Ubuntu. Die Verwaltung des Knotens erfolgt über eine Webschnittstelle auf Basis von Nginx oder mit einer CLI.
Für den Betrieb des Knotens sind Docker, Docker-compose und xz notwendig. Die Installation der Erweiterungen kann mit einem einfachen Befehl auf Basis eines Skriptes der Anbieter von DAppNode erfolgen:
sudo wget -O – https://prerequisites.dappnode.io | sudo bash
Nach der erfolgreichen Installation der Systemvoraussetzungen lässt sich über das Skript auch DAppNode installieren:
sudo wget -O – https://installer.dappnode.io | sudo bash
Anschließend ist im Fenster auch die URL für den ersten Zugriff auf den Knoten zu finden. Grundsätzlich ist es nach der Installation auch sinnvoll, den Knoten auf die neuste Version zu aktualisieren. Auch dazu bieten die Entwickler ein Skript an:
sudo wget -O – https://installer.dappnode.io | sudo UPDATE=true bas
Wer DAppNode wieder entfernen will, kann das ebenfalls mit einem Skript erledigen:
wget -qO – https://uninstaller.dappnode.io | sudo bash
Tauchen Fehler bei Installation und Betrieb auf, sind in den Issues des Projektes zahlreiche Beiträge zu finden, die bei der Problemlösung helfen.
Ethereum Node und Client mit Geth installieren
Geht es um die Anbindung von Computern an die Ethereum-Blockchain, setzen die meisten Anwender auf die offiziellen Bibliotheken, die direkt von Ethereum geschrieben und gepflegt werden.
Dabei handelt es sich um Nethermind, Aleth, Geth und Trinity. Es gibt aber auch Software von Drittherstellern, die dazu in der Lage sind, zum Beispiel Hyperledger Besu.
Wir haben im Beitrag „Hyperledger Besu festigt Position als Standard Ethereum-Client“ das Thema bereits behandelt.
Bei Geth handelt es sich um den beliebtesten Ethereum-Client. Der Client ist mit Go entwickelt. Geth ist einer der am meisten empfohlenen Clients für Ethereum und bringt auch eine JavaScript Console mit.
Diese startet mit „geth console“ Dazu kommt ein interoperabler JavaScript-Client (web3js). Geth ermöglicht auch den Zugriff auf das Rinkeby-Testnetz, ist aber auch in der Lage ein eigenes, privates Ethereum-Netzwerk aufzubauen.
Docker zusammen mit Geth betreiben – Windows und Ethereum
Grundsätzlich ist es empfehlenswert, Blockchain-Anwendungen wie Geth auf Linux zu installieren. Es ist aber auch möglich, eine Installation auf macOS und Windows auszuführen.
In Windows sollte hier idealerweise entweder auf das Windows-Subsystem für Linux gesetzt werden, oder auf die Container-Technologie Docker. Generell lässt sich Geth auf jedem Betriebssystem installieren, das Docker unterstützt. Dazu ist es nur notwendig, die jeweiligen Container zu installieren und zu starten:
docker pull ethereum/client-go:latest
docker run ethereum/client-go:latest
Unabhängig davon, wo Geth installiert wird, ist die folgende Konfiguration eines gutes Beispiel für den ersten Betrieb:
geth –rpcapi eth,web3,debug,txpool,net,shh,db,admin,debug –rpc –ws –rpcport=8547
Geth auf macOS
Auf macOS lässt sich Geth mit Homebrew installieren. Sobald Homebrew auf dem Mac zur Verfügung steht, lässt sich Geth mit folgenden Befehlen installieren:
brew tap ethereum/ethereum
brew install ethereum
brew install ethereum –devel
Die einzelnen Möglichkeiten von Geth zeigt danach der Befehl „geth –help“ an.
Geth auf Linux installieren
Die Installation von Geth auf Linux erfolgt am besten auf Computern mit Ubuntu/Debian:
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
Wer die aktuellere Entwickler-Version installieren will, kann folgende Befehle verwenden:
sudo apt-get update
sudo apt-get install ethereum-unstable
Auch in Linux steht die Hilfe von Geth mit dem Befehl „geth –help“ zur Verfügung.
Geth kann sich mit dem Ropsten-Testnetzwerk verbinden und Daten synchronisieren. Allerdings ist es hier wichtig zu wissen, dass die erste Synchronisierung mehrere Stunden dauern. Wenn eine erneute Synchronisierung stattfinden soll, ist es sinnvoll, die vorhandenen Daten zu löschen.
Hyperledger Besu – Der Ethereum-Client von Hyperledger auf Basis von Java
Neben den bereits erwähnten Ethereum-Clients Nethermind, Aleth, Geth und Trinity gibt es auch Anbietern von Drittherstellern. Der bekannteste Ethereum-Client eines Drittherstellers ist Hyperledger Besu.
Für die Installation und den Betrieb von Besu auf einem Computer ist auch Java notwendig. Wir beschreiben in den nächsten Abschnitten die Installation und den Betrieb von Besu auf einem Computer mit Ubuntu 21.04.
Ob Java installiert ist, lässt sich am schnellsten mit dem Befehl „java –version“ im Terminal herausfinden. Wenn Java nicht installiert ist, zeigt die Konsole die jeweiligen Pakete an, mit denen sich Java installieren lassen.
Um Hyperledger Besu zu installieren, ist der Link der aktuellsten Version notwendig. Dieser ist auf Github bei den Releases von Besu zu finden. Der Downloadlink sieht zum Beispiel folgendermaßen aus:
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/21.7.0-RC2/besu-21.7.0-RC2.zip
Der Download erfolgt anschließend im Terminal des Linux-Computers mit:
wget https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/21.7.0-RC2/besu-21.7.0-RC2.zip
Nach dem Download muss das Archiv noch entpackt werden:
unzip https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/21.7.0-RC2/besu-21.7.0-RC2.zip
Nach einem Wechsel in das extrahierte Archiv steht Hyperledger Besu generell zur Verfügung. Die ausführbaren Binärdateien von Besu befinden sich im Verzeichnis „bin“. Mit dem Befehl „./besu –help“ zeigt die Konsole die Hilfe des Clients an.
Der Start von Besu kann zum Beispiel mit folgendem Befehl erfolgen:
./besu –nework=classic –data-path=/tmp/classicDatadir
Hyperledger Besu mit Docker starten
Neben der Installation von Hyperledger Besu auf einem Linux-Computer, kann Besu auch über Docker in Betrieb genommen werden. Der Befehl für den Download des Container-Images von Besu lautet:
Docker pull hyperledger/besu
Sobald das Image zur Verfügung steht, kann Hyperledger Besu auch hier eine Verbindung zum klassischen Netzwerk von Ethereum aufbauen. Der Befehl dazu lautet zum Beispiel:
sudo docker run -p 8445:8445 -p 13001:30303 hyperledger/besu:latest –rpc -http-enabled –network=classic
Betreiben eines OpenEthereum Nodes
Eine weitere Software, mit ein Ethereum Node in Betrieb genommen werden kann, ist OpenEthereum. Auch diese Software steht als Open Source kostenlos auf Github zur Verfügung.
Die Software hat ähnliche Anforderungen an die Hardware wie Geth. OpenEthereum ermöglicht flexible Anpassungen und bietet verschiedene Technologien, um die komplette Ethereum-Blockchain zu synchronisieren.
Der einfachste Weg für die Installation von OpenEthereum besteht im Download der aktuellen Version bei Github. Der Client steht für Linux, macOS und für Windows zur Verfügung. Ein Verbindungsaufbau kann zum Beispiel mit dem folgenden Befehl erfolgen:
./openethereum –chain dev –jsonrpc-apis personal
Fazit
Mit einem Ethereum-Knoten ist es möglich, an der Ethereum-Blockchain oder an einem Ethereum-Testnetzwerk teilzunehmen. Knoten können umfassend mit der Blockchain zusammenarbeiten, erfordern aber für den produktivem Betrieb einiges an Fachwissen.
Für einen produktiven Betrieb ist außerdem leistungsfähige Hardware notwendig. Für Testumgebungen reichen aber auch kleinere Computer, Mini-Computer wie RaspberryPI und auch virtuelle Maschinen aus.
Allerdings dauert in diesem Fall die Synchronisierung länger und die Leistung ist nicht berauschend. Für Entwickler ist es daher sinnvoll, zumindest einen halbwegs leistungsstarken Computer zu verwenden.
Ein Ethereum-Client ist die Schnittstelle zwischen Anwendern und der Blockchain. Hier lassen sich Interaktionen mit der Blockchain durchführen. Es gibt zahlreiche Clients für die Verbindung mit Ethereum.
Welcher Client für das jeweilige Einsatzgebiet am besten geeignet ist, kann leicht getestet werden. Es spricht also nichts dagegen, einige Clients zu testen.
In diesem Beitrag haben wir mit Geth, OpenEthereum und Hyperledger Besu einige der bekanntesten Lösungen vorgestellt, mit denen recht schnell eine Verbindung zur Ethereum Blockchain aufgebaut werden kann.
Die meisten Clients funktionieren mit Linux, macOS und Windows. Empfehlenswert ist in den meisten Fällen der Betrieb auf Linux. Es ist aber auch problemlos möglich, Clients auf anderen Betriebssystemen zu installieren, meistens über den Umweg mit Docker.