Wie man einen Bitcoin Lightning Node in Linux erstellt

Bitcoin Lightning Node 00 Featured Image

Einer der größten Schmerzpunkte bei der Verwendung von Bitcoin sind die langen Transaktionszeiten. Dies kann frustrierend für neue Benutzer sein, die gerade in diese digitale Währung einsteigen. Eine der einfachsten Möglichkeiten, dies zu verbessern, ist die Verwendung einer sekundären Zahlungsschicht wie Bitcoin Lightning.

Bitcoin Lightning ist ein System, das benutzerdefinierte Bitcoin-Transaktionen verwendet, um Vermögenswerte schnell außerhalb des regulären Blockchain-Prozesses zu bewegen. In dieser Hinsicht ist Lightning ähnlich wie das Tor-Netzwerk, das TCP/IP als Rückgrat verwendet, um anonyme Verbindungen zu routen.

Inhaltsverzeichnis

  • Warum ist Bitcoin langsam?
  • Wie funktioniert das Lightning-Netzwerk?
  • Einrichten Ihres eigenen Bitcoin Lightning Nodes
  • Häufig gestellte Fragen

Auch lesen: Wie Sie Ihre Finanzen mit dem Ledger-Modus in Emacs verwalten

Bitcoin ermöglicht es Ihnen, Geld einfach über das Internet ohne zentrale Autorität auszutauschen. Jede Transaktion, die Sie durchführen, erfolgt direkt an den Zahlungsempfänger, und Sie verteilen sie über das gesamte Netzwerk.

Warum ist Bitcoin langsam?

Bitcoin Lightning Node 03 Bitcoin Blocks Visualization

Infolgedessen dauert jede Zahlung, die Sie innerhalb von Bitcoin tätigen, eine gewisse Zeit, um abgeschlossen und bestätigt zu werden. Zum Beispiel dauert eine reguläre Bitcoin-Transaktion normalerweise 10 bis 30 Minuten, um zu klären.

Wie funktioniert das Lightning-Netzwerk?

Im Kern funktioniert Lightning, indem es eine “On-Chain”-Zahlung erstellt, die einen Betrag an Bitcoin auf Ihrem Node parkt. Lightning verwendet dann Ihr geparktes Bitcoin, um einen Kanal zwischen anderen Lightning-Nodes zu erstellen.

Bitcoin Lightning Node 04 Lightning Network Graph

Dies ermöglicht es Ihnen, zusätzliche “Off-Chain”-Zahlungen über Lightning zu erstellen, die nicht in der Blockchain geklärt werden müssen, was die Zahlungszeit zwischen zwei Benutzern erheblich verkürzt. Zum Beispiel dauert eine reguläre Lightning-Transaktion nur etwa eine Sekunde, um zu klären.

Auch lesen: Wie man hohe CPU-Auslastung in Linux behebt

Einrichten Ihres eigenen Bitcoin Lightning Nodes

Um mit Lightning zu beginnen, ist es gut, einen eigenen persönlichen Node zu haben. Ähnlich wie beim Einrichten eines Bitcoin-Nodes ermöglicht Ihnen ein Lightning-Node die vollständige Kontrolle über Ihre Transaktionen in seinem Netzwerk.

Um mit der Installation zu beginnen, müssen Sie eine Reihe von Ressourcen verfügbar und bereit haben:

  • Maschine mit einer angemessenen Menge an Speicherplatz und Arbeitsspeicher. In meinem Fall verwende ich einen alten Dell Optiplex-Desktop mit 1 TB Speicher und 2 GB RAM.
  • Ständige Internetverbindung, da ein Lightning-Node regelmäßig mit anderen Nodes kommunizieren muss, um seinen Status aufrechtzuerhalten.
  • Eine kleine Menge Bitcoin, die Sie verwenden können, um Ihren Lightning-Node zu “finanzieren”.

Mit diesen Faktoren konzentriert sich dieses Tutorial auf die Installation von c-lightning auf einer Ubuntu 22.04.1 LTS-Maschine.

Abhängigkeiten beschaffen

Der erste Schritt bei der Installation von c-lightning besteht darin, ein neues Benutzerkonto zu erstellen, um sicherzustellen, dass alle Dateien und Einstellungen für Ihren Node von Ihrem Hauptbenutzer getrennt sind:

sudo useradd -s/bin/bash-d/home/lightning -m-Gsudo lightning  
sudopasswd lightning

Bitcoin Lightning Node 05 Create New User

Wechseln Sie zu diesem neuen Benutzer, indem Sie su lightning ausführen, und fügen Sie dann ein Drittanbieter-Repository hinzu, das alle Programme enthält, damit c-lightning funktioniert:

sudo add-apt-repository -u ppa:lightningnetwork/ppa

Installieren Sie die Abhängigkeiten des Nodes:

sudo apt install software-properties-common lightningd snapd

Bitcoin Lightning Node 06 Install Dependencies

Auch lesen: 4 Möglichkeiten, die Akkulaufzeit Ihres Linux-Laptops zu verlängern

Einfache Bitcoin Nodes einrichten

Von hier aus müssen Sie einen einfachen Bitcoin-Node installieren und konfigurieren. Wie oben besprochen, ist Lightning ein Overlay-Netzwerk, das funktioniert, indem es benutzerdefinierte Bitcoin-Transaktionen verwendet, um “Fund Channels” zu erstellen.

Um diese Kanäle zu erstellen, muss Ihr Lightning-Node neben einem einfachen Bitcoin-Node laufen, der installiert werden kann, indem Sie den folgenden Befehl ausführen:

sudo snap install bitcoin-core

Bitcoin Lightning Node 07 Snap Install Bitcoin

Erstellen Sie einen symbolischen Link zwischen Ihrem Root-“snap”-Verzeichnis und dem “bin”-Ordner:

sudoln-s/snap/bitcoin-core/current/bin/bitcoin{d,-cli}/usr/local/bin/

Starten Sie den Initial Block Download für Ihren Bitcoin-Node:

bitcoind -daemon

Dieser Befehl sendet den Node in den Hintergrund, um die gesamte Bitcoin-Blockchain herunterzuladen und zu verifizieren. Sie können den Fortschritt überprüfen, indem Sie den folgenden Befehl ausführen:

tail-f/home/$USER/.bitcoin/debug.log

Bitcoin Lightning Node 08 Download Log

Es ist wichtig zu beachten, dass dieser Prozess zwischen einigen Stunden und einigen Tagen dauern kann. Zum Beispiel hat mein Dell Optiplex-Desktop 5 Tage gebraucht, um sich vollständig mit dem Bitcoin-Netzwerk zu synchronisieren.

Konfigurieren Ihres einfachen Bitcoin Nodes

Sobald Ihr Node mit dem Netzwerk synchronisiert ist, stellen Sie sicher, dass er mit Lightning kompatibel ist, indem Sie zuerst den Bitcoin-Node stoppen:

bitcoind stop

Bearbeiten Sie die Konfigurationsdatei unter “/etc/bitcoin.conf”:

nano/home/$USER/.bitcoin/bitcoin.conf

Bitcoin Lightning Node 09 Node Conf File

Deaktivieren Sie zwei Optionen: walletbroadcast und prune. Die erste Option sagt Ihrem Bitcoin-Node, dass er seine Daten nur mit Lightning verwenden soll, und die zweite Option stellt sicher, dass Sie die gesamte Blockchain auf Ihrer Festplatte speichern.

walletbroadcast=0  
prune=0

Starten Sie Ihren Bitcoin-Node neu, indem Sie den folgenden Befehl ausführen:

bitcoind -daemon

Starten Ihres Bitcoin Lightning Nodes

Starten Sie Ihren Lightning-Node, indem Sie den folgenden Befehl ausführen:

lightningd --network=bitcoin --log-level=debug --daemon

Bitcoin Lightning Node 11 Initilize Lightning Node

Dieser Befehl sendet den Node in den Hintergrund und erstellt seine Konfigurationsdateien unter “/home/$USER/.lightning.” Testen Sie, ob Ihr Lightning-Node ordnungsgemäß funktioniert, indem Sie diesen Befehl ausführen:

lightning-cli --lightning-dir=$HOME/.lightning getinfo

Bitcoin Lightning Node 12 Check Info Node

Auch lesen: Die besten Open-Source-Tools zur Sicherung Ihres Linux-Servers

Finalisierung Ihres Bitcoin Lightning Nodes

Mit c-lightning, das läuft, können Sie Ihren Node finalisieren, indem Sie die “Fund Channels” zwischen verschiedenen Lightning-Peers erstellen. Wie oben besprochen, ist ein “Fund Channel” eine benutzerdefinierte Bitcoin-Transaktion, die es Ihnen ermöglicht, Ihr Bitcoin zu bewegen, ohne sich an die Blockchain zu binden.

Um dies zu erstellen, “deponieren” Sie zuerst Bitcoin auf Ihrem Lightning-Node, indem Sie eine Empfangsadresse für Ihren Node mit dem folgenden Befehl generieren:

lightning-cli newaddr

Bitcoin Lightning Node 13 Generate Bitcoin Address

Gehen Sie zu einer externen Wallet und senden Sie Bitcoin an diese Empfangsadresse. In meinem Fall werde ich 0.00050000 BTC mit meiner Bitcoin Core Wallet senden.

Bitcoin Lightning Node 14 External Wallet Send Funds 1

Sobald die Transaktion in der Blockchain ist, wird Ihr Lightning-Node automatisch seinen Fondsbestand aktualisieren. Sehen Sie sich dies an, indem Sie den folgenden Befehl ausführen:

lightning-cli listfunds

Peering mit entfernten Bitcoin Lightning Nodes

Beginnen Sie, Ihren Node mit seinen Peers im Netzwerk zu verbinden, um Ihnen zu ermöglichen, Bitcoin über Lightning zu senden und zu empfangen.

Um zu beginnen, finden Sie sowohl den öffentlichen Schlüssel als auch die IP-Adresse. Ähnlich wie bei der Verwendung von PGP-Verschlüsselung ermöglicht dies Ihnen, sich zu verbinden und die Authentizität eines Nodes durch Public-Key-Kryptografie zu überprüfen.

Eines der häufigsten Tools dafür ist 1ML: eine Website, die alle aktiven Lightning-Nodes im Netzwerk auflistet.

Bitcoin Lightning Node 15 1ml Node List

Sobald Sie einen aktiven Node haben, verwenden Sie den Befehl lightning-connect, um eine Peer-Anfrage zu stellen. Zum Beispiel wird dieser Befehl meinen Node mit ACINQ verbinden:

lightning-cli connect 1 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f 3.33.236.230
  • Der erste Wert gibt die Slotnummer an, die Sie dem aktuellen Peer zuweisen möchten. Für diesen Node verwende ich Slot 1.
  • Der zweite Wert ist der öffentliche Schlüssel des entfernten Nodes. In diesem Fall verwende ich den öffentlichen Schlüssel von ACINQ.
  • Der dritte Wert ist die öffentliche IP-Adresse des entfernten Nodes.

Um die Anfrage abzuschließen, senden Sie einen Teil des Bitcoin-Bestands Ihres Nodes an den entfernten Node, um einen “Fund Channel” zwischen Ihnen und einem Peer-Node zu erstellen.

Zum Beispiel wird dieser Befehl einen “Fund Channel” für 0.00030000 BTC zum ersten Peer in meiner Liste erstellen:

lightning-cli fundchannel 130000

Bitcoin Lightning Node 16 Fund Channel

Senden und Empfangen von Lightning-Zahlungen

Mit einem aktiven “Fund Channel” können Sie Ihren Node verwenden, um Zahlungen zu senden und zu empfangen. Standardmäßig verwendet Lightning das BOLT11-Format, das mit “lnbc” beginnt, um es von Bitcoin zu unterscheiden.

Um Bitcoin über Lightning zu senden, müssen Sie die BOLT11-Adresse Ihres Empfängers kennen. Zum Beispiel sendet der folgende Befehl 0.00005000 BTC an eine entfernte Adresse:

lightning-cli pay lnbc20m1[...]qdhhwkj 50000

Bitcoin Lightning Node 18 Send Bitcoin Lightning

Sie können auch Bitcoin über Lightning empfangen, indem Sie den Befehl invoice verwenden und den genauen Betrag an Bitcoin angeben, den Sie erhalten möchten. Zum Beispiel erstellt dieser Befehl eine Rechnung für 0.00010000 BTC:

lightning-cli invoice 100000

Bitcoin Lightning Node 19 Obtain Bitcoin Lightning

Auch lesen: Wie man große Dateien in Linux findet

Häufig gestellte Fragen

Ich verwende Dojo als meinen Bitcoin-Node. Ist es möglich, ihn mit c-lightning zu verwenden?

Nein. Standardmäßig ist Dojo ein Programm, das Docker-Container verwendet, um eine sandboxed Instanz von Bitcoin Core auszuführen. Ein Dojo Bitcoin-Node kann nicht mit einem Programm außerhalb seines Sandbox-Containers kommunizieren.

Meine Wallet unterstützt keine “bc1”-Adresse. Ist es trotzdem möglich, auf meinen Lightning-Node einzuzahlen?

Ja! Während c-lightning nativ im “bc1”-Adressformat generiert, ist es möglich, Bitcoin an einen Lightning-Node im älteren P2SH-Format zu übertragen. Um dies zu tun, führen Sie den folgenden Befehl aus: lightning-cli newaddr p2sh-segwit.

Meine Lightning-Zahlung schlägt gelegentlich fehl. Ist mein Node defekt?

Nein! Dieses Problem liegt höchstwahrscheinlich an einem Mangel an Node-Verbindungen zwischen Ihnen und dem Empfänger. Das Lightning-Netzwerk verlässt sich von Natur aus darauf, dass jeder Node konstant und direkt miteinander kommuniziert.

Eine Möglichkeit, dieses Problem zu beheben, besteht darin, die Anzahl der Peers und “Fund Channels”, mit denen Ihr lokaler Node verbunden ist, zu erhöhen. Zum Beispiel ermöglicht es, mindestens zwei bis drei aktive Peers zu haben, um sich mit fast jedem Lightning-Benutzer zu verbinden.

Bildnachweis: Unsplash und Wikimedia Commons. Alle Änderungen und Screenshots von Ramces Red.