Installation Bitcoin Node auf Linux (X86)

Aufgrund der vielen Anfragen, wie man einen Bitcoin Node auf einem Linux X86 installiert, hier ein Tutorial.

1. Vorbereitung des Betriebssystems

Wir gehen von einer fertigen Linux Installation aus. Wichtig ist, dass der Benutzer sudo Rechte hat. Diese können wie folgt vergeben werden.

Einloggen auf dem Linux Server
ssh [email protected]

sudo usermod -aG sudo benutzername
exit

Installation der benutzten Pakete

sudo apt install wget tor gnupg 

(sudo dnf install wget tor gnupg - für Fedora)
(sudo pacman -S wget tor gnupg - für Arch, Manjaro etc)

Download Verzeichnis im Benutzerverzeichnis erstellen

mkdir Downloads

Danach wechseln wir in den Ordner mit

cd Downloads

2. Download und Verifzierung von Bitcoin Core und Download anderer Dateien

Herunterladen von Bitcoin Core

Webseite https://bitcoincore.org/en/download/ aufsuchen und auf mit der rechten Maustaste auf Linux (tgz) klicken und dann Link kopieren.

Im Linux Terminal den Befehl wget eingeben und den Link anfügen. Entweder mit rechte Maustaste und „Einfügen“ oder STRG +V drücken.

wget https://bitcoincore.org/bin/bitcoin-core-23.0/bitcoin-23.0-x86_64-linux-gnu.tar.gz

wget https://bitcoincore.org/bin/bitcoin-core-23.0/SHA256SUMS
wget https://bitcoincore.org/bin/bitcoin-core-23.0/SHA256SUMS.asc

Überprüfung der heruntergeladenen Datei

Mit folgenden Befehl überprüfen wir die Checksumme der Datei

sha256sum --ignore-missing --check SHA256SUMS

Es muss ein OK auftauchen, falls das nicht passiert, sofort löschen.

Wir importieren uns den GPG-Key von einem Bitcoin Core Developer. Es können auch mehrere Keys importiert werden. Zu finden sind diese hier: bitcoin/keys.txt at master · bitcoin/bitcoin · GitHub

gpg --keyserver hkps://keys.openpgp.org --recv-keys E777299FC265DD04793070EB944D35F9AC3DB76A

Danach checken wir die Signatur mittels

gpg --verify SHA256SUMS.asc

Hier muss ein „Good signature“ bei Michael Ford stehen. Nicht wundern, bei den anderen sieht es nicht so aus, da wir diese Keys auch nicht importiert haben.

3. Bitcoind installieren

Entpacken des Bitcoin-Pakets

tar xzf bitcoin-23.0-x86_64-linux-gnu.tar.gz

Installieren von Bitcoind

sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-23.0/bin/*

Teststart von Bitcoind

bitcoind -daemon

In das Verzeichnis /home/benutzername/.bitcoin wechseln

Check des Logfiles ob es Fehler gibt

tail -f debug.log

Wenn alles gut aussieht, laden wir die Systemservice Datei und der rpcauth.py Datei herunter, die wir später brauchen.

Wir gehen auf die Webseite https://github.com/bitcoin/bitcoin/ und klicken auf „Go to file“

in der Suche geben wir rpcauth.py ein, klicken auf Raw, kopieren uns die URL und laden das Script herunter.

wget https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/rpcauth/rpcauth.py

Danach laden wir uns die Systemservice-Datei herunter. Wir klicken im Browser auf Retour und Retour bis wir wieder auf der Hauptseite landen, wo wir wieder auf „Go to File“ klicken und „bitcoind.service“ eingeben. Wir klicken wieder auf Raw, kopieren uns die URL und laden die Datei herunter.

https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/init/bitcoind.service

4. Bitcoin Config erstellen und einrichten als System-Service

Wir erstellen eine Datei namens bitcoin.conf und bearbeiten diese

nano bitcoin.conf

Wir fügen folgenes ein mit rechts Maustaste kopieren und linke Taste einfügen im Linux Fenster, oder mit STRG +v

# Options
testnet=0
server=1
daemon=1
txindex=1
#datadir=
# Connection Settings
# Output from rpcauth.py 

rpcport=8332
rpcbind=0.0.0.0
rpcallowip=127.0.0.1
rpcallowip=10.0.0.0/8
rpcallowip=172.0.0.0/8
rpcallowip=192.0.0.0/8
zmqpubrawblock=tcp://0.0.0.0:28332
zmqpubrawtx=tcp://0.0.0.0:28333
zmqpubhashblock=tcp://0.0.0.0:28334
whitelist=127.0.0.1
#addnode=

# Tor Settings
#onlynet=onion
#proxy=127.0.0.1:9050
#listen=1
#bind=127.0.0.1
#addnode=

Um die Einstellungen zu speichern, drücken wir STRG +x, y und dann Enter. Check ob die Datei vorhanden ist

ls -la

Es sollte eine Datei namens bitcoin.conf jetzt vorhanden sein.

Wir erstellen jetzt einen RPCUser mit Passwort

cd ~/Downloads

Wir müssen rpcauth.py ausführbar machen.

chmod +x rpcauth.py

RPCUser und Passwort erstellen

./rpcauth.py benutzername passwort

Die Zeile rpcauth=xxxx wird kopiert - rechte Maustaste und kopieren - und in bitcoin.conf einfügen

nano ~/.bitcoin/bitcoin.conf

Unter # Output from rpcauth.py fügen wir die kopierte Zeile ein

Danach

STRG +X, y und Enter.

Wir stoppen den Bitcoin Node

bitcoin-cli stop

Einrichtung des Systemservices

Wir wechseln in das Verzeichnis Downloads mit

cd ..

und

cd Downloads
nano bitcoind.service

Unter

[Service]
ExecStart=/usr/bin/bitcoind -daemonwait \

ändern wir den Eintrag auf

ExecStart=/usr/local/bin/bitcoind -daemon \

Anpassen der Verzeichnisse

                            -conf=/etc/bitcoin/bitcoin.conf \
                            -datadir=/var/lib/bitcoind

auf

                            -conf=/home/benutzername/.bitcoin/bitcoin.conf \
                            -datadir=/home/benutzername/.bitcoin

Vor

ExecStartPre=/bin/chgrp bitcoin /etc/bitcoin

setzen wir ein #

# ExecStartPre=/bin/chgrp bitcoin /etc/bitcoin

Unter Run as passen wir den Benutzernamen an

Run as bitcoin:bitcoin

User=bitcoin
Group=bitcoin

ändern auf

User=benutzername
Group=benutzername

Unter Deny access to home setzen wir ein #privacy-allgemein

# Deny access to /home, /root and /run/user
ProtectHome=true
# Deny access to /home, /root and /run/user
# ProtectHome=true

Fertig. Mit STRG +x, y und Enter speichern wir alles ab.

Einbinden des Systemservices

sudo cp bitcoind.service /etc/systemd/system

Aktivieren

sudo systemctl enable bitcoind

Starten

sudo systemctl start bitcoind

Check ob alles läuft

tail -f ~/.bitcoin/debug.log

Wenn alles passt, sind wir soweit fertig. Wenn man den Bitcoin Node über Tor anbinden möchte, dann mit den Schritten weitermachen.

5. An Tor anbinden

Wir fügen unseren Benutzer der Gruppe Tor hinzu


Danach bearbeiten wir die Datei torrc

sudo nano /etc/tor/torrc

Ganz am Ende fügen wir ein:

ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1

Mit STRG +x, y und Enter speichern wir alles ab.

Jetzt müssen wir Bitcoind noch mitteilen, dass es ab jetzt nur noch über Tor geht. Dazu bearbeiten wir unsere bitcoin.conf

nano ~/.bitcoin/bitcoin.conf

Unter Tor aktivieren wir die Config, indem wir # davor entfernen. Es muss dann so aussehen:

onlynet=onion
proxy=127.0.0.1:9050
listen=1
bind=127.0.0.1

Mit STRG +x, y und Enter speichern wir alles ab.

Restart von Bitcoind

sudo systemctl restart bitcoind

Check des Logfiles:

tail -f ~/.bitcoin/debug.log 

Es kann dauern, bis sich über Tor Peers mit unserem Node verbinden.

FERTIG

6. Tipps

Abfragen

Check, wie viele Peers mit uns verbunden sind

bitcoin-cli getconnectioncount

Check der Blockchain-Infos

bitcoin-cli getblockchaininfo

In der Hilfe findet man noch viele andere hilfreiche bitcoin-cli Abfragen

bitcoin-cli help