Watchtower auf Umbrel einrichten

Da ich über unsere :zap: Lightning Initiative :zap: immer mehr Anfragen bekomme, ob ich helfen würde einen Watchtower auf der eigenen Umbrel-Node einzurichten, und das langsam immer mehr wird, habe ich mich entschlossen ein Tutorial dazu anzufertigen.
Leider gibt es im Netzt hauptsächlich Anleitungen für den RaspiBlitz und wenig brauchbares für Umbrel.

! Natürlich seid ihr für euer Handeln selbst verantwortlich !

Eine kurze Erklärung, weshalb man einen Watchtower-Client haben sollte:

Falle eines Hardware-Versagens kann euer Node eine Zeit lang offline sein. Ein Lightning Watchtower verhindert, dass euer Channelpartner einen alten Channel-State veröffentlicht und somit einen größeren Teil des Channels einstreicht als ihm eigentlich zusteht. Watchtower sind eine dritte Partei, die den Channel-State überwacht und im Falle einer Closing-Transaktion verhindert, dass ein veralteter State verwendet und euer Bitcoin gestohlen wird. Im Ernstfall sendet der Watchtower für eine Justice-Transaktion in eurem Namen. Dabei wird nach jedem Update eures Channels der Channel-State an den Watchtower gesendet.

  1. Startet als erstes " Windows PowerShell ". - Dies ist die Konsole um euch per SSH mit der Node zu verbinden.

  2. Gebt den Command ssh -t umbrel@umbrel.local ein, bestätigt mit ENTER, gebt euer Passwort des Umbrel-UIs ein (Ja, es ist richtig, dass das Passwort nicht eingeblendet wird) und bestätigt dies auch mit einem ENTER.

  3. Nun muss die lnd.conf bearbeitet werden. sudo nano umbrel/lnd/lnd.conf tippt ihr jetzt in die Konsole ein, bestätigt mit ENTER und gebt das Passwort erneuet ein. ENTER.

  4. Unterhalb von [tor] tragt ihr

[Wtclient]
wtclient.active=1

ein. Das sollte dann so aussehen:

(Im gleichen Zuge könntet ihr in der lnd.conf eurer Node einen Namen geben, aber dazu gibt es genug Anleitungen im Internetz.)

Drückt jetzt STRG+X um das Bearbeiten zu beenden, bestätigt das mit einem Y und einmal ENTER um die lnd.conf abzuspeichern.

  1. Seid ihr aus der Config raus muss LND neu gestartet werden. Da es nicht immer klappt indem man die Umbrel-Node im UI neu startet, tragt ihr:
    echo 'export PATH="${PATH}:/home/umbrel/umbrel/bin"' >> ~/.bashrc && source ~/.bashrc ein und bestätigt mit ENTER.
    Ebenfalls ist es richtig, dass ihr keine Resonanz nach dem Befehl bekommt ob da was passiert ist oder nicht. Wartet (vorsichtshalber) 'ne Minute.

  2. Nun ist euer Tower-Client eingerichtet und müsst nur noch (mindestens) einen Tower hinzufügen, der über eure Node und dessen Channel wacht. Dazu nehmt den Befehl:
    lncli wtclient add 0274a6c5e936451bfd66da421941fe933edc95de94b36aec2f7b07ad9055fbe9e6@qvumwruxhk5sjc7aih4s6csrvmsh5uksknzosevxmwm7oumx3aacldyd.onion:9911 (dies ist mein Watchtower) und bestätigt mit ENTER.

  3. Zur Kontrolle ob alles funktioniert hat, gebt folgenden Befehl ein: lncli wtclient towers Hier sollte jetzt der Tower mit der IP-Adresse „0274a6c5e936451bfd66da421941fe933edc95de94b36aec2f7b07ad9055fbe9e6@qvumwruxhk5sjc7aih4s6csrvmsh5uksknzosevxmwm7oumx3aacldyd.onion:9911“ stehen.

Mit dem Command lncli wtclient add <pubkey@address.onion:9911> könnt ihr weitere Tower hinzufügen und sie auf euch aufpassen lassen.

Hier eine Liste mit weiteren Towern: Watchtower list · Issue #4 · openoms/lightning-node-management · GitHub

Habt ihr mehrere Tower eingerichtet sollte es unter lncli wtclient towers so aussehen:

Hoffentlich ist das alles ausführlich genug gewesen. Für Anregungen und Kritik bin ich natürlich offen. Lasst es mich wissen, falls euch was fehlt und/oder korrigiert werden muss.

Quellen:

17 „Gefällt mir“

Na, das ist doch mal was Erstrebenswertes.
Danke!

1 „Gefällt mir“

Klasse Tutorial. Danke @JanStr95 ich werde es direkt nach meinem Urlaub ausprobieren.

Hast Du vielleicht auch einen Tipp, wie ich unter Umbrel dynamische Fees einrichten kann?

Edit: ich glaube automatisierte Fees ist das bessere Wording für das, was ich suche.

1 „Gefällt mir“

Erstmal danke für dein Feedback. Zu den dyn.Fees kann ich dir aber leider auch nicht weiterhelfen. Würde mich aber auch interessieren.

Guten Abend, ich wollte mit

tail -f -n 10000 /mnt/hdd/mynode/lnd/logs/bitcoin/mainnet/lnd.log | grep WTCL
checken ob die Watchtower auch laufen.

Leider kommt bei mir der Output

2021-08-26 21:01:10.320 [INF] WTCL: (anchor) Client stats: tasks(received=0 accepted=0 ineligible=0) sessions(acquired=0 exhausted=0)

Oder dauert das eine weile nach erstellen der Channel? Die sind nämlich gerade zwei Stunden alt?
Gruß Oak

Das ist ein Befehl für den Raspi in Kombination mit myNode.
Gib mal lncli wtclient towers ein.

Hey das ist der Output

{
„towers“: [
{
„pubkey“: „0274a6c5e936451bfd66da421941fe933edc95de94b36aec2f7b07ad9 055fbe9e6“,
„addresses“: [
„jtnyj5eqenu4427zzooibhx37vblmb5basurl5uod7jn5sbmbzq6isqd.onion: 9911“
],
„active_session_candidate“: true,
„num_sessions“: 2,
„sessions“: [
]
},
{
„pubkey“: „033b2c7c309dd8cd61142bdff38f1d96f29467a763ced4c3da1bd09a8 b184b5a80“,
„addresses“: [
„s3yuns63hughwxmo26zr2uq27oeueplldlc6yilncx3ibwjb3ybr54ad.onion: 9911“
],
„active_session_candidate“: false,
„num_sessions“: 0,
„sessions“: [
]
},
{
„pubkey“: „025152a29dfc3bbcebd45f2421268fe1731784ef8fc61c1db9b4ceaa6 cdb25626a“,
„addresses“: [
„tz6n737lciznyyfzgjdm3h3mnpvv33ls7b4m7ywcsam7q62qg7hs2rqd.onion: 9911“
],
„active_session_candidate“: false,
„num_sessions“: 0,
„sessions“: [
]
}
]
}

Passt das so?
Ist es normal das es nur eine Aktive Session gibt? Num Sessions sind die Channel?

Gruß

Ist richtig so.
Nach jedem Lightning-Neustart wird ein neuer Tower ausgemittelt der über deine Node wacht.

Super Dankeschön :slight_smile:

1 „Gefällt mir“

Noobfreundlich, funktioniert auch mit Terminal und Mac OS.
Muss man da auch einen Port freigeben, so steht es im Guide?

1 „Gefällt mir“

Nein, muss man nicht.

1 „Gefällt mir“

Hat bei mir leider nicht funktioniert. Hab dann über das UI neugestartet und dann konnte ich Watchtower hinzufügen. Danke für das Tut.

1 „Gefällt mir“

Ich hab ja auch geschrieben, dass es nicht immer über das UI funktioniert. :grin:
Aber gut zu wissen. :v:t3:

Dann sollte die Aussage aber umgedreht sein. „Über die CMD klappt es nicht immer“. :stuck_out_tongue:

Du bist der erste, bei dem es mit dem Command per Konsole nicht funktioniert hat.
Ich weiß, dass es im UI nicht immer funktioniert. :grinning_face_with_smiling_eyes:

wo trage ich das ein?

In die Commando-Zeile wie z.B. PowerShell. Muss darüber halt in der Node eingeloggt sein.

ich nutze Putty. Eingeloggt war ich selbstverständlich.

Wenn du eingeloggt bist, gibste einfach den Command ein.

Thanks for this work!

Ich habe die lncli eingebunden, musste dennoch in den Docker Container:

$: docker ps
5b847ce74949 lightninglabs/lnd:v0.13.1-beta "lnd"

$: docker exec -it lnd /bin/ash
/: lncli wtclient add <pubkey@adrr.onion:port>

1 „Gefällt mir“