Hallo zusammen,
mithilfe von fiatjaf’s webhook plugin für CLN (ehemals c-lightning) Nodes habe ich mir simple Push-Nachrichten für bestimmte Node-Events erstellt (bspw. wenn eine Rechnung erstellt wurde, eine Zahlung gesendet wurde, das Stattfinden einer Route etc.)
Da ich nun mehrfach gefragt wurde, wie das funktioniert, möchte ich an dieser Stelle ein kurzes Tutorial dafür erstellen.
Da ich einen RaspiBlitz verwende, werde ich lediglich auf das entsprechend benötigte Release eingehen und auch die entsprechenden Pfade benutzen. Je nach System wird dies variieren.
Zunächst einmal loggen wir uns mittels ssh auf den RaspiBlitz ein und navigieren in den Ordner, in dem die CLN-plugins abgelegt werden
cd /home/bitcoin/cl-plugins-enabled
Als nächstes laden wir den für den Blitz benötigten Release
sudo wget https://github.com/fiatjaf/lightningd-webhook/releases/download/v3.3/webhook_linux_arm
und geben diesem noch entsprechende Rechte
chmod +x webhook_linux_arm
Nun benötigen wir eine Push-App oder einen Dienstleister nach Wahl. Ich habe als iPhone-Besitzer die App PushCut benutzt. Ich glaube drei Webhooks sind kostenfrei. Hier lässt sich ganz einfach eine Notification nach Wahl erstellen, Name, Beschreibung, ggf. Bild mit in der Notification. Über bezahlte Abos ist hier noch mehr möglich, übersteigt jedoch meine Fähigkeiten
Wichtig an dieser Stelle ist nun eine Webhook-URL, die euch ausgegeben wird. Beim Abruf dieser URL erfolgt sofort das Senden der Pushnachricht. Nun müssen wir dafür sorgen, dass die Node bei entsprechendem Event diese URL abruft.
Dafür gehen wir im Blitz-Menü unter System auf CLCONF
In der sich öffnenden Konfigurationsdatei tragen wir nun ganz unten folgenden Eintrag hinzu
webhook=URL?filter-event=EVENTNAME
die URL ersetzen wir durch die in der Push-App erzeugten Webhook-URL, den EVENTNAME ersetzen wir durch den gewünschten Eventnamen, die hier zu finden sind (bisschen runterscrollen)
Beispiele:
channel_opened
- wenn ein Channel geöffnet wurde
invoice_payment
- wenn eine Rechnung beglichen wurde
invoice_creation
- wenn eine Rechnung erstellt wurde
forward_event
- wenn eine Route stattfand (Achtung, es summt auch bei failed routes, sehr nervig!)
Wenn man mehrere Events möchte und mehrere Webhook-URLs hat, kann man diese wie folgt aneinanderreihen:
webhook=URL1?filter-event=EVENTNAME1,URL2?filter-event=EVENTNAME2
usw.
Ist alles eingetragen, kommen wir mittels TAB auf den ok-Button und bestätigen die Änderungen. lightningd
startet dann neu und läd das Plugin, sowie die Infos nach.
Ich hoffe, das Tutorial hilft allen Interessierten. Viel Spaß damit!
ADVANCED:
Bei Abruf der URL ruft das Plugin diese nicht nur auf sondern sendet sogar eine JSON PAYLOAD wie diese:
{
"invoice_payment": {
"label": "unique-label-for-invoice",
"preimage": "0000000000000000000000000000000000000000000000000000000000000000",
"msat": "10000msat"
}
}
Findige Bastler wären also nicht nur in der Lage eine einfache Benachrichtigung zu erzeugen, sondern diese auch noch mit Informationen zu füttern.
Nachtrag: so sieht das dann bei mir im Übrigen aus