Etherium bietet mehr als Kryptowährungen und die Absicherung von Transaktionen. Sie stellt eine verteilte Datenverarbeitungs-Plattform bereit. Dieser Beitrag zeigt, wie Sie einen Ethereum-Blockchain-Client auf einem Raspberry Pi 3 B installieren und ausführen.
Blockchain und Ethereum: entdecken mit Raspberry Pi
(Bild: Raspberry Pi / Ethereum)
Blockchain ist noch immer ein unglaublich heißes Thema, was nicht zuletzt darauf zurückzuführen ist, dass Kryptowährungen – insbesondere Bitcoin – scheinbar über Nacht für frühe Nutzer generiert haben. Ein anderer Aspekt sind die neuen wirtschaftlichen Möglichkeiten, die sich durch Kryptowährungen eröffnen.
Blockchain kann aber für bedeutend mehr als Kryptowährungen verwendet werden. Das Blockchain-Konzept eignet sich aufgrund seines komplexen, verteilten Gebildes sowie der Fähigkeit zum Verifizieren von Transaktion für fälschungssichere Datensätze auch für IoT-Anwendungen. Das Interessante an der Ethereum-Plattform ist, dass sie über Kryptowährungen und die Absicherung von Transaktionen hinausgeht und eine verteilte Datenverarbeitungsplattform bereitstellt.
In diesem Beitrag werfen wir einen kurzen Blick auf die Ethereum-Architektur und versuchen, einige der wesentlichen Konzepte und Komponenten zu erläutern, bevor wir uns mit der Installation der Client-Software auf einem Raspberry Pi befassen. Nur zur Klarstellung: Wir decken hier nicht das Mining von Kryptowährungen ab, da hierfür eine wirklich leistungsstarker Grafikprozessor (Graphics Processing Unit; GPU) benötigt wird, aber ein Raspberry Pi kann für die Erstellung einer einfachen Sandbox für Versuche verwendet werden – und das beweist, dass es tatsächlich möglich ist, Blockchain-Technologie mit integrierten Plattformen bereitzustellen.
Ethereum 101
Eine Blockchain ist ein Distributed Ledger (verteiltes Hauptbuch), das in der Regel über ein Peer-to-Peer-Netzwerk verwaltet wird und immer weiter wächst, wenn weitere Datensätze – oder Blocks – sukzessive hinzugefügt werden. Blocks enthalten für gewöhnlich einen Zeitstempel sowie Transaktionsdaten und sind mittels Hashing-Algorithmen kryptographisch gesichert. Das heißt, dass Daten nach der Übergabe nicht mehr verändert werden können – sie sind unveränderbar.
Ether ist die Kryptowährung von Etherium
Die Ethereum-Plattform hat ihre eigene Kryptowährung, genannt Ether, baut aber auch weiter auf Blockchain-Technologie auf, um eine dezentralisierte Plattform für Smart Contracts zu schaffen. Bei Smart Contracts handelt es sich um Objekte, die Code-Funktionen enthalten und auf der Blockchain aufsetzen. Sie sind in der Lage, mit anderen Verträgen zu interagieren, Entscheidungen zu treffen, Daten zu speichern und anderen Ether zu senden.
Smart Contracts werden in einer Sprache namens Solidity implementiert, die auf JavaScript basiert. Der Solidity-Compiler wird zum Kompilieren von Smart Contracts zu Bytecode verwendet – genau wie dies bei JavaScript oder beispielsweise Python-, Java- und Android-Code vor der Ausführung der Fall ist – und dieser wird dann über die Ethereum Virtual Machine (EVM) ausgeführt. Die Ausführung von Transaktionen in einem Smart Contract ist mit Kosten verbunden. Doch dieses ist nicht Thema unseres Beitrags.
Es sind verschiedene Client-Anwendungen für Ethereum verfügbar, wobei die Originalreferenzimplementierung geth in Go geschrieben ist. Einige sind zum Mining von Ether imstande und es gibt auch eine Standalone-Mining-Software sowie GUI-Clients und eine IDE für verteilte Anwendungen.
Neben dem primären, öffentlichen Ethereum-Blockchain-Netzwerk mainnet gibt es Testnetzwerke für Versuche und Sie können auch Ihre eigenen privaten Netzwerke erstellen.
Das Einmaleins zu Ethereum
In der Annahme, dass Raspbian bereits installiert ist, können wir zunächst mit der Aktualisierung der installierten Softwarepakete auf die neuesten Versionen beginnen (Bild 1 der Bildergalerie).
$ sudo apt-get update
$ sudo apt-get dist-upgrade
Bei meinem ersten Versuch den Ethereum-Client zu kompilieren, war nicht ausreichend Arbeitsspeicher verfügbar. Eine gute Möglichkeit, RAM für speicherintensive Aufgaben freizumachen, besteht darin, den der GPU zugeordneten Speicher zu reduzieren. Wenn Sie nicht unbedingt einen grafischen Desktop benötigen, können Sie Ihr System auch so konfigurieren, dass es beim Booten einfach die Befehlszeile öffnet.
$ sudo raspi-config
3 → Booten
B1 → Desktop/CLI
B1 → Konsole
7 → Erweitert
A3 → Speicherverteilung
16 (MB)
Neu booten
Danach können wir die gebündelten Abhängigkeiten installieren.
$ sudo apt-get install git golang libgmp3-dev
Anschließend nehmen wir die Quellen für geth, die offizielle Go-Sprachimplementierung eines Ethereum-Knotens, kompilieren diese und kopieren die ausführbaren Dateien unter den Pfad /usr/local/bin/.
Zunächst verwenden wir geth zur Erstellung eines neuen Kontos (Bild 2 der Bildergalerie):
$ geth account new
Dadurch wird ein neuer Satz kryptographischer Schlüssel generiert und der private Schlüssel wird mit einem Passwort geschützt. Beachten Sie, dass es sich bei Verwendung dieses Kontos für das Mining von Kryptowährung und bedeutungsvolle Transaktionen empfiehlt, Ihre Schlüssel zu sichern und den Zugriff auf Ihren privaten Schlüssel zu verhindern.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Nun starten wir den Knoten (Bild 3):
$ geth --syncmode light --cache 64 --maxpeers 12
Bei Ausführung von geth ohne Argumente wird ein Knoten gestartet und es wird versucht, die gesamte öffentliche Mainnet-Blockchain zu synchronisieren. Angesichts der Größe von > 50 GB, die zudem auch noch beständig zunimmt, ist dies auf einem Embedded-Computer keine so gute Idee. Stattdessen starten wir den Knoten im Synchronisierungsmodus Leicht. So werden nur Block-Header abgerufen, wie sie erscheinen, und andere Teile der Blockchain auf Anforderung.
Um das Beenden des Knotens zu erzwingen, drücken Sie einfach STRG+C. Zum Ausführen als Service beim Booten:
$ sudo vi /etc/systemd/system/geth@.service
Sie können „vi“ auch durch Ihren bevorzugten Texteditor ersetzen. Geben Sie dann folgendes ein:
Speichern Sie die Datei. Zum Ausführen des Ethereum-Knotens als „pi“-Benutzer:
$ sudo systemctl enable geth@pi.service
$ sudo systemctl start geth@pi.service
Bei Ausführung unseres Ethereum-Knotens als Service ist ein Anfügen wie folgt möglich:
$ geth attach
Dadurch erhalten wir eine interaktive JavaScript-Konsole. Von hier aus können wir Funktionen aufrufen wie:
> eth.accounts
Damit werden die aktuellen Konten aufgelistet (Bild 4).
Zum Abrufen von Informationen zu den verbundenen Peers (Bild 5):
> admin.peers
Beachten Sie, dass das Light-Client-Protokoll sich noch in der Entwicklung befindet, in gewisser Weise experimentell ist und auf Unterstützung durch vollständige Peers/Knoten angewiesen ist. Demnach ist es womöglich nicht besonders praktisch, es zum Zeitpunkt des Schreibens für Transaktionen auf der Ethereum-Mainnet-Blockchain zu verwenden. Die Dinge entwickeln sich aber schnell und die Situation könnte sich in nicht allzu ferner Zukunft auch leicht ändern.