Raspiblitz SCB Backup auf einer Nextcloud
Ein RaspiBlitz SCB Backup ist die Lebensversicherung eurer Lightning-Kanäle: Fällt die Node aus, holt ihr mit der Datei channel.backup und eurer Seedphrase die Mittel aus den Kanälen zurück. Nur liegt diese Datei standardmässig genau dort, wo auch die Node steht — und ein Backup, das mit dem Gerät zusammen brennt, ist keins. Der RaspiBlitz bringt deshalb eine Funktion mit, die dieselbe Datei zusätzlich in eine Nextcloud eurer Wahl schiebt. Wie ihr sie einschaltet, was sie wirklich sichert und welchen Preis sie hat, steht hier.

Was das RaspiBlitz SCB Backup sichert — und was nicht
SCB steht für Static Channel Backup. Die Datei channel.backup enthält laut der Wiederherstellungsdokumentation von LND Einträge für alle derzeit offenen Kanäle und wird jedes Mal neu geschrieben, wenn ein Kanal geöffnet oder geschlossen wird. Verschlüsselt ist sie mit einem Schlüssel, der aus eurer Seedphrase abgeleitet wird — ohne die Seed ist die Datei für Dritte wertlos. Genau deshalb ist es unbedenklich, sie in eine Cloud zu legen.
Wichtig ist, was beim Wiederherstellen tatsächlich passiert. LND startet mit der Datei, verbindet sich zu euren früheren Peers, und diese erkennen über das DLP-Protokoll, dass ihr Daten verloren habt. Die Gegenseite schliesst den Kanal daraufhin zwangsweise und schickt euch das Schlüsselmaterial, mit dem ihr an euer Guthaben kommt. Ihr bekommt also eure Mittel zurück, nicht eure Kanäle. Wer nach einem Ausfall weitermachen will, baut die Kanäle neu auf — wie das geht, steht im Beitrag zum Finden von Peers und Eröffnen von Kanälen. Wer gar keine eigene Node betreibt, hat diese Aufgabe nicht: Bei Wallets wie der Phoenix Wallet kümmert sich die App selbst um die Kanaldaten.
Zwei Grenzen nennt die LND-Dokumentation ausdrücklich. Erstens holt ein SCB nur Mittel zurück, die in den regulären Ausgängen des Kanals liegen, nicht solche, die gerade in einer schwebenden Zahlung stecken. Zweitens ist eine veraltete Sicherungsdatei gefährlich: Wurde der Kanal seit dem Backup weiterbenutzt, kann die Gegenseite oder ein Watchtower eine Straftransaktion auslösen und das gesamte Kanalguthaben einziehen. Ein SCB ist damit kein Backup im Sinne von „irgendeine Kopie genügt“, sondern nur die jeweils jüngste Fassung taugt etwas. Das ist der eigentliche Grund, warum sich diese Datei automatisch nachführen muss.
Warum drei Kopien im selben Gehäuse keine drei Kopien sind
Der RaspiBlitz sichert die Datei von sich aus mehrfach, und das ist wenig bekannt. In der Hintergrundschleife des Systems vergleicht er laufend die Prüfsumme des Originals mit der seiner Kopie. Sobald sich die Datei ändert, legt er sie unter /home/admin/backups/scb/channel.backup ab, zusätzlich eine zweite Kopie mit Zeitstempel im Dateinamen, und ausserdem eine auf der Bootpartition unter /boot/firmware/channel.backup. Nachlesen lässt sich das in home.admin/_background.sh im Projekt-Repository.
Das klingt nach vielen Kopien und ist trotzdem eine einzige, was Katastrophen angeht. Alle drei liegen im selben Gehäuse auf demselben Tisch. Ein Festplattenausfall wird davon aufgefangen, ein Brand, ein Wasserschaden oder ein Einbruch nicht. Genau das meint die 3-2-1-Regel, wenn sie eine Kopie ausser Haus verlangt: Es geht nicht um die Anzahl, sondern um die Trennung. Die Nextcloud-Funktion ist die einzige der vier Kopien, die diese Trennung herstellt — und sie ist die einzige, die ihr von Hand einschalten müsst.

Vorbereitung: ein eigenes Passwort für die Node
Ihr braucht eine Nextcloud-Instanz eures Vertrauens. Wir stellen unseren Lesern 5 GB Nextcloud-Speicher gratis zur Verfügung; registriert euch auf der Webseite, und die Zugangsdaten aus der Registrierung sind zugleich eure Nextcloud-Logindaten. Jede andere Instanz tut es genauso, die Funktion spricht schlicht WebDAV.
Vor der Einrichtung ein Punkt, den die Anleitung früher verschwiegen hat und der wichtiger ist als jeder Klick danach: Der RaspiBlitz speichert die Zugangsdaten im Klartext. Das Einrichtungsskript sagt das bei der Passwortabfrage selbst — „will get stored in cleartext on raspiblitz“ — und legt Server, Benutzername und Passwort anschliessend in der Konfigurationsdatei des Systems ab. Wer dort sein Nextcloud-Kontopasswort einträgt, gibt jedem, der irgendwann Lesezugriff auf die Node bekommt, das gesamte Konto.
Legt deshalb in der Nextcloud ein eigenes App-Passwort an und tragt dieses ein. Ihr findet die Funktion in den persönlichen Einstellungen unter Sicherheit, bei den Geräten und Sitzungen. Ein App-Passwort lässt sich einzeln widerrufen, ohne dass ihr euer Konto anfassen müsst. Wenn ihr Zwei-Faktor-Authentisierung aktiviert habt, führt ohnehin kein Weg daran vorbei: Ein Zugriff über WebDAV mit dem normalen Kontopasswort scheitert dann, wie ein offener Fehlerbericht im Nextcloud-Projekt beschreibt.
Das Backup in der Nextcloud einrichten
Stellt eine SSH-Verbindung zu eurem RaspiBlitz her. Öffnet das Konsolenmenü mit menu und geht in die SETTINGS:

Steuert auf den Eintrag SCB/Emergency-Backup on Nextcloud, markiert ihn mit der Leertaste und bestätigt unten mit OK:

Anschliessend öffnet sich ein weiteres Fenster. Gebt die URL eurer Nextcloud-Instanz ein, auf der die Datei gesichert werden soll:

https://cloud.yourdevice.ch wäre die URL unserer Nextcloud-Instanz. Bestätigt mit OK. In zwei weiteren Fenstern werdet ihr nach Username und Passwort gefragt — hier gehört das App-Passwort hinein, nicht euer Kontopasswort. Nach der Eingabe meldet das System, ob der erste Upload geklappt hat:

Ein Hinweis zu den fünf Bildschirmfotos in diesem Abschnitt: Sie stammen aus dem Mai 2024. Der Menüpfad und die Abfragen sind seither unverändert — der Eintrag steht bis heute im Einstellungsmenü des Projekts, nachzulesen in 00settingsMenuBasics.sh —, Farben und Randbeschriftungen können in eurer Version leicht abweichen.
Auf der Nextcloud nachsehen
Loggt euch in eure Nextcloud ein und geht oben in der Arbeitsleiste auf Dateien. Angelegt wird ein Ordner mit dem Namen raspiblitz, darin liegt die channel.backup:


Die channel.backup selbst bleibt wenige Kilobyte gross und wächst kaum, solange ihr ungefähr gleich viele Kanäle betreibt. Der Ordner wird trotzdem voller: Der RaspiBlitz lädt neben der festen Datei auch die datierte Kopie jeder Änderung hoch. Wer viel öffnet und schliesst, sammelt dort mit der Zeit eine ganze Reihe von Ständen ein. Das ist kein Fehler, sondern gewollt — nur solltet ihr wissen, dass ihr dort irgendwann aufräumen dürft, und dass die jüngste Datei die einzige ist, die ihr im Ernstfall benutzen dürft.
Von Hand prüfen, ob der Upload läuft
Ihr müsst nicht auf den nächsten Kanalschluss warten, um zu sehen, ob die Verbindung steht. Das Skript, das die Funktion ausführt, lässt sich direkt aufrufen:
sudo /home/admin/config.scripts/nextcloud.upload.sh \
upload /home/admin/backups/scb/channel.backup
Bei Erfolg antwortet es mit File /home/admin/backups/scb/channel.backup has been uploaded. Schlägt es fehl, kommt err='File upload failed' zurück; fehlen die hinterlegten Zugangsdaten, meldet es err='Nextcloud credentials are missing'. Die drei Meldungen stehen so in config.scripts/nextcloud.upload.sh. Ein fehlgeschlagener Upload ist fast immer eine falsche Adresse oder ein Passwort, das die Nextcloud nicht annimmt — siehe den Abschnitt zum App-Passwort weiter oben.
Abschalten lässt sich die Funktion über denselben Menüeintrag; das Skript kennt dafür den Parameter off, der die hinterlegten Zugangsdaten wieder entfernt. Das ist der Weg, wenn ihr eure Node verkauft oder weitergebt — sonst wandert das Passwort mit.
Was diese Sicherung leistet — und was nicht
- Sie bringt eure Kanaldaten ausser Haus. Das ist die eine Trennung, die alle lokalen Kopien nicht schaffen.
- Sie ersetzt kein Seed-Backup. Ohne eure Seedphrase ist die Datei unbrauchbar, und die gehört nicht in dieselbe Cloud.
- Sie sichert die Kanäle von LND. Hochgeladen wird laut Menüskript die
channel.backupaus dem LND-Datenverzeichnis; wer den RaspiBlitz mit Core Lightning betreibt, muss sich um seine Sicherung getrennt kümmern. - Sie kostet ein Passwort im Klartext auf der Node. Mit einem App-Passwort ist der Schaden begrenzt, mit dem Kontopasswort nicht.
- Sie ist kein Ersatz für ein Systembackup. Was ihr sonst noch sichern solltet, steht im Backup- und Restore-Leitfaden für Lightning-Fullnodes, und wie ihr die ganze Node auf neue Hardware hebt, im Beitrag zum Umzug auf neue Hardware.
Wer seine Kanalzustände zusätzlich in einer Oberfläche im Blick behalten will, findet im Beitrag zu Thunderhub und Amboss den zweiten Weg zur Sicherung der Kanaldaten. Und wenn ihr euch fragt, ob eure Version die hier beschriebene Funktion überhaupt hat: Sie steckt seit Jahren im Einstellungsmenü und ist auch in der aktuellen Fassung 1.12.1 vorhanden. Wie ihr aktualisiert, steht in der Anleitung zum RaspiBlitz-Update.
Fazit: Doppelt genäht hält nur, wenn der zweite Faden woanders liegt
Die Nextcloud-Funktion des RaspiBlitz ist in zwei Minuten eingeschaltet und erledigt danach das, was kein lokales Backup kann: Sie bringt die jüngste channel.backup aus dem Haus, automatisch, bei jeder Kanaländerung. Für eine Node, die echtes Geld hält, ist das keine Kür. Der Preis ist ein Zugangsdatensatz im Klartext auf dem Gerät — tragbar, solange dort ein widerrufbares App-Passwort steht und nicht der Generalschlüssel zu eurer Cloud. Und weil die Datei mit einem aus eurer Seed abgeleiteten Schlüssel verschlüsselt ist, gilt weiterhin: Die Cloud sieht davon nichts — solange die Seed nicht danebenliegt.
Schaut gerne hier vorbei für den kompletten Backup & Restore Leitfaden für Fullnodes:
Quellen und weiterführende Links
- lnd/docs/recovery.md — Verschlüsselung der SCB-Datei, DLP-Protokoll, Grenzen der Wiederherstellung und die Warnung vor veralteten Sicherungen
- raspiblitz/home.admin/config.scripts/nextcloud.upload.sh — WebDAV-Zielpfad, Ordnername, Parameter und Meldungen des Skripts
- raspiblitz/home.admin/00settingsMenuBasics.sh — der Menüeintrag und der Pfad der hochgeladenen Datei
- raspiblitz/home.admin/_background.sh — Prüfsummenvergleich, lokale Kopien und der automatische Upload
- raspiblitz/CHANGES.md — Versionsstände des Projekts
- nextcloud/server, Issue 59085 — WebDAV-Zugriff bei aktivierter Zwei-Faktor-Authentisierung braucht ein App-Passwort
- docs.raspiblitz.org — die offizielle Projektdokumentation