LND Wer hat den Kanal geöffnet 🇩🇪

lcodes

2021/07/16

Categories: Tutorial Tags: lightning,channel,kanal,initiator,eröffner

LND Wer hat diesen Kanal eröffnet?

Die Lernkurve bei LN ist steil, dass weiß jeder, der/die sich mit dem Thema befasst. Ich bin erst seit ein paar Wochen dabei und versuche parallel möglichst viele Dinge, die mir als Noob auffallen zu dokumentieren. Manchmal tauchen während des Managements des Systems spontan Fragen auf, die ich mir nicht direkt beantworten kann. Eine dieser Fragen behandelt der folgende Beitrag. Dies ist die Situation: Man hat bereits mehrere Kanäle und teilweise mehrere zu der gleichen Node. Ich erinnere mich daran, dass ein Kanal von mir aufgemacht worden ist und der andere von der Gegenseite. Nur welchen Kanal habe ich aufgemacht und welchen meine Partnernode? Im ersten Schritt hatte ich versucht dies mittels Thunderhub herauszufinden. Fehlanzeige(Achtung! Es geht doch.). Dann teilte mir jemand mit, dass man dies mit lncli machen kann. Also, ab auf die Kommandozeile und geschaut.

lncli hat mehrere Befehle bzgl. der Kanäle:

$ lncli -h|grep channel
     openchannel        Open a channel to a node or an existing peer.
     closechannel       Close an existing channel.
     closeallchannels   Close all existing channels.
     abandonchannel     Abandons an existing channel.
     channelbalance     Returns the sum of the total available channel balance across all open channels.
     pendingchannels    Display information pertaining to pending channels.
     listchannels       List all open channels.
     closedchannels     List all closed channels.
     feereport          Display the current fee policies of all active channels.
     updatechanpolicy   Update the channel policy for all channels, or a single channel.
     exportchanbackup   Obtain a static channel back up for a selected channels, or all known channels
     verifychanbackup   Verify an existing channel backup
     restorechanbackup  Restore an existing single or multi-channel static channel backup
     getchaninfo     Get the state of a channel.

Für mein Szenario erschien mir listchannels das richtige Kommando zu sein. Schauen wir uns die Hilfe dazu an:

$ lncli listchannels --help
NAME:
   lncli listchannels - List all open channels.

USAGE:
   lncli listchannels [command options] [arguments...]

CATEGORY:
   Channels

OPTIONS:
   --active_only    only list channels which are currently active
   --inactive_only  only list channels which are currently inactive
   --public_only    only list channels which are currently public
   --private_only   only list channels which are currently private
   --peer value     (optional) only display channels with a particular peer, accepts 66-byte, hex-encoded pubkeys

Perfekt. Ich kann nach peers bzw. Public Keys filtern. Dies sieht dann so aus:

lncli listchannels --peer 02XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{
    "channels": [
        {
            "active": true,
            "remote_pubkey": "02XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
            "channel_point": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx",
            "chan_id": "75XXXXXXXXXXXX",
 ...
}

Wir erhalten jede Menge Daten! Wonach schaut man? Die Antwort ist: Initiator.

lncli listchannels --peer 02XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | jq. |grep initiator
      "initiator": true,
      "initiator": false,

Ok. Der erste Kanal wurde von mir eröffnet der zweite Kanal von der Partnernode. Aber welche ChannelID ist das jetzt? Um nicht alles ausgegeben zu bekommen, nutzen wir die Funktionalität von dem Tool jq.

Falls ihr das Tool nicht auf eurem System habt und Debian/Ubuntu läuft:

apt-get install jq

Jetzt zur Verarbeitung selber:

$ lncli listchannels --peer 02XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX|jq '.[][].chan_id,.[][].initiator'
"75XXXXXXXXXXXXXXX1"
"75XXXXXXXXXXXXXXX2"
true
false

Wir sehen also, der Kanal mit der ID 75XXXXXXXXXXXX1 wurde von mir erstellt. Tja, so einfach kann das alles sein ;)

Update

Tatsächlich lässt sich auch problemlos in Thunderhub erkennen ob der Kanal selber oder von einer Remote Node eröffnet worden ist. Dazu muss man lediglich auf das Kanal Feld gehen und sieht neben den Namen der Kanäle (Modus: Normal/Compact) jeweils einen kleinen Pfeil nach oben oder unten.

Ob ihr den Kanal eröffnet habt, lässt sich ebenfalls direkt in RTL (Ride The Lightning) sehen. Geht dazu auf die Kanalübersicht, sucht den Kanal raus der euch interessiert und klickt auf View Info. Im sich öffnenden Fenster seht ihr den Eintrag Initiator.

Ende

Ich hoffe dies konnte dem einen oder anderen helfen einen weiteren Schritt in Richtung LN Verständnis zu gehen. :)

>> Home