Guide: Auf Raspiblitz wechseln – ohne Channel zu schließen

Wer bereits seit längerer Zeit einen Lightning-Node betreibt, kam bestimmt schon mal in die Versuchung auf ein anderes Betriebssystem zu wechseln. Weil der Wechsel des Betriebssystems ein recht schwieriges Unterfangen darstellt, bleibt man dann doch letztendlich beim Altbewährten. Besonders wenn die Anzahl der Channels recht hoch ist, hat das Schließen und Neueröffnen dieser einen hohen Preis.

Ich habe mir vorgenommen, von Mynode auf Raspiblitz zu upgraden und dabei keine Channels schließen zu müssen. An sich funktioniert der Prozess für die meisten Lightning Nodes mit LND aber sehr ähnlich.

Dieser Artikel soll weniger ein Guide und eher eine Erfahrungsdokumentation sein. Aktuell gibt recht viele Unbekannte bei der Migration, weshalb ich absolut keine Verantwortung für eine erfolgreiche Durchführung übernehmen kann.

Um die Migration einfacher zu gestalten, arbeitet Rootzoll außerdem an einem automatisiertem Skript für Mynode.

Vorraussetzungen

Um verlässlich zu migrieren, braucht ihr:

  • Einen Computer, auf dem ein Linux-basiertes Betriebssystem läuft
  • Zugriff auf euren Router oder ein externes Display für den Raspberry-Pi
  • Bash-Kenntnisse

Vorbereitungen

Damit wir keinen Totalverlust aller Funds riskieren, speichern wir zunächst einmal das Static-Channel-Backup. Bei Mynode könnt ihr das unter mynode.local/lnd/ tun, indem ihr auf “Download Backup” klickt. Dieses Backup stellt sicher, dass ihr, selbst wenn ihr alle anderen Daten löscht, eure Funds in den Lightning-Channels recovern könnt. Dann werden jedoch alle Channels geschlossen.

Zusätzlich solltet ihr euch vergewissern, dass ihr eure Lightning-Wallet-Seed noch besitzt. Fahrt dann euren Node über Settings -> Shutdown herunter.

Festplatte

Weil Mynode und Raspiblitz die externe Festplatte jeweils unterschiedlich erkennen, muss die Ordnerstruktur und der Name der Festplatte geändert werden. Öffnet den File-Explorer mit:

sudo nautilus

Aktuell befindet sich die gesamte Ordnerstruktur im Ordner “mynode” im Root-Verzeichnis der Festplatte. Wir verschieben die Ordner:

/mynode/lnd
/mynode/bitcoin

in das Rootverzeichnis:

/lndNEU/
/bitcoin/

Den LND-Ordner benennt ihr zunächst in “lndNEU” um. Nun müssen wir noch den Namen der Festplatte zu “BLOCKCHAIN” ändern. Vor dem Auswerfen der Platte würde ich noch empfehlen, den LND-Ordner auf dem Computer zu speichern. Nur für alle Fälle, denn in diesem Ordner sind alle relevanten Informationen für euren Lightning Node gespeichert.

SD-Karte

Flasht jetzt, wie im Raspiblitz-Installations-Guide beschrieben, eure SD-Karte mit dem Raspiblitz-Image. Wer besonders sichergehen möchte, kann dafür eine zweite MicroSD-Karte benutzen. Nachdem ihr die SD-Karte geflasht habt, könnt ihr sie wieder in den Raspberry-Pi einstecken, die Festplatte anschließen und den Node starten.

Lokale IP Herausfinden

Um sich per SSH mit dem Raspiblitz zu verbinden, müssen wir die lokale IP-Adresse herausfinden. Am einfachsten ist das über ein Display. Wer kein Display bzw. keinen Display-Adapter zur Hand hat, kann sich auch im eigenen Router einloggen und nach den Geräten im Netzwerk suchen. Bei einer Fritzbox funktioniert das über “http://fritz.box/” , bei einem Speedport über “http://speed.port/” .

Raspiblitz Setup

Nachdem ihr euch per SSH mit den Userdaten:

User: admin
Passwort: raspiblitz

angemeldet habt, durchlauft zunächst einmal ganz normal das Setup vom Raspiblitz. Der Node sollte ohne Probleme eure Blockchain-Daten erkennen und euch fragen ob ihr dieser vorhandenen Version der Blockchain trauen wollt. Das müsst ihr bestätigen. Während des Prozesses müsst ihr 4 neue Passwörter vergeben. Notiert euch diese. Durchlauft auch das Lightning-Setup ganz normal.

Nachdem das Setup abgeschlossen ist und der Node komplett einsatzbereit ist, solltet ihr noch einmal sicher gehen, dass das auch alles funktioniert. Wählt im Menu “INFO” und schaut, ob Bitcoin und Lightning funktionieren und Peers finden.

LND Ordner wechseln

Fahrt nun euren Node wieder über das Menu herunter und schließt die Festplatte wieder an den Linux-Computer an. Öffnet die Festplatte wieder über:

sudo nautlius

Nun befinden sich im Root-Verzeichnis der Festplatte ein neuer Order “lnd”. Wir benennen diesen in “lndALT” um und geben dem Order “lndNEU” den Namen “lnd”. Damit ersetzen wir die LND-Dateien des neuen Nodes mit denen des alten Nodes.

Werft die Festplatte aus und schließt sie wieder am Node an. Startet den Node wieder.

Config-Files

Zunächst einmal müssen wir die Config-Files von LND und Bitcoin ändern. Vom Raspiblitz-Menü aus könnt ihr im untersten Menü-Punkt ins Terminal wechseln. Wechselt also zum Bitcoin-User mit:

sudo su bitcoin

Und bearbeitet dann zunächst lnd.conf mit:

nano /mnt/hdd/lnd/lnd.conf

und ersetzt sie mit:

 [Application Options]
 maxpendingchannels=10
 alias=BTC21de
 color=#68F442
 listen=0.0.0.0:9735
 rpclisten=0.0.0.0:10009
 restlisten=0.0.0.0:8080
 accept-keysend=true
 nat=false
 debuglevel=debug
 gc-canceled-invoices-on-startup=true
 gc-canceled-invoices-on-the-fly=true
 ignore-historical-gossip-filters=1
 sync-freelist=true
 stagger-initial-reconnect=true
 tlsautorefresh=1
 tlsdisableautofill=1
 [Bitcoin]
 bitcoin.active=1
 bitcoin.node=bitcoind
 bitcoin.mainnet=1
 enable either testnet or mainnet
 [Bitcoind]
 bitcoind.estimatemode=ECONOMICAL
 bitcoind.rpcuser=raspibolt
 bitcoind.rpcpass=PASSWORT
 bitcoind.rpchost=127.0.0.1
 bitcoind.zmqpubrawblock=tcp://:28332 
 bitcoind.zmqpubrawtx=tcp://:28333
 [autopilot]
 autopilot.active=1
 autopilot.maxchannels=5
 autopilot.allocation=0.6
 [Wtclient]
 wtclient.active=1
 [Application Options]
 nat=false
 [Tor]
 tor.active=true
 tor.v3=true
 tor.streamisolation=true

Ersetzt “PASSWORT” mit einem von euch gewähltem Passwort.

Öffnet dann die Bitcoin-Konfiguration mit:

nano /mnt/hdd/bitcoin/bitcoin.conf

und ersetzt sie mit

#bitcoind configuration
#mainnet/testnet
 testnet=0
#Bitcoind options
 server=1
 daemon=1
 txindex=1
 disablewallet=0
 main.wallet=wallet.dat
 datadir=/mnt/hdd/bitcoin
#Connection settings
 rpcuser=raspibolt
 rpcpassword=PASSWORT
 rpcport=8332
 rpcbind=127.0.0.1:8332
 zmqpubrawblock=tcp://127.0.0.1:28332
 zmqpubrawtx=tcp://127.0.0.1:28333
#Raspberry Pi optimizations
 dbcache=128
 maxorphantx=10
 maxmempool=64
 maxconnections=40
 maxuploadtarget=5000
#Tor
 onlynet=onion
 proxy=127.0.0.1:9050
 main.bind=127.0.0.1
 test.bind=127.0.0.1
 main.addnode=fno4aakpl6sg6y47.onion
 main.addnode=toguvy5upyuctudx.onion
 main.addnode=ndndword5lpb7eex.onion
 main.addnode=6m2iqgnqjxh7ulyk.onion
 main.addnode=5tuxetn7tar3q5kp.onion
 dnsseed=0
 dns=0
#for Bisq
 peerbloomfilters=1

Auch hier müsst ihr für “PASSWORT” das zuvor in der lnd.conf gewählte Passwort eintragen.

Lightning Passwort

Mynode erzeugt beim Erstellen des Lightning Wallets ein zufälliges Passwort. Mit diesem Passwort ist dieses Wallet verschlüsselt. Um dieses herauszufinden, benutzt folgenden Befehl:

sudo cat /mnt/hdd/mynode/settings/.lndpw

Dieses Passwort wird bei Raspiblitz oft als “PASSWORD C” bezeichnet. In den Einstellungen von Raspiblitz könnt ihr entweder LN-Autounlock aktivieren, oder nach jedem Neustart das Wallet über:

lncli unlock

entsperren. Danach sollte euer Wallet ganz normal im Raspiblitz-Infoscreen erscheinen und alle Peers erkannt werden. Manchmal kann es eine Zeit dauern, bis alle Peers wiedergefunden werden. Bei mir hat es sogar 1-2 Tage gedauert, bis ich zu allen Peers wieder eine stabile Verbindung hatte.

Permissions

Nun wird es etwas komplexer. Je nach Setup und Ausgangssituation müssen hier unterschiedliche Dinge getan werden. Dadurch das Mynode andere User benutzt als Raspiblitz, entstehen Unterschiede in den Zugriffsrechten der kopierten Dateien.

Zunächst einmal ändern wir den Owner und den Groupowner des LND-Ordners:

sudo chown -R bitcoin:bitcoin /mnt/hdd/lnd

Außerdem müsst ihr dem Groupowner Lese-, Schreib- und Ausführungsrechte geben:

sudo chmod -R g=rwx mnt/hdd/lnd

Userrollen

Installiert ihr zusätzliche Services wie RTL, Thunderhub oder BOS, werden dafür jeweils eigene User erstellt. Um diesen Usern die gleichen Rechte wie dem “Bitcoin”-User zu geben benutzt folgenden Befehl als “admin”-User:

sudo usermod -a -G bitcoin thunderhub

startet dann den Service neu:

sudo systemctl restart thunderhub

Achtung: Die Veränderung der Userrollen kann zu Sicherheitsproblemen führen. Ich habe meine Probleme auf diese Art und Weise gelöst, wobei es dafür sicherlich bessere Wege gibt.

Debugging

Solltet ihr Probleme haben, solltet ihr zunächst

debug

verwenden und nach einem Fehler suchen. Details zu Services wie z.B. LND findest du über:

sudo journalctl -fu lnd.service

Falls ihr Probleme mit Tor habt, müsst ihr die lnd.conf verändern.

Im Raspiblitz-Telegram findet ihr immer Hilfe. Ich kenne wenige Communities, die so hilfsbereit sind.

Raspiblitz

Schlusswort

Nun solltet ihr einen guten Überblick darüber bekommen haben, welche Schritte zu durchlaufen sind, um das OS eures Nodes zu wechseln. Alle wichtigen Daten zum Lightning-Node sind im LND-Ordner gespeichert und müssen an das entsprechende OS angepasst werden.

Wie zuvor angesprochen, ist jeder Node anders. Was bei mir funktioniert hat, muss nicht unbedingt bei euch funktionieren. Wenn ihr es geschafft habt, erfolgreich auf Raspiblitz zu wechseln, würde ich mich freuen, wenn ihr einen Kommentar schreibt und ggf. eure Tipps hier teilt.

Spende uns:

Schreibe einen Kommentar