Umbrel lightning node

Uit BTCWiki.nl

Umbrel is één van de makkelijkste manieren om een Lightning node te beginnen!

Installeren

De podcast Satoshi Radio#Nodezaak heeft goeie instructies hoe Umbrel op te zetten. Umbrel is een Bitcoin node en Lightning node in één.

De stappen zijn grofweg:

  1. Koop #Hardware, verbind je USB-power, schijf (SSD of HDD), monteer de koeling
  2. Zet Umbrel op je SD-kaart, dit noemen we "flashen" en wordt in de podcast nodezaak precies uitgelegd.
  3. Start de node! Geen kennis van linux nodig.

Apps

Umbrel heeft een ingebouwde appstore die het makkelijk maakt om extra functionaliteiten uit je node te halen.

Apps in de Umbrel appstore
Naam Beschrijving
Mempool.space Een lokale blokexplorer die de data gebruikt van je node
BTC RPC Explorer Een lokale blokexplorer die de data gebruikt van je node
Samourai Server Een eigen server voor de Samourai Wallet
Specter Desktop Een wallet die het makkelijkt maakt om bijvoorbeeld een multisig setup te maken
Sphinx Relay Een applicatie die het mogelijk maakt om te chatten via het lightning netwerk en streaming payments implemeteert voor podcasts.
Ride the Lightning Een grafische interface om je lightning node te beheren.
Lightning Terminal Een grafische interface om je lightning node te beheren. Ook is het mogelijk om inkomende liquiditeit te kopen en uitgaande liquiditeit verkopen doormiddel van Lightning pool.
ThunderHub Een grafische interface om je lightning node te beheren.
LNbits Een open-source lightning wallet die het mogelijk maakt om meerdere lightningwallets te gebruiken op één node.
BTCPay Server Een paymentprocesor die het mogelijk maakt om Bitcoin en Lightning te accepteren zonder tussenkomst van een 3e partij.

Acties

Er zijn verschillende acties die je kan doen met je Umbrel node. Hieronder staan er een aantal uitgelegd.

Je node key vinden (Node Key / Lightning Address / URI)

Rechtsboven krijg je de optie "Lightning Address"

De termen Node Key, Node Pubkey, Lightning Address, Node ID en URI worden door elkaar heen gebruikt. Een node key ziet eruit als 03e691f81f08c56fa876cc4ef5c9e8b727bd682cf35605be25d48607a802526053 @ ug6wkjdnp5fq2iiyakjn7uewn2eyghpqyapzkgvh7hbsq6acmxtt6lqd.onion:9735. Het deel voor de @ is de node key. Het deel na de @ is de verbindingsinformatie.

In het Lightningscherm van Umbrel moet je op de 3 puntjes klikken (zie ook het plaatje) om je Lightning Address te vinden.

Kanaal openen

Uitgaande van een eigen Umbrel node als hierboven beschreven, onderstaand de mogelijke stappen om een kanaal te openen met een andere node. Om een kanaal te openen dient er een on-chain Bitcoin transactie plaats te vinden. (En voor het sluiten ook weer). Voor de gewone individu is het daarom aan te raden met slechts 1 andere node een kanaal te openen, en dan nog wel met een 'grote' node, dat wil zeggen een node met veel liquiditeit en veel uitgaande connecties. Dat laatste is belangrijk om een gewenste lightning transactie zo'n groot mogelijke slagingskans te geven.

De volgende stappen zijn gebaseerd op de video-serie 'Nodezaak' te zien op YouTube, vanaf minuut 4.

Ga naar Umbrel scherm

  • Kies Lightning uit het menu links.
  • Kies recht "+OPEN CHANNEL".
  • Plak in Lightning Address.
  • Geef de gewenste waarde in Satoshis in, bijvoorbeeld ter waarde van €100,-.
  • Stel de transaction fee in: stel in op lage waarde, bijv $2 en heb geduld (of stel hoger in voor snellere satisfactie)
  • Klik groene knop OPEN CHANNEL.

Wacht nu geduldig tot Active Channels op 1 springt en Max Send op het bedrag dat je geladen had; Het lijkt meteen of je kanaal 'geladen' is, maar afhankelijk van je fee zal je moeten wachten.

Er is nu een kanaal tussen je Umbrel LN en de Lightning.watch LN. De capaciteit zit vast in het kanaal en is in mindering gebracht op je btc-saldo bij Bitcoin Core;

Wallet koppelen

Vanuit de interface van Umbrel kun je makkelijk Lightning invoices maken en betalen, maar het is ook mogelijk om dit met een mobiele app te doen. De makkelijkste wallet om mee te werken is Zeus. Zeus is voor zowel Android (APK) als iOS beschikbaar en is open-source. De UX ziet er voor beide hetzelfde uit, dus de stappen blijven gelijk.

Ga naar Umbrel scherm

  • Kies "Connect Wallet"
  • Selecteer Zeus
  • Open Zeus op je telefoon
  • Kies "Scan lndconnect config"
  • Scan de QR-code weergeven in je Umbrel interface
  • Vink "Use Tor" en "Certificate Verification" beide aan (de laatste is niet noodzakelijk, maar een extra beveiliging) en druk op "Save Node Config"

Na een paar seconden zie je alle info in de app verschijnen en kun je zowel Bitcoin als Lightning betalingen doen en Lightning kanalen beheren rechtstreeks vanaf je eigen node waar je ook bent.

Inloggen via SSH

Een hoop commando's dienen via SSH te gebeuren. Dit is een manier om je node te beheren via een tekst-interface.

Vanaf een Windows 10-computer

Open PowerShell (WIN-R, powershell, enter) en typ onderstaand commando. Als het niet werkt, download dan PuTTY.

ssh -t umbrel@umbrel.local

Voer het wachtwoord in (zelfde als inlogwachtwoord van de webpagina), je zal niet zien dat je het wachtwoord aan het invoeren bent.

Vanaf een Mac of Linux-computer

Open je Terminal en typ onderstaand commando:

ssh -t umbrel@umbrel.local

Voer het wachtwoord in (zelfde als inlogwachtwoord van de webpagina), je zal niet zien dat je het wachtwoord aan het invoeren bent.

Alias (naam) en kleur instellen

Wil je een alias instellen voor je node? Besef eerst dat de informatie publiek wordt!

Let op: op dit moment wordt bij elke update de LND configuratie teruggezet naar de standaardinstellingen en zal je je alias opnieuw moeten invoeren.

  1. Log in op je node via SSH
  2. Open het config bestand: 'sudo nano umbrel/lnd/lnd.conf (dat is LND klein geschreven, niet iND). Hij zal je weer om je wachtwoord vragen (hetzelfde als eerder), en je zult weer niet zien dat je het wachtwoord invoert.
  3. U bent nu in de editor. Voeg alias=SOMENAME toe. Dit moet worden toegevoegd aan de eerste paragraaf. Ergens onder het blok [Application Options], niet in een ander blok.
  4. (Optioneel) zet color=#ff0000 of een andere hex kleur, op een nieuwe regel, net onder alias. vind een mooie kleur.
  5. Onderaan zie je de commando's die je kunt geven. Het dakje ^' betekent CTRL toets. ^X is eXit, dus gebruik CTRL-X om het bestand te verlaten. Bevestig dat je de buffer wilt opslaan met Y. Druk enter voor de bestandsnaam (niet veranderen).
  6. Nadat je de editor hebt verlaten, type 'cat umbrel/lnd/lnd.conf om naar de inhoud van het bestand te kijken.
  7. Start vervolgens de Umbrel node opnieuw op. Je kunt dit goed doen vanuit de Umbrel webinterface (Instellingen, Herstart)
  8. Als je publieke kanalen hebt, duurt het (max) 2 dagen voordat de nieuwe node zichtbaar is op 1ml.com.
  9. Als je RTL geïnstalleerd hebt, zou je de nieuwe node naam direct moeten zien na een herstart van RTL, of na opnieuw in te loggen. Een schone herstart van een node (via de webinterface) zou RTL ook opnieuw moeten starten.

Als je terminal bevriest, heb je misschien CTRL-S ingedrukt. Maak het bevriezen ongedaan met CTRL-Q.

Bekijken hoe veel routes je node kent

Log in via SSH en doe daarna

docker exec -i lnd lncli describegraph | grep channel_id | wc -l

Je krijgt het aantal kanalen terug, dit moeten er zeker meer dan 35 000 zijn. Zo niet, dan moet je nog even wachten totdat je node via het roddelcircuit de kanalen doorkrijgt. Het is hiervoor nodig dat je minstens 1 actief kanaal hebt en het kan tot 2 dagen duren. Hoe meer kanalen, hoe sneller het gaat.

Eerder gedownloade blockchaindata gebruiken

Mocht je overstappen van andere nodesoftware of heb je de bitcoin blockchain al eerder gedownload, dan kan je deze overzetten op je nieuwe installatie. Dit scheelt je de blockhaindata opnieuw downloaden. Bron: Umbrel GitHub [1]

  1. Zorg dat je de installatie hebt voltooid en Umbrel al een keer hebt opgestart met de externe schijf aangesloten.
  2. Sluit Umbrel af via de Settings pagina, haal de stekker uit het stopcontact en verwijder de externe schijf.

Omdat de externe schrijf nu als EXT4 geformatteerd is, kan deze niet in Windows / macOS gelezen worden. Als je geen linux hebt, kan je ook een Virtual Machine (VM) gebruiken of een live CD/USB. De live optie heeft bijna elke desktop installatie , zoals "Raspberry Pi Desktop for PC and Mac" [2]. Maak een VM aan in VirtualBox of zet hem op een USB stick.

  1. Kopieer de mappen "blocks" en "chainstate" van de eerdere installatie en plaats/vervang ze in /umbrel/bitcoin/ op je externe schijf.
  2. Ontkoppel de externe schijf, verbind hem weer met je nieuwe Umbrel node en start deze weer op.
  3. De blockchaindata wordt gecontroleerd voordat hij gebruikt kan worden, dus het kan even duren voordat je het inlogscherm te zien krijgt.

Ruimtegebrek op een custom install

Mocht je Umbrel niet op een Raspberry Pi hebben geïnstalleerd en je komt er later achter dat ruimte tekort komt, dan is het verplaatsen van de blockchaindata naar een andere locatie en optie (bijvoorbeeld een externe schijf). Zo hoef je niet opnieuw te beginnen met downloaden.

Stop Umbrel

cd /INSTALLATIEMAP/UMBREL bijvoorbeeld cd /home/gebruiker/umbrel

sudo ./scripts/stop

Kopieer de mappen "blocks" en "chainstate" naar een nieuwe locatie.

cp -r /ORIGINEEL/umbrel/bitcoin/blocks /NIEUW/umbrel/blocks

cp -r /ORIGINEEL/umbrel/bitcoin/chainstate /NIEUW/umbrel/chainstate

Bijvoorbeeld cp -r /home/gebruiker/umbrel/bitcoin/blocks /mnt/harddisk/umbrel/blocks

Controleer of er geen verschil is tussen de nieuwe en oude mappen. Bij geen antwoord is er geen verschil.

diff -qr /ORIGINEEL/umbrel/bitcoin/blocks /NIEUW/umbrel/blocks

diff -qr /ORIGINEEL/umbrel/bitcoin/chainstate /NIEUW/umbrel/chainstate

Verwijder de originele mappen als je hebt bevestigd dat de nieuwe map niet verschillend is.

rm -r /ORIGINEEL/umbrel/bitcoin/blocks

rm -r /ORIGINEEL/umbrel/bitcoin/chainstate

Verwijs naar de nieuwe plek op de originele locatie met een symbolische of softlink

ln -s /NIEUW/umbrel/blocks /ORIGINEEL/umbrel/bitcoin/blocks

ln -s /NIEUW/umbrel/chainstate /ORIGINEEL/umbrel/bitcoin/chainstate

Controleer of de symbolische link goed gelukt is. Het komt er in een andere kleur te staan, met het symbool ->

ls -la /ORIGINEEL/umbrel/bitcoin

Reboot en enjoy the free disk space!

sudo reboot

Een handmatige update doen

Als je Umbrel blijft hangen, dan kan je een handmatige update doen.

Log in via SSH (zie hierboven) en doe:

cd ~/umbrel && sudo scripts/update/update --repo getumbrel/umbrel

Umbrel zal nu updaten naar de laatste versie.

Bitcoin-cli commando's draaien

Verbind via SSH (ssh umbrel@umbrel.local) met je Umbrel node. Je kunt je bitcoin-cli commando's uitvoeren met docker exec -i bitcoin bitcoin-cli

LND-cli commando's draaien

Verbind via SSH (ssh umbrel@umbrel.local) met je Umbrel node. Je kunt je lncli commando's uitvoeren met docker exec -i lnd lncli

Bijvoorbeeld de status van je node

docker exec -i lnd lncli getinfo

Een bericht tekenen

Dit kan via de RTL-app, of op de commandline (via SSH):

Log in via SSH (zie boven) en doe:

docker exec -i lnd lncli signmessage HETBERICHT

Je krijgt dan je signature terug, hij staat tussen aanhalingstekens. De aanhalingstekens horen niet bij de signature/handtekening.

Een geïnstalleerde app via de commandline gebruiken

Je kan de verschillende apps ook via de commandline aanroepen. Bijvoorbeeld om extra features te gebruiken die (nog) niet in de GUI zitten. Het werkt iets anders dan normaal, omdat ze geïnstalleerd zijn in docker containers.

Lijst met geïnstalleerde apps / docker containers

docker container ls

In de lijst kan je kijken hoe de docker container van de app die je wilt gebruiken heet. Lightning Terminal heeft lightning-terminal_web_1 bijvoorbeeld.

Voer op de volgende manier commando's uit

docker exec -i APPNAAM COMMANDO

Omdat de apps in losse docker containers zitten die je aanroept met het app script, zijn de bestandspaden relatief tot de map van de app in /umbrel/app-data/APPNAAM. Dit geldt ook voor default settings, deze werken vaak niet doordat de apps in docker containers zitten. Houd hier dus rekening mee als je een app via de commandline aanroept. Dit verklaart de extra argumenten in het voorbeeldd.

Een voorbeeld is het recoveren van een pool account van lightning-terminal, mocht je per ongeluk de app hebben verwijderd met nog bitcoin op het account:

docker exec -i lightning-terminal_web_1 pool --rpcserver localhost:8443 --tlscertpath=~/.lit/tls.cert accounts recover

Een minimale kanaalgroote instellen (minchansize)

Pas je lnd.conf aan, zet onder Application Options de instelling minchansize=100000 zodat peers minimaal een kanaal van 100k sat moeten openen. Zie het kopje over het instellen van een alias voor informatie hoe je het configuratiebestand aanpast.

Balance of Satoshis (bos) installeren op je Umbrel node

balanceofsatoshis is een commandline-tool waarmee je met LND saldo's kan werken, ook kan je deze koppelen aan een eigen Telegram-bot om bijvoorbeeld makkelijk een LN-invoice aan te maken.

  1. node.js apt repository toevoegen curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash
  2. node.js installeren sudo apt-get install -y nodejs
  3. bos installeren sudo npm install -g balanceofsatoshis
  4. configuratie aanmaken mkdir -p .bos/umbrel/ en nano credentials.json

Bij een normale umbrel-installatie zou de volgende configuratie moeten werken

{ "cert_path": "/home/umbrel/umbrel/lnd/tls.cert",
"macaroon_path": "/home/umbrel/umbrel/lnd/data/chain/bitcoin/mainnet/admin.macaroon",
"socket": "localhost:10009" }

Verdere documentatie

DarthCoin guides

DarthCoin guides is een serie docs over Umbrel, Lightning en wallets setup, met tips, gotchas en troubleshooting. Startpunt:

Overige documenten van auteur DarthCoin (zie footer in boven genoemd startdocument):

  • Umbrel BTC/LN node - Troubleshooting manual
  • How to open LN channels with known peers
  • LNtxBot User Manual Guide
  • Umbrel BTC/LN node + LNDHub + Bluewa
  • node + LNbits - Getting started
  • How
  • Curated list of places fromin - The 2nd Fire Discovery by wo/man
  • Lending in a Bitcoin world

NGINX reverse proxy met SSL installeren voor Umbrel/BTCPay Server

Jorijn Schrijvershof heeft een handleiding geschreven waarmee het mogelijk is om BTCPay Server te bereiken buiten TOR om. Dit is natuurlijk reuze handig indien je met jouw webshop gebruik maken van BTCPay Server en zo zijn er nog wel meer toepassingen te bedenken.