So brachte ich eine Bitcoin Fullnode auf einen Intel NUC (und einen QNAP)

Hallo zusammen,

Anleitungen für Umbrel Fullnodes für Raspberry Pi gibt es einige im Netz. Doch für meine verfügbare Hardware fand ich keine.

Dank @kieselbert, der mir bei der Einrichtung half , habe ich nun eigene Fullnodes (eine zum Testen und eine produktive) . Für alle, denen es geht wie es mir ging, versuche ich im folgenden zusammenzufassen, wie wir alles eingerichtet haben.

Ziel

Eine Bitcoin Full Node auf einem Intel NUC-Kit D54250WYK Mini-PC (Core i5-4250U) betreiben:

https://www.amazon.de/Intel-NUC-Kit-D54250WYK-Mini-PC-i5-4250U/dp/B00GHAKGDI

Die Daten liegen auf einem QNAP TS-419P+

Zu erst musste ich meinem Intel NUC eine mSata Festplatte spendieren:

https://www.idealo.de/preisvergleich/OffersOfProduct/201196550_-kc600-1tb-msata-kingston.html

Vorbereitung

Installationen

Proxmox

Proxmox ist ein Hypervisor, mit dem ich verschiedene Virtuelle Maschinen einrichten konnte.

  • Proxmox auf dem Intel Nuc intstallieren
  • Fritzbox

– IP 192.168.178.X (Unter Netzwerkverbindungen dem Intel Nuc eine fest IP zuweisen)
– Gateway 192.168.178.1
– 24 oder 255.255.255.0 je nachdem in welchem Format er die haben will.
– DNS 192.168.178.1

Zugriff auf Proxmox

https://192.168.178.X:8006/

LogIn: root

Falls das Proxmox Update nicht funktioniert:

  • Eingabeaufforderung/Shell öffnen: nano /etc/apt/sources.list
    – ergänze: deb Index of /debian/pve/ buster pve-no-subscription
    – speichern: strg+x (danach Y und Enter)

  • shell: nano /etc/apt/sources.list.d/pve-enterprise.list
    – Zeile auskommentieren mit: #

Im folgenden Video wird ab Minute 10 erklärt wie man das NAS per NFS-Mount einbindet:

QNAP als Network Fils Storage (NFS) einrichten

Ubuntu Server auf Proxmox installieren

  • iso in ‚vmstore/template/iso‘ auf qnap ablegen (Ich konnte die ISO nur über das Webfrontend hochladen.)

  • Erstelle VM Button klicken

  • einstellen
    – ISO Image von Ubuntu
    – Disk-Größe: 800GB
    – Cache: Write through (= 100%ige Kopie)
    Performance Tweaks - Proxmox VE
    – CPU Core: 2

  • Maschine starten

  • Konsole: Installation durchführen
    – folgende Optionen wählen:
    — kein Update auf neuen Installer durchführen
    — Kreuz entfernen bei: Diese Festplatte als LVM Gruppe konfigurieren

  • Vor Reboot Disk Laufwerk aushängen

  • SSH in Ubuntu installieren
    – Shell: sudo apt-get install openssh-server

  • putty starten:
    – IP Adresse der virtuellen Maschine eintragen und starten - bei der Firtzbox: 192.168.178.Y

Ubuntu update (per putty)

  1. sudo apt-get update (vergleicht, wofür es neuere Versionen gibt)
  2. sudo apt-get upgrade (installiert neuere Versionen)

Ubuntu upgrade (per putty)

  1. sudo apt-get update
  2. sudo apt-get upgrade -y
  3. sudo apt-get dist-upgrade
  4. sudo do-release-upgrade
  • putty Befehe
    – Taskmanager: top
    – Wie ist der Speicherplatz auf der Festplatte belegt: df -h

Umbrel einrichten

Per putty:

  1. prüfen, ob die nötigen Pakete da sind: sudo nano /etc/apt/sources.list

https://wiki.ubuntuusers.de/sources.list/

  1. Docker Image herunterladen: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

  2. Updatepfad hinzufügen: echo „deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] Index of linux/ubuntu/ $(lsb_release -cs) stable“ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  3. sudo apt-get update

  4. Installation aller nötigen Pakete der Umrell Umgebung: sudo apt-get install apt-transport-https ca-certificates gnupg lsb-release fswatch jq rsync docker-ce docker-ce-cli containerd.io

  5. Kontrolle, ob Docker richtig installiert wurde: sudo docker run hello-world

  6. Konfigurationsumgebung anlegen: sudo curl -L „https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)“ -o /usr/local/bin/docker-compose

  7. Verzeichnisrechte anpassen (Ausführungsrecht geben): sudo chmod +x /usr/local/bin/docker-compose

  8. Test, ob Konfigurationsumgebung funktioniert: docker-compose --version

  9. Test, ob ich die Rechte habe (muss 1000 als Ergebnis bringen): id -u

  10. Umbrel herunterladen (und auf die aktuelle Version im Befehl korrigieren): curl -L https://github.com/getumbrel/umbrel/archive/v0.3.13.tar.gz | tar -xz –strip-components=1

  11. in welchem Pfad bin ich (erwartet: /home/testnode): pwd

  12. Umbrel Installation: sudo ./scripts/start

Ich hoffe, das hilft Dir, der ein ähnliches Problem hatte wie ich.

Viel Erfolg.

16 „Gefällt mir“

Der folgende Befehlt lädt die aktuellste Umbrel Version herunter:

curl https://api.github.com/repos/getumbrel/umbrel/releases/latest | grep „tarball_url“ | grep -Eo ‚https://[^"]*‘ | xargs curl -L | tar -xz --strip-components=1

1 „Gefällt mir“

Meine Fullnode hatte das letzte Update nicht überlebt. Damit stand ich vor der Frage, wie ich das System neu aufsetze und trotzdem alles erhalte. Nachfolgend die Antwort (als Installationsanleitung und damit nicht in der Reihenfolge der Schadensbehebung. Also am besten einmal alles Lesen um die Sicherungshinweise für das alte System zu finden.)

Danke @kieselbert für Deine Unterstützung :heart:

Ziel

Eine Bitcoin Full Node auf einem Intel Nuc betreiben.

Vorbereitung

  • Download Proxmox

https://www.proxmox.com/de/downloads/category/iso-images-pve

  • Download balenaEtcher
  • Download Ubuntu Server 18.04 LTS

https://ubuntu.com/download/server

Installation

Proxmox

  • Proxmox auf dem Intel Nuc intstallieren
  • Fritzbox

IP 192.168.178.2 (Unter Netzwerkverbindungen dem Intel Nuc eine fest IP zuweisen)

Gateway 192.168.178.1

24 oder 255.255.255.0 je nachdem in welchem Format er die haben will.

DNS 192.168.178.1

Zugriff auf Proxmox

https://192.168.178.2:8006/

LogIn: root

Pwd: xxx

Falls das Proxmox Update nicht funktioniert:

  • shell öffnen: nano /etc/apt/sources.list

ergänze: deb Index of /debian/pve/ buster pve-no-subscription

speichern: strg+x (danach Y und Enter)

  • shell: nano /etc/apt/sources.list.d/pve-enterprise.list

Zeile auskommentieren mit: #

Ubuntu Server auf Proxmox installieren

iso in ‚vmstore/template/iso‘ auf qnap ablegen (hochladen über Webfrontend)

Erstelle VM

Disk-Größe: 800GB

Cache: Write through

CPU Core: 2

https://pve.proxmox.com/wiki/Performance_Tweaks

Maschine starten

Konsole: Installation durchführen

kein Update auf neuen Installer durchführen

Kreuz entfernen bei: Diese Festplatte als LVM Gruppe konfigurieren

Vor Reboot Disk Laufwerk aushängen

doppelklick auf das Laufwerk > „Kein Medium verwenden“

SSH in Ubuntu installieren

Konsole: sudo apt-get install openssh-server

putty starten

IP Adresse der virtuellen Maschine eintragen und starten

Ubuntu update (per putty)

  1. sudo apt-get update (vergleicht, wofür es neuere Versionen gibt)

  2. sudo apt-get upgrade (installiert neuere Versionen)

Fullnode Scripte stoppen & starten

sudo ./scripts/stop

sudo ./scripts/start

Ubuntu neustarten

sudo reboot

Ubuntu upgrade (per putty)

Wie wird Ubuntu von LTS 18.04 zu LTS 20.04 upgegradet?

Details: https://www.cyberciti.biz/faq/how-to-upgrade-ubuntu-16-04-to-18-04-lts-using-terminal/

  1. sudo apt-get update

  2. sudo apt-get upgrade -y

  3. sudo apt-get dist-upgrade

  4. sudo do-release-upgrade

putty Befehle

Taskmanager: top

Wie ist der Speicherplatz auf der Festplatte belegt: df -h

LogIn in Umbuntu per Konsole

LognIn Name: fullnode

Pwd: xxx

Curl installieren:

sudo apt install curl

deinstallieren: sudo snap remove curl

Tree installieren (zeigt Verzeichnispfade für die Suche nach Dateien an)

sudo apt-get install tree

Umbrel Daten sichern / BackUp

Sollte das alte Umbrel System nicht mehr laufen, sind die Daten wie folgt zu sichern:

  1. Putty öffnen und auf Server einloggen

  2. Alle Verzeichnispfade auflisten lassen:

tree

  1. lnd Verzeichnis packen (auf Umbrel Server/Fullnode)

cd ~/app-data/lightning/data/

sudo tar cvzf lnd_backup.tar.gz lnd/

  1. WinCSP installieren (auf Windows Rechner)

WinSCP :: Official Site :: Download

  1. lnd_backup.tar.gz mit WinSCP auf Windows Rechner sichern

Umbrel einrichten

  1. Umbrel - Personal home server and OS for self-hosting → curl Befehl suchen

curl -L https://umbrel.sh | bash

  1. Umbrel Daten wieder herstellen, falls sie von einer Fullnode gesichert wurden

  2. Umbrel öffnen: http://192.168.178.XXX

Nutzer: yourName, PWD: xxx

Umbrel startet automatisch

Umbrel wiederherstellen

Die Wiederherstellung muss erfolgt sein, bevor die Bitcoin Blockchain synchronisiert ist.

  1. Putty öffnen und auf Server einloggen

  2. WinSCP öffnen und auf Server einloggen

  3. Verzeichnispfade der Neuinstallation anzeigen lassen: tree

  4. Dateien, die auszutauschen sind (aber vorher zu ende lesen):

lnd.conf

unter data/graph/mainnet die channel.db und wtclient.db (die nur wenn du watchtower eingebunden hattest)

unter data/chain/bitcoin/mainnet noch die wallet.db

  1. Dateirechte des neu installierten Systems vor dem Kopieren ansehen (Screenshot machen). Es gibt für jede Datei einen Besitzer, eine Gruppe und weitere Rechte. Diese müssen nach dem Einspielen das BackUps identisch sein.

Putty

cd ~/app-data/lightning/data/chain/bitcoin/mainnet (bekannt seit Punkt 3)

mit „ll“ oder „ls -lah“ Dateiliste anzeigen lassen

→ vorne sind diese Buchstaben und Striche. Erstes Zeichen d=Verzeichnis oder - dann ist es eine Datei

→ die nächsten 3 Zeichen sind die Rechte des Besitzers r=lesen, w=schreiben, x=ausführen

→ die nächsten 3 Zeichen sind die Rechte der Gruppe

→ die letzte 3 Zeichen die Rechte jedes anderen Users auf dem System

  1. fahr lnd runter, ersetze die Dateien und vergleiche dann ob diese Rechte und User und Gruppe gleich sind zu vorher

alle container inkl. id anzeigen: sudo docker ps

Container stoppen: sudo Docker stop ‚container id‘

Container starten: sudo Docker start ‚container id‘

Container restart: sudo Docker restart ‚container id‘

  1. mit dem Befehl „chown lnd:lnd wallet.db“ kannst du für die Datei owner und group ändern

  2. alle Dateien mit „macroon“ umbenennen (z.B. „_del“ an den Dateinamen anhängen), Verzeichnis:

/home/fullnode/umbrel/app-data/lightning/data/lnd/data/chain/bitcoin/mainnet

  1. tls.cert und tls.key ebenfalls umbenennen, Verzeichnis:

/home/fullnode/umbrel/app-data/lightning/data/lnd/

Umbrel manuell starten/stoppen

cd umbrel

sudo ./scripts/stop

sudo ./scripts/start

1 „Gefällt mir“