xPub Key vom Raspiblitz bei externen BTCPay Server verwenden
In diesem Beitrag beschreiben wir, wie Du bei der Verwendung eines externen BTCPay Servers Bitcoin (OnChain) und Lightning (Off-Chain) Zahlungen auf Deinem eigenen Raspiblitz empfangen kannst.
Wer Bitcoin Zahlungen im Internet akzeptieren will, muss dafür sorgen, dass der BTCPay Server jederzeit von den Kunden über das Internet aufgerufen werden kann.
Auf dem Raspiblitz befindet sich ebenfalls ein eigener BTCPay Server. Betreibt man seinen Raspiblitz im eigenen Netzwerk, so kann es aus Sicherheitsgründen unerwünscht sein, dass ein unkontrollierter Zugriff aus dem Internet möglich ist.
Der Zugriff wäre aber erforderlich, wenn Endkunden im eigenen Onlineshop mit Bitcoin bezahlen wollen und diese Zahlungsabwicklung über den BTCPay Server vorgenommen werden soll.
Deshalb empfiehlt es sich, dass für die Bitcoin Zahlungsabwicklung ein externer BTCPay Server verwendet wird und nicht der BTCPay Server auf dem eigenen Raspiblitz im eigenen Netzwerk.
Die Gutschrift der Bitcoin und Lightning Zahlungen, soll hingegen direkt auf dem eigenen Raspiblitz erfolgen.
Wir beschreiben, wie Du einen externen BTCPay Server nutzen kannst und die Gutschrift direkt auf Deinem Raspiblitz erfolgt.
Im ersten Abschnitt wird beschrieben, wie Du den xPub Key von Deinem Raspiblitz ermittelst, um Bitcoin Zahlungen zu empfangen. xPub Key für den Raspiblitz
Im zweiten Abschnitt erklären wir, wie Du den BTCPay Connection String auf Deinem Raspiblitz erstellst und als „Use Custom Node“ auf dem externen BTCPay Server hinterlegst. Raspiblitz Lightning Node mit BTCPay Server verbinden
Inhaltsverzeichnis
xPub Key für den Raspiblitz
Was ist xPub Key?
Für den Empfang von Bitcoin Zahlungen muss für jede Zahlung eine separate und einmalige Bitcoin Adresse erstellt werden. Diese Bitcoin Adresse ist eine Public Adresse, da diese Adresse Jedem mitgeteilt werden kann. Damit diese unendliche Anzahl von Public Bitcoin Adressen automatisiert erstellt werden können, wird eine Extended Public Adresse, kurz xPub, benötigt.
Diese Public xPub Adresse wird aus Deiner Privaten Adresse gewonnen. Diese Private Adresse sind Deine 12 bzw. 24 Wörter, welche Du niemals jemanden mitteilen darfst. Während Du den xPub Key benötigst, um Zahlungen zu empfangen, ist Deine Private Adresse erforderlich, um Zahlungen zu versenden. Wer also Deine Private Adresse kennt, der kann über Deine Bitcoin verfügen und versenden.
Deshalb solltest Du NIEMALS jemanden Deinen Privaten Schlüssel mitteilen oder auf irgendeiner Webseite eintragen.
Wir werden in dieser Anleitung beschreiben, wie Du genau so etwas machen musst, um an den xPub Key von Deinem Private Key (kurz xPrv) zu gelangen.
Grundsätzlich empfehlen wird die Verwendung des xPub Key von einer Hardware Wallet.
Wie den xPub Key von einer Hardware Wallet verwenden kannst, erfährst Du in dem Beitrag: „xPub Key einer Hardware Wallet ermitteln„.
Wenn Du Dir diesem Risiko bewusst bist, dann erfährst Du wie Du dabei vorgehst und dabei die höchstmögliche Sicherheit erhältst.
Diese Anleitung greift inhaltlich auf den Beitrag von Openoms zurück.
Du findest den Original Betrag in englischer Sprache hier: https://openoms.gitbook.io/lightning-node-management/technicals/restorelndonchainfundsinelectrum
Und als deutsche Übersetzung von BTC21 hier: https://btc21.de/lightning-node-retten/
Kurzfassung des Ablaufs
Unser Ziel ist es die Ermittlung des xPub Keys, den wir bei dem BTCPay Server hinterlegen wollen. Um den xPub Key Extended Public Key) zu ermitteln, muss vorher der xPrv Key (Extended Private Key) ermittelt werden.
Den xPrv ermitteln wir wiederum aus den 12 bzw. 24 Wörtern (Mnemonic).
Um zu vermeiden, dass bei der Ermittlung dieser Daten, keine Informationen in unerlaubte Hände geraten, werden wir Kopien der erforderlichen Webseiten erstellen und unsere Internetverbindung deaktivieren.
Erstellung des xPrv Key
Für die Ermittlung des xPrv keys aus unseren Mnemonic Wörtern gehen wir auf die Internetseite:
https://guggero.github.io/cryptography-toolkit/#!/aezeed
Von dieser Webseite erstellen wir eine Kopie, in dem wir mit der rechten Maustaste auf die Seite klicken und diese Seite lokal auf unserem Computer speichern.
Nachdem wir die Internetverbindung deaktiviert haben, öffnen wir die erstellte Kopie die den Namen Cryptograpy-toolkit.html trägt.
Wir öffnen aezeed Cipher Seed Scheme, da der Raspiblitz einen LND Node verwendet, welcher wiederum das aezeed Seed Format verwendet.
Nachdem wir aezeed Cipher Seed Scheme ausgewählt haben, erscheint die folgende Seite:
Hier gehen wir in dem Bereich Decode mnemonic, um aus den Seed Wörtern (Mnemonic) den Private Key zu ermitteln.
Bitte noch einmal kontrollieren, ob man auf die kopierte Webseite zugreift und die Internetverbindung deaktiviert worden ist.
Dann geben wir in das Feld Mnemonic unsere 24 Wörter ein.
In dem Feld HD node root key base58 wird dann unser xPrv Key angezeigt.
Diesen xPrv Key kopieren wir uns raus, um auf einer weiteren Seite daraus den xPub Key zu ermitteln.
Mnemonic Code converter
Dafür gehen wir auf die Internetseite https://iancoleman.io/bip39/ und erstellen ebenfalls eine lokale Kopie dieser Seite und öffnen diese Kopie, nachdem wir die Internetverbindung unterbrochen haben.
In das Feld BIP32 Root Key geben wir die HD node root key base58 Daten ein.
In dem Abschnitt Derivation Path legen wir fest, welches Datenformat wir verwenden möchten. Wir empfehlen BIP49 für Legacy Adressen, weil dieses format von den meisten Bitcoin Wallets unterstützt wird und somit die meisten Kunden damit bei uns bezahlen können.
In dem Feld Account Extended Public Key erhalten wir dann unseren xPub Key angezeigt.
xPub Key bei BTCPay Server hinterlegen
Den generierten xPub Key können wir jetzt auf dem externen BTCpay Server hinterlegen. Dazu gehen wir in unseren BTCPay Store in die General Settings und bei Wallets wählen wir die BTC Wallet aus.
Es erscheint die Abfrage, ob wir uns mit einer externen Wallet verbinden wollen oder eine neue Bitcoin Wallet auf dem BTCPay Server erstellen wollen.
Da wir unserer Bitcoin Wallet von unserem Raspiblitz verwenden wollen, wählen wir die Option „Connect an existing wallet“
Danach wählen wir aus, wie wir die externe Wallet verbinden wollen.
Wir entscheiden uns für „Enter extended public key“
Jetzt geben wir den generierten xPub Key ein. Zusätzlich hängen wir den Zusatz -[p2sh] an das Ende unseres xPub Keys dran.
Danach werden von unserem hinterlegten xPub Key die ersten Bitcoin Adressen generiert, welche für zukünftigen Bitcoin Zahlungen den jeweiligen Kunden angezeigt werden.
Die Gutschrift dieser Bitcoin, welche an diese Bitcoin Adresse gesendet werden, werden somit direkt zu Deinem Bitcoin Guthaben auf Deinem Raspiblitz.
Eigener Lightning Node bei BTCPay Server verwenden
Bei einem externen BTCPay Server besteht die Möglichkeit, seinen eigenen Lightning Node zu hinterlegen.
Dazu startet man den Setup Prozess bei den General Settings des BTCPay Stores.
Man hat die Option den internal Lightning Node zu verwenden oder einen externen Lightning Node. Für die Nutzung des eigenen Lightning Node auf einem Raspiblitz nutzt man die Option „Use custom node“
Die Angaben, welche hier hinterlegt werden müssen, erhalten wir von Raspiblitz.
Dazu wechseln wir in das Menü unseres Raspiblitz und wählen den Menüpunkt Additional Services aus.
Innerhalb von Additional Services gibt es den Punkt ChannelTools (Fund Rescue) den wir aktivieren und mit ok bestätigen.
Der Service ChannelTools wird auf unserem Raspiblitz installiert und eingerichtet.
Danach wechseln wir im Raspiblitz Menü in den Bereich Subscription Management und beauftragen den IP2Tor Bridge Service.
Dann wird abgefragt, welchen Bridge Service gebucht werden soll und wir wählen LND Rest API
Dann erscheint das nebenstehende Fenster.
Hier werden keine Änderungen vorgenommen, sondern einfach mit OK bestätigt.
Wir beauftragen den IP2TOR Service zu den angezeigten Konditionen
Wir bekommen noch einmal eine Zusammenfassung des Services angezeigt, den wir beauftragen.
Dann müssen wir mit unserem Passwort C für die LND Wallet den Vorgang bestätigen.
Dann wird die Bestellung aktiviert.
Jetzt muss der IP2Tor Service über das Raspiblitz Menü und dem Punkt „Connect Apps & Show Credentials“ eingerichtet werden.
Dort gelangen wir auf die folgende Connect Option Auswahl und wählen Export um „Get Macaroons and TLS.cert“
Dann müssen wir festlegen, was wir exportieren wollen und wählen BTCPay Connection String.
Dann erhalten wir den BTCPay Connection String angezeigt:
Dieser BTCPay Connection String wird benötigt, um bei dem BTCPay Server bei den Lightning Einstellungen hinterlegt zu werden.
Entsprechend wechseln wir in unseren BTCPay Store und hinterlegen den BTCPay Connection String in das Feld „Connection configuration for your custom Lightning Node“.
Wenn wir auf Test Connection klicken, erscheint dann das grüne Feld mit der Bestätigung, dass die Verbindung erfolgreich hergestellt wurde.
Dann speichern wir die Einstellungen ab und können den externen BTCPay Server nutzen, um Lightning Zahlungen zu empfangen, welche direkt auf unserem Raspiblitz Lightning Node gutgeschrieben werden.