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