Eigenen Bitcoin Node installieren und betreiben
Um einen Bitcoin Node zu betreiben, ist verschiedene Soft- und Hardware notwendig. Die Software steht kostenlos zur Verfügung, als Hardware können alle Arten von Computern und Minicomputern zum Einsatz kommen. Auch auf Notebooks und Raspberry Pi ist die Installation von Bitcoin als vollständiger Knoten in der Blockchain möglich. In den meisten Fällen erfolgt die Installation über die offizielle Software Bitcoin Core.
Ein Bitcoin Node ist nicht gleichbedeutend mit dem Minen von Bitcoin. Natürlich kann ein Bitcoin Node auch zum Minen eingesetzt werden. Das ist aber nicht zwingend seine Hauptaufgabe. Die wichtigste Aufgabe eines Bitcoin Nodes ist das Verifizieren von Transaktionen und neuen Blöcken.
Miner Nodes gehen noch weiter und erzeugen neue Blöcke. Hier sind die Anforderungen an die Hardware natürlich noch höher. Während der Miner komplexe Rechenaufgaben für die Erzeugung von neuen Blöcken lösen muss, ist die Aufgabe eines Bitcoin Nodes nur das Verifizieren der neuen Blöcke und Transaktionen.
Allerdings sind diese Knoten dennoch sehr wichtig, denn ohne Bitcoin Nodes kann die Bitcoin-Blockchain nicht unabhängig agieren. Die Knoten, die Transaktionen und Blöcke verifizieren, sind das Rückgrat der Bitcoin-Blockchain. Allerdings erhalten diese Knoten keinerlei Belohnung oder Bezahlung.
In vielen Fällen sind Nodes auch dazu in der Lage als Light-Client zu fungieren, also eigene Transaktionen in die Blockchain zu übermitteln. Bitcoin Nodes spielen eine wichtige Rolle für die Bitcoin-Blockchain, da ohne sie das Übertragen und Verifizieren von Transaktionen stark eingeschränkt wäre.
Was sind die Vorteile beim Betrieb eines Blockchain Nodes?
Bitcoin Nodes unterstützen die Bitcoin-Blockchain dabei, unabhängig zu sein und stellen sicher, dass Transaktionen und Blöcke mit maximaler Sicherheit verifiziert werden können.
Ein weiterer Vorteil beim Betrieb eines eigenen Knotens besteht zusätzlich darin, dass die eigenen Transaktionen durch den eigenen Knoten verifizierbar sind, was natürlich Datenschutz und Sicherheit des eigenen Wallets deutlich erhöhen.
Ein Bitcoin Node ist daher auch dann sinnvoll, wenn sichergestellt werden soll, dass die eigenen Bitcoins möglichst sicher und die Transaktionen ebenfalls maximal sicher verifiziert werden können. Ohne den Betrieb eines eigenen Knotens müssen Bitcoin-Besitzer komplett auf externe Knoten vertrauen.
Eigene Bitcoin Nodes validieren alle Transaktionen der Blockchain und sind sehr viel enger mit der Blockchain verbunden als herkömmliche Clients oder Wallets. Mit einem Bitcoin Node haben Anwender den kompletten Überblick zur Bitcoin-Blockchain.
Gefälschte Blockchains und Forks lassen sich mit eigenen Knoten sehr viel zuverlässiger und einfacher erkennen. Es lohnt sich daher einen eigenen Knoten zu betreiben, wenn Anwender eigene Bitcoins besitzen und entsprechend Hardware zur Verfügung steht. Die Software ist kostenlos.
Wer einen Wallet-Dienst eines Drittanbieters nutzt, muss diesem vertrauen und seine privaten Daten übermitteln. Verbindet sich das Wallet mit dem eigenen Knoten, ist das natürlich nicht notwendig. Auch das stellt einen großen Vorteil beim Betrieb eines eigenen Knotens dar.
Full Nodes versus Light Nodes
Generell gibt es zwei Arten von Nodes in Bitcoin. Full Nodes sind vollständige Knoten in der Bitcoin-Blockchain. Die vollständigen Knoten haben die Aufgabe, alle Transaktionen zu bestätigen und benötigen daher die komplette Bitcoin-Blockchain. Light Nodes benötigen nur die wichtigsten Daten der Blockchain und verifizieren nicht alle Transaktionen. Diese Knoten sind dann im Einsatz, wenn die Hardware und Internetleitung nicht dazu in der Lage ist einen vollständigen Knoten zu betreiben.
Das ist beim Betrieb eines Bitcoin Nodes wichtig
Wie die meisten Bitcoin-Apps und -Lösungen, stehen die Installationsdateien eines Bitcoin Nodes für Linux, Windows und macOS zur Verfügung. In den meisten Fällen erfolgt die Installation eines Knotens auf Linux-Rechnern. Es gibt einige Beispiele, in denen Angreifer Code von Malware in der Blockchain integriert haben.
Das stellt zwar für die Knoten keine Gefahr dar, kann Antivirenprogramme aber dazu veranlassen, einen Alarm auszulösen und das System auszubremsen. Dieses Problem tritt primär bei Windows-Rechnern auf, daher unsere Empfehlung den Bitcoin Node auf einem Linux-Rechner oder macOS zu betreiben.
Für macOS ist allerdings Apple-Hardware notwendig. Steht eine solche nicht zur Verfügung, ist der Betrieb mit Linux sicher der beste Weg. Der einfachste Weg, einen eigenen Bitcoin Node in Betrieb zu nehmen, ist die Installation von Bitcoin Core auf einem Windows-Rechner. Wer sich daher schnell einen Überblick verschaffen will, kann die Installation durchaus auch auf einem Windows-Rechner durchführen.
Beim Betrieb eines Bitcoin-Knotens fallen natürlich Kosten an. Zunächst verbraucht der Computer durch seinen Betrieb einen mehr oder wenigen hohen Energieverbrauch, der genauso wie bei Minern, generell nach oben offen ist.
Damit ein Knoten sinnvoll im Einsatz ist, sollte er dauerhaft mit der Blockchain verbunden sein, also am besten 24/7. Es reicht aber auch aus, wenn der Knoten zum Beispiel nur 8 Stunden am Tag online ist.
Dazu kommt die notwendige Hardware. Natürlich ist es auch möglich, einen Bitcoin Node auf schwacher Hardware oder einem virtuellen Computer zu betreiben. Allerdings führt eine solche Konstellation zu Problemen beim Betrieb der Blockchain. Diese Probleme führen zu Aufwand, da sie behoben werden müssen, damit der Knoten funktioniert. Auch das kostet Zeit und Geld.
Natürlich gibt es hier Ausnahmen. Einige Betreiber von Bitcoin Nodes installieren die Knoten in Amazon EC2 oder nutzen Microsoft Azure Virtual Machines. Diese können natürlich enorme Leistung bieten. Allerdings kosten leistungsfähige VMs in Amazon Web Services (AWS) oder Microsoft Azure auch teilweise hohe Summen.
Auch der benötigte Speicher kostet Geld, am Beispiel von Bitcoin sind das schon alleine 360 Gigabyte für die Blockchain. Dazu kommt der Netzwerkverkehr, der teilweise in AWS und Azure zusätzliche Kosten verursacht.
Während ein Bitcoin Node seine Arbeit erledigt, kann er natürlich auch andere Aufgaben übernehmen. Bei entsprechender Hardware ist es kein Problem nebenher mit anderen Programmen zu arbeiten oder zusätzliche Aufgaben zu übernehmen. Allerdings sollten diese den Computer nicht noch zusätzlich belasten.
Voraussetzungen für den Betrieb eines Bitcoin Nodes
Ein Bitcoin Node benötigt mindestens 7 GB freien Speicherplatz für seine Arbeit, natürlich besser deutlich mehr. Die notwendigen Daten des Betriebssystems, die Datenbank der Blockchain, und auch andere Programme sind hier noch nicht eingerechnet. Die 7 GB benötigt der Knoten für seinen täglichen Betrieb.
Dazu kommen mindestens 2 GB Arbeitsspeicher und eine Internetleitung mit mindestens 400 Kilobyte. Das sind die Minimalvoraussetzungen. Damit ein Knoten optimal funktioniert, sollte die Hardware natürlich wesentlich schneller sein, und auch die Leitung zum Internet sollte möglichst schnell sein.
Ebenfalls wichtig ist, dass es für den Upload ins Internet keine Beschränkung oder Limits gibt. Diese schränken den Knoten ein, und am Ende auch die Internetnutzung von anderen Apps. Es ist durchaus üblich, dass Bitcoin-Knoten mehrere Hundert Gigabyte an Datenvolumen für den Upload benötigen, und auch der Download der Bitcoin-Daten muss Berücksichtigung finden.
Bereits beim ersten Start des Knotens muss er die Bitcoin-Blockchain-Datenbank herunterladen. Im Juli 2021 hatte die Datenbank bereits eine Größe von etwa 360 Gigabyte. Die Entwicklung der Datenbank ist auf der Seite YCharts zu finden. Bei manchen Anbietern kann es passieren, dass er den Vertrag kündigt, wenn der Upload zu hoch wird. Das sollte vor der Einrichtung eines Knotens abgeklärt werden.
Beim Betrieb ist es wichtig, dass der Energiesparmodus und der Bildschirmschoner möglichst ausgeschalten sind, damit der Computer nicht bei seiner Arbeit beeinträchtigt wird. Das erhöht natürlich die Energiekosten. Vor allem beim Betrieb auf einem Notebook ist das Betriebssystem meistens so eingestellt, dass es energiesparend funktioniert. Das ist für den Node nicht ideal. Es sollte möglichst keine Einschränkungen geben.
Initial Block Download beachten
Der initiale Blockdownload (IBD) beschreibt den Prozess des Downloads von aktuellen Blöcken aus der Blockchain, und auch den bereits vorhandenen Blöcken. Im Laufe des IBD akzeptiert ein Knoten weder eingehende Transaktionen noch fordert er Mempool-Transaktionen an.
Der Bitcoin Node zeigt erst dann neue Transaktionen an, wenn er den IBD vollständig durchgeführt und verifiziert hat. Für Bitcoin Core steht dazu eine GUI zur Verfügung, die den Status des IBD anzeigt. Wer keine GUI benötigt, kann in Linux auch Bitcoin Core Daemon nutzen. In diesem Fall können die Übertragungen nicht in der grafischen Oberfläche angezeigt werden.
Nach der Installation des Knotens muss dieser im Rahmen seines IBD zunächst die komplette Blockchain-Datenbank herunterladen. Das sind die bereits beschrieben 360 Gigabyte. Der Wert steigt allerdings täglich an. In den meisten Fällen dauert der Download mehrere Tage.
Vor allem beim ersten Download belastet der IBD natürlich deutlich die Internetleitung, das Netzwerk und auch die Hardware des Knotens. Die CPU muss die heruntergeladenen Blöcke verifizieren, was auch zur Belastung der CPU-Kerne führt. Der Speicherverbrauch des Knotens steigt ständig weiter an.
Bitcoin Node installieren – Linux, Windows und macOS
Wie bereits ausgeführt, ist die Installation eines Bitcoin Nodes auf Basis von Linux der sinnvollste Weg. Hier stehen im Grunde genommen nahezu alle Distributionen zur Verfügung. Wir konzentrieren uns nachfolgend auf Ubuntu/Debian. Der Betrieb ist bei CentOS/Red Hat aber nicht großartig unterschiedlich.
Die Installationsdateien eines Bitcoin Nodes finden sich zum Beispiel bei bitcoincore.org. Mit Bitcoin Core und Bitcoin Core GUI stehen hier alle notwendigen Tools zur Verfügung, um einen eigenen Bitcoin Node zu betreiben.
Die Installation auf Ubuntu/Debian besteht zunächst darin, das Repository von Bitcoin zu Linux hinzuzufügen. Das lässt sich natürlich auch remote per SSH erledigen:
sudo apt-add-repository ppa:bitcoin/bitcoin
Auch der Download bei bitcoincore.org oder auf GitHub ist sinnvoll, da hier die Versionen aktueller sein können. Das Hinzufügen des Universe-Repositories ist hier ebenfalls möglich. Wir zeigen nachfolgend auch, wie der Quellcode der aktuellen Version von Bitcoin Core aus Github geclont und danach kompiliert wird:
sudo add-apt-repository universe
Nach dem Hinzufügen sollten die Paketquellen auch gleich aktualisiert werden:
sudo apt-get update
Um Updates gleich zu installieren, kann auch der folgende Befehl genutzt werden:
sudo apt update && sudo apt upgrade
Die eigentliche Installation erfolgt anschließend mit:
sudo apt install build-essential autoconf libtool pkg-config libboost-all-dev libssl-dev libevent-dev doxygen libzmq3-dev libdb++-dev libsqlite3-dev
sudo apt-get install bitcoin-qt bitcoind
Die Installation kann auch über den Download der notwendigen Dateien direkt bei Git erfolgen, zum Beispiel mit:
git clone https://github.com/bitcoin/bitcoin.git
Wenn Git auf dem Computer noch nicht verfügbar ist, kann das Paket am Beispiel von Ubuntu/Debian mit diesem Befehl installiert werden:
sudo apt install git
Nach einem Wechsel in das Verzeichnis „bitcoin“ mit „cd bitcoin“ ist noch die BerkeleyDB-Datenbank-notwendig. Diese ist für das Bitcoin-Wallet erforderlich. Aus Gründen der Abwärtskompatibilität ist die Installation noch erforderlich. Die Installation kann direkt aus dem Bitcoin-Verzeichnis heraus erfolgen:
./contrib/install_db4.sh `pwd`
Danach kann die neue Version von Bitcoin Core ausgecheckt und überprüft werden, zum Beispiel mit:
git checkout v0.21.1
git status
Anschließend können die Build-Skripte für die Kompilierung vorbereitet werden. Danach erfolgt die Kompilierung ohne GUI:
./autogen.sh
export BDB_PREFIX=“$HOME/bitcoin/db4″
./configure BDB_LIBS=“-L${BDB_PREFIX}/lib -ldb_cxx-4.8″ BDB_CFLAGS=“-I${BDB_PREFIX}/include“ –with-gui=no –with-miniupnpc=no
make
make check
sudo make install
Bitcoin und TOR
Für den sicheren Betrieb kann es auch sinnvoll sein, den Bitcoin-Server über TOR mit dem Internet zu verbinden. Dadurch ist der Datenverkehr anonym. Die Vorgehensweise dazu ist aber optional. Die Befehle nach der Kompilierung sind:
cd ~
mkdir .bitcoin
touch .bitcoin/bitcoin.conf
echo „txindex=1“ >> .bitcoin/bitcoin.conf
echo „onlynet=onion“ >> .bitcoin/bitcoin.conf
Die Installation von TOR erfolgt anschließend mit:
sudo apt install tor
Nach der Installation sollte noch die TOR-Konfigurationsdatei überprüft werden. Das erfolgt zum Beispiel mit dem Befehl:
less /usr/share/tor/tor-service-defaults-torrc
Hier sollte sichergestellt sein, dass die folgenden Daten in der Datei zu sehen sind:
ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1
Ist das nicht der Fall, lassen sich die Zeilen leicht integrieren:
sudo sh -c „echo ‚ControlPort 9051‘ >> /etc/tor/torrc“
sudo sh -c „echo ‚ CookieAuthentication 1‘ >> /etc/tor/torrc“
sudo sh -c „echo ‚ CookieAuthFileGroupReadable 1‘ >> /etc/tor/torrc“
Der Neustart von TOR mit den neuen Optionen in der Konfigurationsdatei erfolgt mit:
sudo systemctl restart tor
Wichtig ist noch, dass der Benutzer unter dem Bitcoin Core eine Verbindung zu TOR aufbaut die Berechtigung hat, TOR zu nutzen:
sudo usermod -a -G debian-tor <Benutzername>
Bitcoind starten, zusammen mit TOR
Um bitcoind so zu starten, dass eine Verbindung zum TOR-Netzwerk erfolgt, ist folgender Befehl notwendig:
bitcoind -daemon -debug=tor
Die erfolgreiche Netzwerkverbindung lässt sich danach mit dem folgenden Befehl anzeigen:
bitcoin-cli getnetworkinfo
Nach der erfolgreichen Synchronisierung ist es möglich, neue Transaktionen und Blöcke anzuzeigen, zum Beispiel mit:
bitcoin-cli getpeerinfo | grep true
Raspberry Pi als Bitcoin Node nutzen: RaspiBlitz
Um einen Bitcoin Node zu betreiben, kann auch einen Raspberry Pi nutzen. Hier steht mit RaspiBlitz eine Software auf Github zur Verfügung, welche die meisten Aufgaben bei der Installation eines Bitcoin Nodes selbst erledigt.
Auf der Seite des Projektes beschreiben die Entwickler ausführlich, wie RaspiBlitz installiert und mit der Bitcoin-Blockchain verbunden wird. Hier lassen sich auch weitere Dienste betreiben, unter anderem die Anbindung an das TOR-Netzwerk.
Hi,
kennst du jemanden der als Dienstleister eine Bitcoin Node quasi als Auftragnehmer betreiben kann?
Danke im Voraus für eine Rückmeldung