Raspiblitz Lightning LND via clearnet im Hybrid Mode
Der Betrieb von Raspiblitz Lightning LND via Clearnet im Hybrid Mode bietet eine schnelle, kostengünstige Lösung für Bitcoin-Transaktionen und gewinnt in einer Welt, die zunehmend von Bitcoin und dezentralen Finanzsystemen geprägt ist, immer mehr an Bedeutung. Für viele Enthusiasten und Entwickler ist der Raspberry Pi mit Raspiblitz eine ideale Plattform, um mit dieser Technologie zu experimentieren und praktische Erfahrungen zu sammeln.
Aber warum sollte man Lightning auf einem Raspberry Pi via Clearnet konfigurieren? Die Antwort liegt in der besseren Verfügbarkeit und der Latenz! Das Clearnet, im Gegensatz zum Tor-Netzwerk, bietet geringere Latenzen und eine höhere Verfügbarkeit, was besonders für zeitkritische HTCL-Transaktionen im Lightning Netzwerk von Vorteil ist. Für Node-Runner die eine hohe Anzahl Kanäle betreiben, und die Node zuverlässig betreiben wollen, ist eine Clearnet Anbindung fast schon unabdingbar.
In diesem Artikel zeigen wir euch Schritt für Schritt, wie ihr euren Raspberry Pi zu einem leistungsfähigen Lightning-Node konfiguriert, die über das Clearnet erreichbar ist. Wir gehen dabei auf die nötige Hardware, Software und Konfigurationen ein und erläutern die Vorteile und potenziellen Herausforderungen dieses Setups. So seid ihr bestens gerüstet, um die Vorzüge des Lightning Networks voll auszuschöpfen und dein Wissen in der Welt von Bitcoin Lightning zu erweitern.
Achtung: Clearnet und die Privacy
Das Betreiben eines Nodes hinter dem Tor-Netzwerk bietet viele Vorteile (Anonymität, Sicherheit und Benutzerfreundlichkeit) und ist daher derzeit die am meisten empfohlene Methode kleinere Nodes. Für Nodes, die eine hohe Anzahl verbundener Kanäle aufrechterhalten und/oder hohe Verfügbarkeitsanforderungen haben, kann Tor jedoch hinderlich sein. LND ermöglicht auch das Betreiben von Clearnet-Nodes, die das Tor-Netzwerk nicht nutzen, sondern direkt mit Peers verbunden sind. Dies erfordert, dass Node-Administratoren sich um die Sicherheitsrichtlinien des zugrunde liegenden Systems kümmern. Mindestens ein Port (Standard: 9735) muss weitergeleitet und für Remotepeers zugänglich gemacht werden. Es geht nicht nur um Sicherheit, sondern auch um das Risiko, durch die Clearnet-IP grob lokalisiert zu werden. Verwendet den Hybridmodus nur, wenn Privacy keine so grosse Rolle spielt sondern die Performance, Erreichbarkeit und Stabilität der Verbindung im Vordergrund steht!
Als Alternative zur eigenen IP freigeben, stellen wir euch am Ende des Berichts noch kurz den Service Tunnelsats vor! Damit habt ihr Privacy und Clearnet Vorteile kombiniert, kostet aber etwas Gebühren!
Vorbereitungen für den Raspiblitz Hybrid Mode
Um einen Lightning Node im Clearnet zu betreiben, müssen einige grundlegende Voraussetzungen für das Port Forwarding erfüllt werden:
- Zugriff auf den Router: Ihr musst Zugang zu eurem Router haben, um die Einstellungen für das Port Forwarding zu konfigurieren. Der Router sollte UPnP unterstützen für den NAT Modus.
- Offener Port: Der Standardport für Lightning Nodes ist 9735. Dieser Port muss im Router für die IP-Adresse deines Raspberry Pi weitergeleitet werden.
- Fixe IP Adresse des Raspiblitzes: der Raspiblitz benötigt eine fixe IP Adresse in eurem lokalen Netzwerk, ansonsten funktioniert das Portfowarding nicht mehr, sollte der Raspiblitz eine andere lokale IP Adresse bekommen.
Wie ihr ein Portforwarding einrichtet, erfahrt ihr in diesem Artikel.
Fixe IP Adresse für den Raspiblitz auf eurem Router einrichten
- Netzwerk-Einstellungen: sucht im Menü eures Routers nach den Netzwerkeinstellungen oder DHCP-Einstellungen. Dies kann je nach Router-Modell unterschiedlich sein.
- DHCP-Reservierung oder feste IP-Zuweisung: Findet die Option für "DHCP-Reservierung", "Statische IP", "IP-Adressen-Zuweisung" oder ähnliches. Wählt die Option, um eine neue Reservierung hinzuzufügen.
- Gerät auswählen: Wählt den Rasipblitz aus, dem ihr die feste IP-Adresse zuweisen möchtet. Dies wird oft durch die MAC-Adresse des Geräts identifiziert, die ihr in den Netzwerkeinstellungen des Geräts finden könnt. (
$ sudo ip addr
) - IP-Adresse festlegen: Gebt die gewünschte feste IP-Adresse ein, die im gleichen Subnetz wie euer Router liegen sollte. Speichert die Einstellungen.
- Raspiblitz neu starten: Startet den Raspiblitz neu mit
sudo systemctl reboot
, damit er die neue IP-Adresse vom Router erhält.
Optional: DynDNS Adresse
Mit einer DynDNS Adresse könnt ihr eure Node zuverlässig auf die wechselnde IP Adresse in Falle von dynamischen IP Adressen vorbereiten. Es benötigt nicht unbedingt eine DynDNS Adresse, der Raspiblitz kann auch mit dynamischen IP Adressen umgehen, dafür muss der Router aber UPnP beherschen und die Funktion NAT in der lnd.conf
aktiviert werden. Wir schauen uns beide Möglichkeiten an, NAT und Dynanische DNS Adressen
Mit diesen Voraussetzungen seid ihr bereit, das Port Forwarding einzurichten und eure Lightning Node im Clearnet zu betreiben.
Tormodus anpassen
Die Option tor.streamisolation=false
muss deaktiviert werden, wenn der Hybridmodus verwendet wird.
Der Hybridmodus wurde in LND von Lightning Labs in der Version lnd-0.14.0-beta eingeführt. Mit dieser Version wurde eine neue Option eingeführt, um die Konnektivität zu teilen und Tor-Only-Peers über Tor und Clearnet-Peers über Clearnet separat anzusprechen:
[tor]
; Allow the node to connect to non-onion services directly via clearnet. This
; allows the node operator to use direct connections to peers not running behind
; Tor, thus allowing lower latency and better connection stability.
; WARNING: This option will reveal the source IP address of the node, and should
; be used only if privacy is not a concern.
tor.skip-proxy-for-clearnet-targets=true
In den jeweiligen Konfigurationen legen wir dann die Einstellungen fest.
Konfiguration des Hybridmodus
LND muss die externe IP-Adresse eines Nodes kennen. Dabei gibt es zwei verschiedene Fälle zu berücksichtigen: statische und dynamische IP-Verbindungen.
Eine statische IP ist in LND relativ einfach einzurichten. Die externe IP-Adresse muss in der LND-Option externalip
angegeben werden. Das ist fast alles. Allerdings ändern die meisten Internetanbieter eure IPs regelmäßig oder zumindest bei einer erneuten Verbindung. Daher müsste die externalip
in der lnd.conf jedes Mal geändert werden, wenn eine neue IP zugewiesen wird, gefolgt von einem Neustart des lnd.service, um die lnd.conf
neu zu laden. Dies ist für einen kontinuierlichen Node-Betrieb nicht praktikabel. Zwei mögliche Lösungen, um das erneute Bearbeiten und Neustarten von LND zu verhindern:
- Variante 1: NAT/UPnP
- Variante 2: Dynamic DNS (DDNS)
Variante 1: NAT/UPnP
Der Umgang mit dynamischen IPs ist etwas komplexer. LND bietet hierfür einen integrierten Ansatz: NAT. NAT versucht, dynamische IPs mithilfe integrierter Techniken zu lösen, um die externe IP-Adresse eines Nodes abzurufen. Es ist wichtig zu beachten, dass LND nicht gut damit umgeht, externalip
und nat
gleichzeitig zu setzen. Wählt deshalb nur eine dieser Optionen, basierend auf den UPnP-Fähigkeiten eures Routers (nat traversal) beziehungsweise eurer persönlicher Präferenzen.
Um die Funktion NAT nutzen zu können, müsst, ist die lnd.conf
unter /mnt/hdd/lnd/
zu öffnen und folgende Funktion zu aktivieren:
; Instead of explicitly stating your external IP address, you can also enable
; UPnP or NAT-PMP support on the daemon. Both techniques will be tried and
; require proper hardware support. In order to detect this hardware support,
; `lnd` uses a dependency that retrieves the router's gateway address by using
; different built-in binaries in each platform. Therefore, it is possible that
; we are unable to detect the hardware and `lnd` will exit with an error
; indicating this. This option will automatically retrieve your external IP
; address, even after it has changed in the case of dynamic IPs, and advertise
; it to the network using the ports the daemon is listening on. This does not
; support devices behind multiple NATs.
nat=true
Die fertige Konfiguration sieht dann folgendermassen aus:
[Application Options]
# specify an interface (IPv4/IPv6) and port (default 9735) to listen on
listen=0.0.0.0:9735 # listen on IPv4 interface or listen=[::1]:9735 for IPv6 interface
nat=true
[tor]
tor.active=true
tor.v3=true
# deactivate streamisolation for hybrid-mode
tor.streamisolation=false
# activate split connectivity
tor.skip-proxy-for-clearnet-targets=true
Startet danach LND mit sudo systemctl restart lnd.service
neu. In einem Abschnitt weiter unten könnt ihr überprüfen, ob die Umstellung bereits geklappt hat.
Dynamische IP: Lösung 2 - Dynamic DNS (DDNS)
Dynamic DNS (DDNS) ist eine Methode, um einen Nameserver im Domain Name System (DNS) automatisch zu aktualisieren, oft in Echtzeit, mit der aktiven DDNS-Konfiguration seiner konfigurierten Hostnamen, Adressen oder anderer Informationen. Hier übernimmt der DynDNS Server die aktualisierung der IP Adressen, und nicht LND wie im NAT Modus. Der Router muss zudem kein UPnP können.
Damit ihr DynDNS nutzen könnt, müsst ihr euch eine Domain via DynDNS erstellen. Eine Anleitung dazu findet ihr hier. Die Wahl des Domain-Namens spielt hier keine Rolle.
Ein Skript des DynDNS Servers ruft regelmäßig die aktuelle IP-Adresse des Clients ab, die für spätere Anfragen gespeichert wird, und ändert die Zuweisung automatisch falls Änderungen registriert werden. LND kann dann mit der angegebene Domain/DDNS die tatsächliche IP-Adresse auflösen.
In diesem Fall muss LND anstelle einer externen IP-Adresse eine reservierte DNS-Domain kennen. Die Option externalhosts
muss gesetzt werden:
[Application Options]
# specify DDNS domain (port optional)
externalhosts=eure_dyndns_domain:9735
Öffnet eure lnd.conf
und fügt die Konfiguration anhand des folgenden Beispiels ein:
[Application Options]
# specify an interface (IPv4/IPv6) and port (default 9735) to listen on
listen=0.0.0.0:9735 # listen on IPv4 interface or listen=[::1]:9735 for IPv6 interface
externalhosts=eure_dyndns_domain:9735
[tor]
tor.active=true
tor.v3=true
# deactivate streamisolation for hybrid-mode
tor.streamisolation=false
# activate split connectivity
tor.skip-proxy-for-clearnet-targets=true
Startet danach wieder LND mit sudo systemctl restart lnd.service
neu!
Funktionstest, Einstellungen überprüfen
LND bietet eine einfachen Befehl an, um zu überprüfen, ob LND auf eure Clearnet IP Adresse hört. Der Befehl lautet ganz einfach lncli getinfo
:
"uris": [
"028268dcb4c68311613dd3bbb0164f7685b6710022bfa6dcce639acd44695049a2@62.2.188.226:9735",
"028268dcb4c68311613dd3bbb0164f7685b6710022bfa6dcce639acd44695049a2@5und3k5vpfowgdi27xueir522tk3e2vvmmset6b6kc2fwqnwveg7w4yd.onion:9735"
Habt ihr keinen Eintrag mit einer Clearnet IP, habt ihr was in der Konfiguratuon falsch gemacht. Stellt in diesem Fall nochmals sicher, dass das Portfowarding auf die IP Adresse eures Raspiblitzes zeigt.
Falls ihr LNDg betreibt, findet ihr neu nun auch eine Clearnet Adresse:
Ein weitere Methode wäre, euch einfach ein Peer der im Clearnet operiert, zu fragen, ob er sich mit euch via eure IP verbinden kann, der Befehl für den peer wäre dann:
lncli connect <euer_pubkey>@eure_ip:9735
Tunnelsats als Alternative zur eigenen IP Adresse freigeben
Tunnelsats ist ein Dienst, der speziell entwickelt wurde, um sichere und stabile Verbindungen für Lightning Nodes zu ermöglichen, insbesondere wenn es Herausforderungen bei der Verwendung von Tor oder Clearnet gibt. Dieser Dienst bietet eine Möglichkeit, die Erreichbarkeit und Zuverlässigkeit deines Nodes zu verbessern, indem er eine Art VPN-Tunnel bereitstellt.
Hauptmerkmale von Tunnelsats:
- Sichere Verbindungen: Durch die Nutzung von VPN-Technologie stellt Tunnelsats sicher, dass deine Verbindungen sicher und vor Abhörversuchen geschützt sind.
- Stabile IP-Adresse: Tunnelsats kann eine stabile IP-Adresse bereitstellen, die unabhängig von den dynamischen Änderungen durch deinen ISP ist, was die Verwaltung deines Nodes erheblich erleichtert.
- Einfache Einrichtung: Die Konfiguration von Tunnelsats ist benutzerfreundlich und kann schnell eingerichtet werden, ohne dass tiefgehende technische Kenntnisse erforderlich sind.
- Verbesserte Erreichbarkeit: Mit Tunnelsats wird dein Node über eine konstante und zuverlässige Verbindung erreichbar, was besonders wichtig für Nodes mit hohen Verfügbarkeitsanforderungen ist.
- Kompatibilität: Tunnelsats ist mit den gängigen Lightning-Implementierungen kompatibel und kann nahtlos in bestehende Setups integriert werden.
Falls ihr eure eigene IP Adresse nicht freigeben wollt, und trotzdem die Vorteile einer Clearnet Verbindung geniessen wollt, schaut euch ihr mal Tunnelsats genauer an. Die Konfiguration ist etwas komplexer, aber auch bei genauem befolgen der Anleitung auch für Anfänger machbar. Tunnelsats ist jedoch nicht gratis und kostet ca 2 Euro Pro Monat.
Fazit: LND über das Clearnet
Das Betreiben eines Lightning Network Daemons (LND) über das Clearnet bietet eine Reihe von Vorteilen, die insbesondere für Nutzer mit hohen Anforderungen an Geschwindigkeit und Verfügbarkeit attraktiv sind. Diese Methode ermöglicht eine direkte und schnelle Verbindung zu anderen Nodes und bietet erhebliche Latenz und stabilitätsvorteile.
Vorteile:
- Geringe Latenz: Direkte Verbindungen über das Clearnet bieten geringere Latenzen, was besonders für zeitkritische Transaktionen vorteilhaft ist.
- Einfache Einrichtung: Die Konfiguration eines LND-Nodes im Clearnet ist meist einfacher und weniger komplex als über Tor.
- Hohe Verfügbarkeit: Clearnet-Verbindungen sind stabiler und zuverlässiger, was für Nodes mit hohen Verfügbarkeitsanforderungen entscheidend ist.
- Bessere Performance: Da das Clearnet weniger Schichten und Umwege hat, ist die Performance im Allgemeinen höher.
Nachteile:
- Sicherheitsrisiken: Clearnet-Verbindungen sind anfälliger für Angriffe und erfordern zusätzliche Sicherheitsmaßnahmen wie Firewalls und Portweiterleitungen.
- Öffentliche IP-Adresse: Die Nutzung einer öffentlichen IP-Adresse kann zu einer geringeren Anonymität führen und das Risiko einer Lokalisierung erhöhen.
- Regulierungsanfälligkeit: Clearnet-Verbindungen sind anfälliger für staatliche Zensur und regulatorische Eingriffe.
Das Betreiben von LND über das Clearnet ist eine praktikable und oft bevorzugte Lösung für viele Nutzer, die Wert auf schnelle und zuverlässige Verbindungen legen. Während zusätzliche Sicherheitsmaßnahmen erforderlich sind, um die Risiken des Clearnets zu mindern, bietet diese Methode eine einfachere und leistungsfähigere Alternative zu Tor. Für Nutzer, die keine hohen Anforderungen an Anonymität haben und eine stabile Netzwerkverbindung benötigen, stellt das Clearnet eine attraktive Option dar.