Nur wer einen Node betreibt, dockt wirklich ans Bitcoin-Netzwerk an, und nur wer einen Node betreibt, hat eine Stimme in der Wahl, wie und was Bitcoin sein soll. Aber was genau ist ein Node? Und wie hoch ist der Aufwand, einen zu betreiben? Wir zeigen, wie man in vier Schritten einen vollwertigen Node aufbaut – und Teil des Bitcoin-Netzwerks wird.
Ihr wisst vermutlich, was ein P2P-Netzwerk ist. P2P bedeutet peer-to-peer und meint, dass ein Netzwerk nur aus „peers“ besteht. „Peers“ ist englisch und heißt sowas wie „Kumpel“ oder „Genosse“ und meint, in einem technischen Sinn „gleichwertig.“ In einem dezentralen Netzwerk sind alle Knoten gleich. Das meint P2P. Bei Bittorrent bedeutet es, dass jeder, der die Software laufen lässt, sowohl Dateien rauf- als auch runterlädt.
Beim Bitcoin bedeutet es, dass jeder, der die entsprechende Software laufen lässt, Transaktionen sendet, empfängt, prüft und weiterleitet. Die Software klopft nicht nur beim Server an, um eine Info abzuholen oder einzureichen, sondern ist selbst ein Server – ein Baustein des Netzwerkes.
Jeder Bitcoin-Knoten – auch Client genannt – speichert die gesamte Blockchain. Er prüft jede Transaktion, die ihn erreicht, und leitet sie weiter. Wer – und nur wer – einen Bitcoin-Client benutzt, dockt direkt an das System an, um eine Transaktion abzusenden oder zu empfangen. Jeder, der keinen Client benutzt, benötigt jemanden anderen, der Transaktionen für ihn sendet und empfängt. Wer Wallets wie Electrum, Multibit, blockchain.info oder Mycelium benutzt, gibt jemandem anderen seine Transaktion, damit der sie für einen weiterleitet.
Dieser direkte Zugang zum Netzwerk ist der erste Grund, einen Node zu fahren. Der zweite Grund ist, dass die Betreiber eines Nodes mit der Software abstimmen, wie das Bitcoin-Netzwerk beschaffen ist. Sie können Updates installieren, wenn sie damit einverstanden sind, oder sie können sie ablehen. Sie können sogar ihre Software eigenmächtig verändern, solange sie dabei nicht gegen die Konsensregeln des Protokolls verstoßen. Ein Bitcoin-Node ist also eine Art Stimme in der kontinuierlichen Abstimmung darüber, welche Eigenschaften das Netzwerk hat. Der dritte Grund, einen Node zu haben, ist altruistisch – ihr untestützt damit das Bitcoin-Netzwerk. Je mehr Nodes, desto besser flutschen die Transaktionen, und desto sicherer das Netzwerk gegen Angriffe.
Wie betreibt man nun einen Node? Ich versuche es in vier Schritten zu erklären.
- Installieren. Man lädt sich die entsprechende Software herunter. Derzeit gibt es fünf Versionen des Clienten – Bitcoin Core, Bitcoin Unlimited, Bitcore, BitcoinXT und Bitcoin Classic. Dazu später mehr. Weiter gibt es btcd, aber auch dazu später mehr.
- Blockchain laden. Nach der Installation lädt man die Blockchain herunter. Das ist, zugegeben, etwas belastend. Denn die Blockchain ist eine Liste mit allen bisherigen Transaktionen und deswegen ziemlich groß. Derzeit fast 55 Gigabyte. Da sie zudem nicht von einem Server, sondern über die Peers im Bitcoin-Netzwerk geladen wird, kann es schon eine Weile dauern, bis man die ganze Kette auf der Platte hat. Gerne auch mehrere Wochen. Es gab mal einen Blockchain-Torrent vom Bundesverband Bitcoin, aber den gibt es nicht mehr, ebensowenig wie einen anderen offiziellen Torrent, den ich euch ohne Bauchschmerzen empfehlen kann. Wer einen Node betreiben will, kann sich aber bei mir melden (christoph.bergmann@mailbox.org). Ich kann zum Selbstkostenpreis meine Blockchain auf einen USB-Stick laden und verschicken.
- Port freigeben. Wenn die Blockchain geladen ist, müsst ihr unbedingt den Port 8333 öffnen. Ansonsten werdet ihr nur 8 eingehende Verbindungen haben, was bedeutet, dass euer Node zwar Transaktionen sieht, sie aber nicht weiterleitet. Er ist eine Art passiver und halber Node. In der Regel müsst ihr den Port in eurer Router-Steuerung öffnen. Wie genau das geht, hängt von eurem Router ab. Auf dieser Seite erfahrt ihr, ob ihr ein vollwertiger Node seid.
- Glückwunsch! Der Node ist online und euer Computer ist zu einem vollwertigen Teil des Bitcoin-Netzwerks geworden.
Das war die kurze Version. Für die ganzen Fragen, die ich jetzt übersprungen habe, gibt es
eine kleine FAQ
Muss ich den Node permanent laufen lassen?
Warum muss der Node zuerst die Blockchain laden, wenn ich ihn starte?
Wieviel Rechenleistung braucht die Software?
Wieviel Festplattenspeicher braucht der Node?
Wieviel Bandbreite brauche ich?
Kann ich den Node auf einem Laptop / einem Smartphone / einem Raspberry / einem virtuellen Server laufen lassen?
Kann ich den Node über Tor / ein Proxy benutzen?
Was ist der Unterschied zwischen den Versionen?
Wo erfahre ich mehr über Nodes?
Woher weiß ich, dass auf dem USB-Stick mit der Blockchain kein Virus ist?
Kann ich die blockchain auf einer anderen Festplatte speichern?
Muss ich den Node permament laufen lassen?
Nein. Auch ein Node, der nur eine Stunde am Tag online ist, trägt dazu bei, dass Transaktionen im Netzwerk verbreitet werden. Allerdings braucht ein Node etwa sechs Stunden, um vollständig hochzufahren bzw. sich zu vernetzen. Das heißt, einen wirklichen Nutzen hat ein Node nur, wenn er lange läuft.
Warum muss der Node zuerst die Blockchain laden, wenn ich ihn starte?
Bei jedem Start muss sich ein Node auf den neuesten Stand bringen. Er muss alle Blöcke, die an die Blockchain angehängt worden sind, während er offline war, herunterladen. Je nachdem, wie lange das war, kann das einige Zeit dauern. Ein Grund mehr, den Node oft und lange Zeit ans Netz zu lassen.
Wieviel Rechenleistung braucht die Software?
Die aktive Arbeit des Nodes ist es, Transaktionen zu verifizieren. Dafür muss der Node unter anderem die in einer Transaktion enthaltenen Signaturen prüfen. Dies braucht etwas Rechenleistung und Arbeitsspeicher, aber gewöhnlich hält es sich in starken Grenzen. Auf einem normalen Rechner, wie man ihn heute für 400 Euro inklusive Monitor bekommt, ist zwar am Anfang, während der Node noch Blöcke herunterlädt, spürbar, verschwindet aber im Normalbetrieb fast vollständig. Gelegentlich kann es Spitzen der Belastung geben, wenn außerordentlich viele oder außerordentlich komplexe Transaktionen eingehen. Aber in der Regel sind CPU und Arbeitsspeicher kein Thema.
Wieviel Festplattenspeicher braucht der Node?
Der Node muss, wie gesagt, die gesamte Blockchain speichern. Dies sind derzeit 55 Gigabyte. Die Blockchain wächst jeden Tag und es ist anzunehmen, dass das Wachstum eher zu- als abnimmt, weshalb zu erwarten ist, dass die Blockchain im Lauf der nächsten 1-2 Jahre mehr als 100 Gigabyte groß sein wird. Aber angesichts der günstigen Festplattenpreise ist der Speicherbedarf bislang noch relativ vernachlässigbar.
Wieviel Bandbreite brauche ich?
Ein vollwertiger Node hat 8 ausgehende Verbindungen (wenn er das nicht hat, ist der Port 8333 geschlossen!) und 10-20 eingehende Verbindungen. Von den eingehenden Verbindungen empfängt er Transaktionen und Blöcke. Die Blöcke brauchen derzeit etwa 800 Kilobyte alle zehn Minuten, die Transaktionen unter Umständen ein wenig mehr. Was den Download angeht ist ein Node, verglichen mit dem Rest des Internets, recht bescheiden. Der Upload hingegen kann schon ins Gewicht gehen. Denn der Node sendet im Idealfall an alle seine peers Transaktionen und Blöcke und, wenn einer die Blockchain lädt, auch vergangene Blöcke. Dadurch kann der Upstream durchaus Werte wie 2 Megabit erreichen.
Die Clients Bitcoin Unlimited sowie BitcoinXT haben einen Traffic-Shaper, mit dem man einstellen kann, wieviel Bandbreite man spendet. Bitcoin Core wird in der Version 0.12 ebenfalls ein solches Werkzeug haben. Mehr dazu weiter unten.
Kann ich den Node auf einem Laptop / einem Smartphone / einem Raspberry / einem virtuellen Server laufen lassen?
Auf den meisten Laptops – ja. Möglich, dass Laptops mit 4 Gigabyte Arbeitsspeicher und einer schwachen CPU teilweise beim Laden der Blöcke an ihre Grenzen stoßen werden, aber an sich kein Problem. Ein Node auf einem Smartphone dürfte hingegen am Festplattenspeicher und, sofern nicht mit einem lokalen Netzwerk verbunden, an der Bandbreite scheitern. Ein Raspberry ist hingegen eine beliebte Version, um einen kostensparenden Full Node zu betreiben. Hier muss man nur Acht geben, ob die Festplatte und der Prozessor ausreichend Kraft haben. Auch ein Node auf einem virtuellen Server ist kein Problem. Damit jedoch wird der Node in der Regel ein reines Geschenk für das Bitcoin-Netzwerk, da er wohl seine Wallet-Funktionalitäten verliert.
Kann ich den Node über Tor / ein Proxy benutzen?
Ja. Dazu müsst ihr das in den Einstellungen einstellen. Zugleich müsst ihr dafür sorgen, dass bei eurem Proxy / VPN der Port 8333 offen ist. Was manchmal recht kompliziert wird.
Was ist der Unterschied zwischen den Versionen?
Das ist etwas kompliziert. Abgesehen von btcd – dazu gleich – sind alle verfügbaren Nodes Abkömmlinge der Software von Satoshi Nakamoto (daher heißen sie auch Satoshi Client). Diese Software ist in C++ und wird von den Bitcoin-Entwicklern, die zuerst QT-Entwickler hießen und heute Kern-Entwickler heißen, gepflegt und verbessert. Die aktuelle Referenzversion ist Core 0.11.2, in Kürze werden die Kernentwickler Version 0.12 mit zahlreichen großen Änderungen veröffentlichen.
BitcoinXT, Bitcoin Unlimited und Bitcoin Classic bauen auf Core 0.11.2 auf und verändern nur Details. Am wichtigsten ist dabei der Umgang mit der maximalen Größe von Blöcken. Während Core hier an 1 MB festhält, möchte XT BIP101 (=8MB) starten, hat dafür aber nicht die notwendige Unterstützung gefunden. Classic ist ein neuer Vorstoß mehrer Entwickler, die Blockgröße auf 2 MB anzuheben und genießt eine erhebliche Unterstützung in der Bitcoin-Wirtschaft. Unlimited schließlich ist ein Projekt, das dem Nutzer die Möglichkeit gibt, selbst zu entscheiden, wie groß ein Block sein darf. Bitcore schließlich ist der Node des Bitcoin-Zahlungsdienstleisters BitPay, der vor kurzem ein eigenständies Konzept für die Blocksize vorgelegt hat.
Die letzte Bitcoin-Version ist btcd. Btcd ist eine Neuprogrammierung von Bitcoin in der Programmiersprache go. Bisher läuft btcd stabil in der Beta-Phase, hat aber, anders als Core, keine Wallet-Funktionalität und ist somit nur dazu geeignet, um als Node das Netzwerk zu unterstützen. Dies ist so gewünscht, um den Node von der Wallet zu trennen. Ein Wallet-Modul, um btcd als Wallet zu nutzen, ist in Arbeit.
Wo erfahre ich mehr über Nodes?
Indem ihr zunächst die vielen Links in diesem Artikel besucht. Interessant ist auch der Eintrag im Bitcoin-Wiki über Nodes – hier die englische Version, außerdem noch einige Infos über den Betrieb. Weiter könnt ihr auf xtnodes.com sehen, welche Versionen benutzt werden, und auf bitnodes.21.co noch genauer, inklusive Versionsnummer und geographischem Standort. Wußtet ihr, dass Deutschland der weltweit zweitwichtigste Stützpunkt von Nodes ist?
Woher weiß ich, dass auf dem USB-Stick mit der Blockchain kein Virus ist?
Indem ihr mir vertraut. Ich weiß leider keine bessere Lösung, da ich kein vertrauenswürdiges torrent gefunden habe. Wenn ihr mich anschreibt, mir die Kosten für einen USB-Stick erstattet (ihr könnt ihn mir auch per Post schicken), lade ich euch die Blockchain auf den Stick und schicke sie euch zu. Dann könnt ihr sie auf eure Festplatte installieren und müsst nur noch die letzten Tage aus dem Netzwerk ziehen.
Kann ich die blockchain auf einer anderen Festplatte speichern?
Ja. Dazu müsst ihr allerdings eine kleine Änderung in der Datei bitcoin.conf vornehmen: Ihr müsst in sie reinschreiben „-datadir=<Verzeichnis>“. In dieser Datei könnt ihr noch viele weitere Optionen einstellen, etwa die maximale Anzahl von Verbindungen.
Ist noch eine Frage offen? Wenn ja – ihr wisst ja, wo ihr einen Kommentar abgeben könnt.

