Redundanz für Lightning Node

Huhu alle,

ich habe mich bis jetzt geweigert eine Lightning Node aufzusetzen, würde das insgesammt aber gerne tun.

Was mich bis jetzt davon abgehalten hat ist die Unsicherheit der eigenen Coins bei einem Ausfall.
Im Bitcoin Netzwerk ist dies kein Problem, die eigenen Transaktionen werden von Millionen anderen Nodes gespeichert. Wenn die eigene Node mal ausfällt, auch mal länger für einen Tag oder eine Woche, dann syncronisiert man die letzten Blöcke und gut ist.

Bei Lightning stehen die Werte im eigenen Channel bei einem Ausfall auf der Kippe. Man muss im Ausfall-Fall auf einer anderen Node/Person/Entität vertrauen, dass sie keinen Unsinn mit den Channels macht.

Natürlich kann man das Vertrauen weiter auslagern indem man sich einen Watchtower kauft, der im Notfall die Channels auch überwacht. Aber dann muss man wieder einer dritten Partei vertrauen. Und den Watchtower auf der gleichen Node laufen zu lassen macht auch nur begrenzt Sinn. Fällt die Node aus, dann ist auch der Watchtower weg.

Man könnte einen eigenen Whatchtower irgendwo in einer Cloud betreiben, oder zumindest irgendwo an einem anderen Standort (Freunde, Eltern, Uni/Betrieb usw.) was die Ausfallsicherheit erhöhen würde. Allerdings sichert das nur die eigenen Werte in den Channels, die Channels würden bei einem Ausfall trotsdem down gehen auch wenn ein Watchtower den Channelpartner weiter überwacht.

Deswegen die Frage: Gibt es redundante Lightning Nodes? Also dass man zwei oder mehr physische Computer hat, auf denen die gleiche Lighningnode läuft, sodass eine (oder n-1) der im Verbund aggierenden Nodes ausfallen kann ohne dass der Service, also all die Lighningchannels der Node unerreichbar werden?

Soweit ich das vor einem halbem Jahr recherchiert habe gab es noch keine redundante Nodes. Hat sich das inzwischen geändert? Oder hab ich nur nicht die richtigen Stellen im Internet gefunden?

lg aus Berlin

2 „Gefällt mir“

Redundanz gibt es ja in verschiedenen Ausprägungen. Wenn es um die Hochverfügbarkeit der Node geht wird es technisch schon ziemlich anspruchsvoll. Die Frage ist ja ob man dafür viel Geld ausgeben will oder ob es ok ist das die Node bei einem defekt mal 1-2 Tage down ist und man auf neuer Hardware weitermacht.
Letztendlich geht’s bei LND ja um die Channel.db die man in aktuellster Form braucht um die defekte Node auf neuer Hardware weiterbetreiben zu können. Entweder schreibt man die Daten live weg oder sorgt mit Redundanz des Speichers dafür das zumindest ein Hardwaredefekt nicht zu Inkonsistenz der Daten führt.

Wie du es beschreibst, willst du die Nodes quasi clustern. Das wäre auch denkbar wenn sich die Nodes einen Speicher teilen (SAN, anderweitiger Share). Die Failovermechanismen müssen aber zu 100% sicherstellen das niemals beide Nodes gleichzeitig aktiv werden. Das wäre tödlich für die Node.

4 „Gefällt mir“

Würde es reichen das ein vorgeschalteter Load Balancer Transaktionen auf beide Node Geräte verteilt?

Das würde in dem Setup keinen Sinn ergeben. Wäre es 2 identische Nodes hättest du nach kürzester Zeit den maximalen Schaden durch PenalyCloses da Transaktionen die CloneA verarbeitet auf CloneB nicht bekannt sind. Ein gemeinsamer Share, so das beide Nodes sich eine channel.db teilen würde vermutlich instant zu einer korrupten DB führen.

Was eher funktionieren kann wäre (sowas können LoadBalancer auch) ein Active/Standby Setup. Der Share schwenkt dann zu einer identisch konfigurierten BackupNode die dann aktiv wird.

1 „Gefällt mir“

und ein Load Balancer währe auch wieder eine einzelne Stelle, die ausfallen könnte, oder?
Das heist, man müsste eine Art CDN verwenden :thinking:

Es gibt kein Load-Balancing-System für Lightning, die Frage stellt sich nicht.

Für maximale Verfügbarkeit, kannst du natürlich 2 oder mehr getrennte Nodes betreiben „DasPie1“, „DasPie2“ usw. die aber unabhängig voneinander agieren.

Aber dein Ziel war ja nicht Verfügbarkeit sondern Sicherheit deiner Sats, da ist LoadBalancing, wie @kieselbert erklärt hat eine schlechte Idee.

Das Argument find ich Komisch: Wenn meine Node ausfällt ist die Sicherheit meiner Sats definitiv gefärdet. Und das kann entweder: Hardwarefehler, Softwarefehler oder Internetausfall einschließen. Redundanz ist daher meiner Meinung nach wichtig.

Es ist vielleicht dennoch gut wenn wir die Zielstellung im Auge behalten. Explizites Clustering von Nodes gibt es derzeit nicht, normale Failover-Mechanismen müsste man ganz genau verstehen und anpassen. Es ist mit Sicherheit günstiger einen Watchdog auf einem getrennten System zu betreiben um die Sats in den Channels abzusichern (wenn die eigene Node defekt ist). Ansonsten sollte man natürlich über das SCB verfügen, falls die Reparatur der Node fehlschlägt.

Wenn man frisch mit einer Node startet kann man z.B. postgres als Datenbank konfigurieren. Diese Daten kann man live zu einer zweiten Node senden auf der LND nicht läuft. Die wäre dann quasi Standby bereit für den Betrieb wenn die primäre Node ausfällt. Aber solche Setups gibts nicht fertig, sondern erfordert das man sich sehr gut auskennt.

Warum ist die Sicherheit deiner Sats gefährdet?

  • Um Sats aus Channels wiederherzustellen, speicherst du die SCB-Datei regelmäßig auf einem externen Medium.
  • Sollte es im Falle einer Downtime zu einem Remote Force Close mit veränderten Channel-Balance-Ständen kommen, würde ein Watchtower auf einem schlanken VPS aufgesetzt für wenig Fiat im Monat ausreichen.

Soll es wirklich ein advanced setup sein, dann schau dir die eclair-Implementierung von Acinq an: eclair/Cluster.md at master · ACINQ/eclair · GitHub

Ich hatte schon Fälle wo das Internet mehrere Tage im Haus nicht funktioniert hat und auf einen Ersatz Modem musste ich schon mal 1 Woche warten. So was ist selten aber es passiert.
Eine Möglichkeit um das zu überbrücken wäre vielleicht ein Router das mit einer SIM Karte funktioniert.

Oder man benutzt Starlink und zahlt einmalig ca. 500€ und monatlich 80€ für eine 50-200 Mbit/s Leitung. Gar nicht übertrieben … :smiley:

Naja, was ist, wenn es eine Transaktion gab und bevor diese gesichert ist brennt die Node-Festplatte durch?

Ja ein Whatchtower kann hier helfen Schadensbegrenzung zu machen, aber es wäre doch nützlicher gleich eine andere Node zu haben, die redundant einspringt.

Allerdings bin ich mir noch nicht ganz sicher ob das Konzeptionell überhaupt möglich ist. Immerhin ist Lingtning ein Peer to Peer austausch. Also wenn mein Gegenüber eine Nachricht sendet, dann muss es immer erstmal irgendwo eine einzelne Instanz geben, die die Nachricht aufnimmt und gegebenenfalls verteilt. Diese Instanz kann versagen und somit den Channel gefärden.

Einzige Lösung dazu, die mir einfällt wäre, wenn man schon dem Channelpartner sagen kann, dass er Transaktionen nicht nur an eine Node senden soll sondern an x eingestellte Nodes. Das würde bedeuten, dass man zusammen mit seinem Channelpartner einen Cluster aufmacht der sich automatisch synchronisieren muss unter der Nebenbedingung, dass der Cluster in zwei feindliche Lager sich spalten kann. :thinking:

What?
Wenn du dir so viele Sorgen machst, dann würde ich abraten, eine LN Node zu betreiben.
Ich betreibe seit über einem Jahr eine Node mit

  • Raid1-Verbund von zwei SSDs für die Daten/Datenbanken
  • USV gegen Stromausfälle
  • SCB remote gesichert, um die Funds wiederherstellen zu können

und das reicht. Wenn die Node down geht, dann geht sie down. Wenn ein HTLC in das Timeout läuft, force closed die Node sowieso den Channel und holt das Payment on-chain zurück. Dass es eine Transaktion geben soll, die nicht gesichert ist, … schlägt eher der Blitz ein.

2 „Gefällt mir“

Ich habe gelesen auch ein CDN fiel schon mal für mindestens 1 Std. aus. Es gibt also keine absolute Garantie. Bei den ganzen Redundanz Systemen geht es eigentlich nur darum die Wahrscheinlichkeit für Ausfälle zu minieren.
Und man muss schauen was man sich erlauben darf und was nicht. Systeme wo im Minutentakt massenweise Zugriffe stattfinden sind schon 15 Minuten Ausfallzeit sehr unschön, während das bei einem durchschnittlichen Lightning Node nicht so dramatisch wäre.

So was wie ein Load Balancer kann versagen aber es wäre doch schon ausreichend wenn bei einem Ausfall du automatisch benachrichtigt wirst und dann greifst du so bald wie möglich auf dein Ersatz Gerät und wechselst es bzw. behebst den Fehler.
Da muss ja schon sehr viel über den Node geroutet werden dass so kurze Ausfallzeiten schmerzen.

1 „Gefällt mir“

Ja, vielleicht denke ich einfach in zu großen Maßstäben. Wie gesagt noch habe ich meine Node nicht um Lightning erweitert weil ich diese ausfallbedenken hatte. Dass heisst aber auch, dass ich noch keine Erfahrung mit lightning habe und mir vielleicht unbegründet zu viele sorgen um diese Probleme mache.

Es gibt USV Geräte schon ab 50€. Sind die günstigeren Modelle gut genug damit man eine Node einfach sicher herunterfahren kann?

Ich experimentiere aktuell mit Lightning herum und habe nur ein paar Kanäle mit winziger Liquidität.
Zum öffnen eines Kanals brauchst du normalerweise mindestens 20k Sats. Du kannst also erstmal mit unbedeutenden Summen erste Erfahrungen sammeln. Bevor du Kanäle mit vernünftiger Liquidität öffnest.

Kann ich nicht sagen. Je nach Strombedarf und Einsatzzweck gibt es verschiedenste Varianten. Hauptsache ist, dass sie über USB mit der Node kommunizieren kann und im Backupfall einen graceful shutdown der Prozesse initiiert, sodass kein Datenverlust eintritt.

Jab, genauso hab ich es auch, mein ältester Channel ist über 2 Jahre alt, das reicht als „BasisAusstattung“ :slight_smile:.

1 „Gefällt mir“