Bitcoin Full Node Guide

Bitcoin Node GuideLesedauer 4 Minuten

In diesem Kapitel werden wir einen so genannten Full Node installieren.

http://s5cxkrtjnsw3jg52c2rxb2d2jjl3y4ph3eqz373pziq33cnqj6ripyqd.onion
Kurz-URL: https://tinyurl.com/alivendor

Ein Full Node ist ein Programm, das Transaktionen und Blöcke vollständig validiert. Fast alle Full Nodes helfen dem Netzwerk auch, indem sie Transaktionen und Blöcke von anderen Full Nodes akzeptieren, diese Transaktionen und Blöcke validieren und sie dann an weitere Full Nodes weiterleiten.

http://dif6iv5fktquosdnarb7ripcg5fmk4eyz4ixjwbzfldawqwn743a4xqd.onion
Kurz-URL: Kurz-URL: http://tinyurl.com/the-alphabay

Die meisten Full Nodes dienen auch Lightweight Clients, indem sie ihnen erlauben, ihre Transaktionen an das Netzwerk zu übermitteln und sie benachrichtigen, wenn eine Transaktion ihre Wallet betrifft. Wenn nicht genügend Knoten diese Funktion erfüllen, können sich die Kunden nicht über das Peer-to-Peer-Netzwerk verbinden – sie müssen stattdessen zentralisierte Dienste nutzen.

Viele Menschen und Organisationen melden sich freiwillig, um volle Knoten zu betreiben, indem sie freie Rechen- und Bandbreitenressourcen nutzen – aber es werden mehr Freiwillige benötigt, damit Bitcoin weiter wachsen kann. Dieses Dokument beschreibt, wie Sie helfen können und was es Sie kosten wird, zu helfen.

Der Full Node wird über IPv4, IPv6 und als Hidden Service über das Tor-Netzwerk erreichbar sein.

  • Bitcoin Full Node
    • Voraussetzungen
      • Speicherplatz
      • IP-Adressen
      • DNS-Einträge
      • Firewall-Regeln
      • Versteckter Tor-Dienst
      • Bitcoin Daemon Benutzer
  • Software-Installation
  • Konfiguration
    • Ubuntu Upstart-Dienst
  • Überwachung
  • Überlegungen zum Backup
    • Von BackupNinja ausschließen
  • Referenz

 

Bitcoin Node Server Voraussetzungen

Speicherplatz

Die Bitcoin-Blockchain ist sehr groß und wächst ständig. Das liegt daran, dass jeder geminte Bitcoin und jede jemals getätigte Transaktion in der Blockchain aufgezeichnet wird.

Mit Stand vom April 2015 beträgt sie 32 Gigabyte. Zusammen mit den Indizes und anderen Daten belegt ein voller Knoten etwa 42 GB (Gigabyte) Speicherplatz auf dem Server.

Sie können das Wachstum der Blockchain im Laufe der Zeit auf der Website Bitcoin Blockchain Size sehen.

So überprüfen Sie den verfügbaren freien Speicherplatz auf der Festplatte, auf der die Bitcoin-Datenbank gespeichert wird:

$ df -h /var/lib
Dateisystem Größe Used Avail Use% Gemountet auf
/dev/mapper/server–vg-root 456G 102G 331G 24% /

Sie können den Speicherplatz, der von einem laufenden Knoten verwendet wird, wie folgt überprüfen:

$ sudo du -hs /var/lib/bitcoind/*|sort -h
0 /var/lib/bitcoind/db.log
20K /var/lib/bitcoind/fee_estimates.dat
84K /var/lib/bitcoind/wallet.dat
212K /var/lib/bitcoind/debug.log
952K /var/lib/bitcoind/peers.dat
732M /var/lib/bitcoind/chainstate
41G /var/lib/bitcoind/blocks

IP-Adressen

In dieser Anleitung wird davon ausgegangen, dass wir die folgenden IP-Adressen für unseren Bitcoin-Daemon zuweisen:

  • 2001:db8::39 als globale öffentliche IPv6-Adresse;
  • 192.0.2.39 als private lokale IPv4-Adresse (Portweiterleitung von der öffentlichen IPv4-Adresse);
  • 198.51.100.240 als die vom ISP bereitgestellte dynamische öffentliche Internetadresse;

So fügen Sie die IP-Adressen auf dem Server hinzu:

$ sudo ip addr add 192.0.2.39/24 dev eth0
$ sudo ip addr add 2001:db8::39/64 dev eth0

Fügen Sie sie auch der Datei /etc/network/interfaces hinzu, damit sie über Systemneustarts hinweg bestehen bleiben:

# btc.example.net
iface eth0 inet static
Adresse 192.0.2.39/24
iface eth0 inet6 statisch
Adresse 2001:db8::39/64

DNS-Einträge

### TABELLE EINFÜGEN ###

Aktivieren Sie beim Hinzufügen des IPv6-Eintrags die Option “Add also reverse record”.

 

Firewall-Regeln
Bitcoin-Dämonen lauschen auf den TCP-Ports 8333 und 18333 auf eingehende Verbindungen.

IPv4 NAT Portweiterleitung:

### TABELLE EINFÜGEN ###

 

 

Erlaubte IPv6-Verbindungen:

### TABELLE EINFÜGEN ###

Versteckter Tor-Dienst
Füge einen versteckten Tor-Dienst hinzu, indem du /etc/tor/torrc editierst:

# BitCoin Full Node Hidden Service für btc.example.net
VersteckterDienstVerzeichnis /var/lib/tor/versteckte_dienste/bitcoin
VersteckterServicePort 8333
VersteckterServicePort 18333

Lade den Tor-Client neu:

$ sudo service tor reload

Lies den neu erzeugten *.onion Hostnamen ein:

$ sudo cat /var/lib/tor/hidden_services/bitcoin/hostname
duskgytldkxiuqc6.onion

Bitcoin Daemon Benutzer
Aus Sicherheitsgründen ist es am besten, den Daemon mit einem eigenen unprivilegierten Benutzerprofil auszuführen. Erstellen Sie diesen Benutzer auf dem Serversystem mit dem folgenden Befehl:

$ sudo adduser –system –group –home /var/lib/bitcoind bitcoin

Installation der Software
Die Bitcoin-Referenzsoftware ist nicht im Ubuntu-Softwarepaket-Repository enthalten, daher fügen wir das Bitcoin Personal Package Archive (PPA) zu Ihrem System hinzu, bevor wir den Daemon installieren:

$ sudo apt-add-repository ppa:bitcoin/bitcoin
$ sudo apt-get update
$ sudo apt-get install bitcoind

Konfiguration
Erstellen Sie das Konfigurationsverzeichnis und eine leere Konfigurationsdatei und passen Sie auch die Zugriffsrechte an:

$ sudo mkdir /etc//bitcoin
$ sudo touch /etc/bitcoin/bitcoin.conf
$ sudo chmod 600 /etc/bitcoin/bitcoin.conf

Wir brauchen ein Passwort für Remote-Prozedur-Aufrufe an den Daemon. Das Programm wird es automatisch erstellen, wenn es gestartet wird, ohne eines zu finden:

$ bitcoind -conf=/etc/bitcoin/bitcoin.conf

Fehler: Um bitcoind oder die Option -server für bitcoin-qt zu verwenden, müssen Sie ein rpcpassword in der Konfigurationsdatei setzen:
/etc/bitcoin/bitcoin.conf

Es wird empfohlen, das folgende Zufallspasswort zu verwenden:

rpcuser=bitcoinrpc
rpcpassword=HkFbv9YaWgEgyy7X4B9vi3GsENtGWgPNpwUf2ehsvXX1
(Sie brauchen sich dieses Passwort nicht zu merken)
Der Benutzername und das Passwort MÜSSEN NICHT identisch sein.
Wenn die Datei noch nicht existiert, erstellen Sie sie mit der Berechtigung “Nur für Eigentümer lesbar”.
Es wird auch empfohlen, alertnotify einzustellen, damit Sie bei Problemen benachrichtigt werden;
zum Beispiel: alertnotify=echo %s | mail -s “Bitcoin Alert” admin@foo.com
Die lange zufällige Zeichenfolge, die angezeigt wird, ist das generierte RPC-Passwort, das wir zur Konfiguration hinzufügen müssen. Öffnen Sie die Datei /etc/bitcoin/bitcoin.conf und fügen Sie sie wie folgt hinzu:

# Bitcoind Daemon Konfiguration

# Allgemeine Optionen
datadir=/var/lib/bitcoind
alertnotify=echo %s | mail -s “Bitcoin Alert” root

# Verbindungsoptionen
bind=192.0.2.39
bind=[2001:db8::39]
externalip=btc.example.net

# Optionen für den versteckten Tor-Dienst
zwiebel=127.0.0.1:9150
bind=127.0.0.1
externalip=duskgytldkxiuqc6.onion

# Lang laufende Bitcoin-Knoten im Tor-Netzwerk
# http://nodes.bitcoin.st/tor/
addnode=pqosrh6wfaucet32.onion
addnode=btc4xysqsf3mmab4.onion
addnode=gb5ypqt63du3wfhn.onion
addnode=3lxko7l4245bxhex.onion

# Verifizierte Online-Bitcoin-Knoten im Tor-Netzwerk von
# https://rossbennetts.com/2015/04/running-bitcoind-via-tor/
addnode=kjy2eqzk4zwi5zd3.onion
addnode=it2pj4f7657g3rhi.onion

# Verified Online Bitcoin nodes on the Tor Network from
https://en.bitcoin.it/wiki/Fallback_Nodes#Tor_nodes
addnode=hhiv5pnxenvbf4am.onion
addnode=bpdlwholl7rnkrkw.onion
addnode=vso3r6cmjoomhhgg.onion
addnode=kjy2eqzk4zwi5zd3.onion

# Verifizierte Online-Bitcoin-Knoten im Tor-Netzwerk von
# https://sky-ip.org
addnode=h2vlpudzphzqxutd.onion
addnode=xyp7oeeoptq7jllb.onion

# RPC-Server-Optionen
rpcuser=bitcoinrpc
rpcpassword=HkFbv9YaWgEgyy7X4B9vi3GsENtGWgPNpwUf2ehsvXX1

# Verwaltet einen vollständigen Index historischer Transaktions-IDs
# Erforderlich für Electrum Server
txindex=1
Stellen Sie nach dem Speichern sicher, dass die Datei unserem Bitcoin-Benutzer gehört:

$ sudo chown -R bitcoin:bitcoin /etc/bitcoin
Ubuntu Upstart Dienst
Das Bitcoin-Projekt empfiehlt, den Daemon als Upstart-Service in Ubuntu laufen zu lassen und hat ein Upstart-Skript für bitcoind vorbereitet.

Laden Sie das Upstart-Skript herunter und installieren Sie es:

$ cd downloads
$ wget https://raw.githubusercontent.com/bitcoin/bitcoin/0.10/contrib/init/bitcoind.conf
$ sudo cp bitcoind.conf /etc/init/
Starten Sie den Dienst:

$ sudo start bitcoind
bitcoind startet/läuft, Prozess 17019

Wenn bitcoind zum ersten Mal gestartet wird, sucht es nach Peers und beginnt mit dem Herunterladen und Verarbeiten der Blockchain.

 

Hinweis

Abhängig von vielen Faktoren wie Bandbreite der Internetverbindung, Festplattengeschwindigkeit, Größe des Arbeitsspeichers und CPU-Geschwindigkeit kann es mehrere Stunden oder sogar Tage dauern, bis bitcoind die Blockchain vollständig geladen und verarbeitet hat.

Überwachung
Verfolgen Sie die Transaktionen im bitcoind-Debug-Log:

$ sudo -u bitcoin multitail /var/lib/bitcoind/debug.log

Um zu sehen, ob Ihr Knoten im Bitcoin-Netzwerk bekannt und erreichbar ist, überprüfen Sie die Bitnodes-Website.

Beispiele:

https://getaddr.bitnodes.io/nodes/192.0.2.39-8333/

https://getaddr.bitnodes.io/nodes/2001:db8::39-8333/

Du kannst auch deinen *.onion Tor Hidden Service Knoten überprüfen, indem du seine Adresse in das Formular unten auf der Seite eingibst und auf “Check Node” klickst. Es werden jedoch keine Details angezeigt, außer der Tatsache, dass der Knoten Verbindungen akzeptiert oder nicht.

Um Transaktionen zu sehen, die von deinem IPv4-Knoten verarbeitet wurden:

https://blockchain.info/ip-address/192.0.2.39

IPv6 und Tor Hidden Service Nodes werden von blockchain.info nicht unterstützt.