Lightning Terminal
Tijd: 35 minuten
Lightning Terminal (LiT) geeft de gebruiker een mooi schilletje om bestaande tools van Lightning Labs. De tools zijn Loop, Faraday en Pool. Op dit moment is Loop goed te gebruiken door middel van LiT. Ook Pool werkt prima, maar is nog in preview fase. Faraday heeft slechts 1 functionaliteit in LiT, maar meer zal toegevoegd worden.

LiT use cases voor zover

  • Een visueel overzicht van de balans van jouw Lightning kanalen.
  • Kanalen balanceren via Loop met behulp van submarine swaps.
  • Balanceren doe je met on-chain satoshis met Loop In.
  • Je betaalt minder fees als je meerdere kanalen tegelijk balanceert.
  • Eenvoudig satoshis versturen naar je on-chain wallet met Loop Out.
  • Deelname aan de Lightning Network liquiditeit markt met Pool.
  • Downloadbaar overzicht van channels in CSV formaat met Faraday.
Een demo video kun je hier vinden.

Benodigdheden

  • Golang (update naar de nieuwste versie voordat je begint)
  • NodeJS
  • Yarn
  • Minimaal 250.000 sats per kanaal om gebruik te kunnen maken van Loop

LND configureren voor LiT

Als je LND hebt geïnstalleerd zonder speciale installatie tags, dan moet je LND even opnieuw installeren. Aangezien we LND opnieuw installeren met nieuwe tags, dienen de macaroon bestanden (bestanden die authenticatie verzorgen) verwijderd te worden. Na het opnieuw opstarten van de verse installatie, zullen de bestanden opnieuw aangemaakt worden.
Je channels en wallet blijven bestaan bij een herinstallatie van LND. Net als bij een update.
Heb je Thunderhub of andere tools draaien die op LND leunen? Dan dien je die na het opnieuw opstarten van LND ook opnieuw te starten.
Stop LND indien deze actief is.
1
sudo systemctl stop lnd
Copied!
Ga naar de bronbestanden map van LND om LND opnieuw te installeren met de juiste installatie tags.
1
cd ~/lnd
Copied!
Installeer LND met de juiste tags.
1
make install tags="autopilotrpc signrpc walletrpc chainrpc invoicesrpc routerrpc watchtowerrpc"
Copied!
Check voor macaroon bestanden.
1
ls -la ~/.lnd/data/chain/bitcoin/mainnet
Copied!
De macaroon bestanden die je moet verwijderen zijn. admin.macaroon, invoice.macaroon, readonly.macaroon router.macaroon .
Verwijder de macaroon bestanden.
1
rm -i ~/.lnd/data/chain/bitcoin/mainnet/*.macaroon
Copied!
Beantwoord de vragen met yes om elk bestand te verwijderen.
Start LND opnieuw. Hiermee worden ook nieuwe macaroons aangemaakt.
1
sudo systemctl start lnd
Copied!
Unlock je wallet met je wachtwoord.
1
lncli unlock
Copied!

Installatie Loop

Om kanalen te kunnen balanceren, hebben we de Loop software nodig. Ga eerst naar je home directory.
1
cd ~
Copied!
Download de broncode.
1
git clone https://github.com/lightninglabs/loop
Copied!
Ga de map in.
1
cd loop
Copied!
Pak de laatste versie/tag/release.
1
git checkout v0.14.1-beta
Copied!
Ga naar loop/cmd.
1
cd loop/cmd
Copied!
Installeer de loopd software.
1
go install ./...
Copied!
Test of het gelukt is.
1
loopd
Copied!
In de output zul je lezen dat Loop verbonden is met je LND.
1
2020-12-01 09:53:40.186 [INF] LOOP: Connected to lnd node '<jouw_node_naam>' with pubkey <public_key_van_jouw_node> (version v0.11.99-beta, build tags 'signrpc,walletrpc,chainrpc,invoicesrpc')
Copied!
Met Ctrl + C kun je loopd weer stop zetten.

Installatie Faraday

Navigeer terug naar je home directory.
1
cd ~
Copied!
Download de broncode.
1
git clone https://github.com/lightninglabs/faraday
Copied!
Ga naar de faraday map.
1
cd faraday
Copied!
Pak de laatste versie/tag/release.
1
git checkout v0.2.6-alpha
Copied!
Installeer de faraday software.
1
make && make install
Copied!
Test of het gelukt is.
1
faraday --version
2
3
# Verwachte output lijkt op: faraday version 0.2.6-alpha commit=v0.2.6-alpha-BLABLA
Copied!
Configureer de faraday software en check of het allemaal werkt. Op de plekken "VUL_USERNAME_IN" en "VUL_PASSWORD_IN" moet je de gegevens invullen die je tijdens de configuratie van Core hebt aangemaakt.
1
faraday --lnd.macaroondir=/home/ubuntu/.lnd/data/chain/bitcoin/mainnet --lnd.tlscertpath=/home/ubuntu/.lnd/tls.cert --lnd.rpcserver=127.0.0.1:10009 --connect_bitcoin --bitcoin.host=127.0.0.1:8332 --bitcoin.user=VUL_USERNAME_IN --bitcoin.password=VUL_PASSWORD_IN
Copied!
Zodra je te zien krijgt dat alles werkt, kun je faraday weer afsluiten met Ctrl + C.

Installatie Pool

Navigeer terug naar je home directory.
1
cd ~
Copied!
Download de broncode.
1
git clone https://github.com/lightninglabs/pool
Copied!
Ga naar de pool map.
1
cd pool
Copied!
Pak de laatste versie/tag/release.
1
git checkout v0.5.0-alpha
Copied!
Installeer de Pool software.
1
make install
Copied!
Test of het gelukt is.
1
poold
Copied!
Zodra je te zien krijgt dat alles werkt, kun je poold weer afsluiten met Ctrl + C.

Installatie Lightning Terminal

Navigeer terug naar je home directory.
1
cd ~
Copied!
Download de broncode van Lightning Terminal.
1
git clone https://github.com/lightninglabs/lightning-terminal
Copied!
Duik de code in.
1
cd lightning-terminal
Copied!
Pak de laatste versie/tag/release.
1
git checkout v0.5.0-alpha
Copied!
Installeer Lightning Terminal.
1
make install
Copied!

Configuratie

Het configureren van LiT gaat - zoals vele andere zaken in deze guide - via een configuratie bestand. In het bestand staan alle instellingen en tijdens het opstarten van LiT zullen de instellingen toegepast worden.
Navigeer terug naar je home directory.
1
cd ~
Copied!
Maak de .lit map aan.
1
mkdir .lit
Copied!
De configuratie van LND nemen we over in LiT. Aangezien we LND zullen opstarten zodra LiT wordt opgestart (daarover onder het kopje "automatiseren" meer), kunnen we de LND instellingen kopiëren.
1
cp .lnd/lnd.conf .lit/lit.conf
Copied!
Pas het bestand aan.
1
nano .lit/lit.conf
Copied!
Er moet veel aangepast worden. Ten eerste moeten alle vierkante haken omgezet worden naar een hashtag. Stond er eerst [Application Options], maak daar dan # LND - Application Options van. Ook moet iedere instelling de prefix lnd. krijgen. Heb je de guide gevolgd en de configuratie van LND doorlopen, dan heb je een bestand dat hier op lijkt nadat je de genoemde wijzigingen hebt gemaakt.
1
# LND - Application Options
2
lnd.tlsautorefresh=true
3
lnd.restlisten=0.0.0.0:8080
4
lnd.rpclisten=0.0.0.0:10009
5
lnd.listen=127.0.0.1:9735
6
lnd.maxpendingchannels=5
7
lnd.accept-amp=true
8
lnd.accept-keysend=true
9
lnd.color=ZELF_VERZINNEN_A
10
lnd.alias=ZELF_VERZINNEN_B
11
12
# LND - Tor
13
lnd.tor.active=true
14
lnd.tor.v3=true
15
lnd.tor.streamisolation=true
16
17
# LND - Bitcoin
18
lnd.bitcoin.active=true
19
lnd.bitcoin.mainnet=true
20
lnd.bitcoin.node=bitcoind
21
22
# LND - bitcoind
23
lnd.bitcoind.dir=/home/ubuntu/.bitcoin
24
lnd.bitcoind.rpcuser=DIT_WEET_JE_A
25
lnd.bitcoind.rpcpass=DIT_WEET_JE_B
26
lnd.bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
27
lnd.bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
Copied!
Voeg aan de "LND - Application Options" lnd.lnddir=~/.lnd toe. Daarna voeg je de onderstaande regels toe voor LiT. Let op: verander "ZELF_VERZINNEN_B" in iets anders. Dit is het wachtwoord waarmee je LiT in kunt straks.
1
# LiT - Application Options
2
lnd-mode=integrated
3
network=mainnet
4
httpslisten=0.0.0.0:8443
5
uipassword=ZELF_VERZINNEN_B
Copied!
Tot slot voeg je onderaan deze regels toe voor Faraday:
1
# Faraday - Application Options
2
faraday.connect_bitcoin=true
3
4
# Faraday - LND
5
faraday.lnd.rpcserver=127.0.0.1:10009
6
7
# Faraday - Bitcoin
8
faraday.bitcoin.host=127.0.0.1:8332
9
faraday.bitcoin.user=DIT_WEET_JE_A
10
faraday.bitcoin.password=DIT_WEET_JE_B
Copied!
Let goed op alle velden die voor jou persoonlijk zijn! Zoals usernames en passwords.
Uiteindelijk zal lit.conf er ongeveer zo uit zien.
1
# LND - Application Options
2
lnd.tlsautorefresh=true
3
lnd.restlisten=0.0.0.0:8080
4
lnd.rpclisten=0.0.0.0:10009
5
lnd.listen=127.0.0.1:9735
6
lnd.maxpendingchannels=5
7
lnd.accept-amp=true
8
lnd.accept-keysend=true
9
lnd.color=ZELF_VERZINNEN_A
10
lnd.alias=ZELF_VERZINNEN_B
11
lnd.lnddir=~/.lnd
12
13
# LND - Tor
14
lnd.tor.active=true
15
lnd.tor.v3=true
16
lnd.tor.streamisolation=true
17
18
# LND - Bitcoin
19
lnd.bitcoin.active=true
20
lnd.bitcoin.mainnet=true
21
lnd.bitcoin.node=bitcoind
22
23
# LND - bitcoind
24
lnd.bitcoind.dir=/home/ubuntu/.bitcoin
25
lnd.bitcoind.rpcuser=DIT_WEET_JE_A
26
lnd.bitcoind.rpcpass=DIT_WEET_JE_B
27
lnd.bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
28
lnd.bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
29
30
# LiT - Application Options
31
lnd-mode=integrated
32
network=mainnet
33
httpslisten=0.0.0.0:8443
34
uipassword=ZELF_VERZINNEN_B
35
36
# Faraday - Application Options
37
faraday.connect_bitcoin=true
38
39
# Faraday - LND
40
faraday.lnd.rpcserver=127.0.0.1:10009
41
42
# Faraday - Bitcoin
43
faraday.bitcoin.host=127.0.0.1:8332
44
faraday.bitcoin.user=DIT_WEET_JE_A
45
faraday.bitcoin.password=DIT_WEET_JE_B
Copied!

Firewall

W kunnen LiT benaderen over port 8443, vandaar dat we die open zetten.
1
sudo ufw allow 8443 comment "Port voor Lightning Terminal"
Copied!

Automatiseren

Hoe laat je Lightning Terminal (inclusief LND, Pool, Loop en Faraday) automatisch opstarten? Daarvoor maken we een Lightning Terminal service bestand aan.

LiT service aanmaken

1
sudo nano /etc/systemd/system/lit.service
Copied!
Plak er dit in.
1
[Unit]
2
Description=Lightning Terminal
3
Requires=bitcoind.service
4
After=bitcoind.service
5
6
[Service]
7
User=ubuntu
8
ExecStart=/home/ubuntu/go/bin/litd
9
PIDFile=/home/ubuntu/.lit/lit.pid
10
Restart=always
11
TimeoutSec=120
12
RestartSec=30
13
14
[Install]
15
WantedBy=multi-user.target
Copied!
Sla de wijzigingen op met Ctrl + X en bevestig met Y.
Breng het systeem op de hoogte van de nieuwe service.
1
sudo systemctl enable lit
Copied!

LND service stoppen

Voordat je de nieuwe service kan starten, moet je de LND service stoppen. Dit moet omdat de LiT service LND opstart samen met Loop, Faraday en Pool.
1
sudo systemctl stop lnd
Copied!
Deactiveer de LND service zodat het in de toekomst niet meer gebruikt wordt.
1
sudo systemctl disable lnd
Copied!

Oude services updaten

Aangezien we LND nu opstarten door middel van LiT, is het van belang dat services die voorheen op de LND service leunde, nu op de LiT service leunen. We moeten dus de RTL en Thunderhub service (en alle anderen die je misschien hebt draaien) aanpassen als volgt: wijzig Wants=lnd.service en After=lnd.service naar Wants=lit.service en After=lit.service. Hieronder staan voorbeelden.

RTL service updaten

Als je de RTL service wil aanpassen, voer dan eerst dit commando uit:
1
sudo nano /etc/systemd/system/rtl.service
Copied!
Verander dan de "Wants" en "After" regels zoals hierboven beschreven.
1
Wants=lit.service
2
After=lit.service
Copied!
Sla de wijzigingen op met Ctrl + X en bevestig met Y.

Thunderhub service updaten

Als je de Thunderhub service wil aanpassen, voer dan eerst dit commando uit:
1
sudo nano /etc/systemd/system/thunderhub.service
Copied!
Herhaal de stappen zoals je de RTL service ook hebt aangepast.

Breng systeem op de hoogte

De Pi moet op de hoogte gebracht worden van de aangepaste services. Dat doe je zo:
1
systemctl daemon-reload
Copied!
Het zal om je wachtwoord vragen. Vul dat in en druk op enter.

LiT service starten

Start de LiT service als volgt.
1
sudo systemctl start lit
Copied!
Wil je zien of de service is opgestart, voer dan dit uit.
1
systemctl status lit
Copied!
Wil je een overzicht van de status over meerdere sessies, gebruik dan dit commando.
1
sudo journalctl -f -u lit
Copied!

RTL en Thunderhub herstarten

Tot slot dienen de RTL en Thunderhub services herstart te worden. Als je meerdere tools bovenop LND had draaien, herstart die dan ook.
1
sudo systemctl restart rtl
2
sudo systemctl restart thunderhub
Copied!

Onderliggende CLI gebruiken

Niet alle functionaliteiten van LND, Pool, Loop en Faraday heb je tot je beschikking in de Lightning Terminal interface. Voor sommige zaken wil je alsnog de CLI van de desbetreffende tool gebruiken. Maar aangezien we nu achter LiT draaien, moeten we veel flags meegeven bij het uitvoeren van commando's. Dit heeft te maken met het feit dat alle tools op dezelfde port luisteren en van hetzelfde certificaat gebruik maken. Gelukkig kunnen we aliassen aanmaken om ons leven een stukje aangenamen te maken.
Open het .bashrc bestand.
1
nano ~/.bashrc
Copied!
Plak onderaan het bestand de volgende drie regels:
1
# (...)
2
# Hierboven staat allemaal andere zooi. Lekker laten staan.
3
4
alias lit-loop="loop --rpcserver=localhost:10009 --tlscertpath=/home/ubuntu/.lnd/tls.cert --macaroonpath=/home/ubuntu/.loop/mainnet/loop.macaroon"
5
alias lit-pool="pool --rpcserver=localhost:10009 --tlscertpath=/home/ubuntu/.lnd/tls.cert --macaroonpath=/home/ubuntu/.pool/mainnet/pool.macaroon"
6
alias lit-faraday="frcli --rpcserver=localhost:10009 --tlscertpath=/home/ubuntu/.lnd/tls.cert --macaroonpath=/home/ubuntu/.faraday/mainnet/faraday.macaroon"
Copied!
Sla het op met Ctrl + X en bevestig met Y. Log even uit met exit en log opnieuw in via SSH. Pas na uit- en inloggen zijn de aliassen van kracht.
Nu kun je gemakkelijk gebruik maken van de CLI's van Pool, Loop en Faraday zonder dat je veel hoeft te typen. Het lit-loop commando vervangt loop, lit-pool vervangt pool en lit-faraday vervangt frcli. Probeer eens het commando pool getinfo uit te voeren. Je zal een error zien die hier op lijkt:
1
[pool] rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp [::1]:12010: connect: connection refused"
Copied!
Als je nu het commando lit-pool getinfo doet, zal je informatie zien over Pool:
1
{
2
"version": "0.5.0-alpha commit=v0.5.0-alpha",
3
"accounts_total": 1,
4
"accounts_active": 0,
5
"accounts_active_expired": 0,
6
"accounts_archived": 1,
7
"orders_total": 1,
8
"orders_active": 0,
9
"orders_archived": 1,
10
"current_block_height": 686241,
11
"batches_involved": 0,
12
"node_rating": {
13
"node_pubkey": "PUB_KEY",
14
"node_tier": "TIER_1"
15
},
16
"lsat_tokens": 1,
17
"subscribed_to_auctioneer": false,
18
"new_nodes_only": false,
19
"market_info": {
20
}
21
}
Copied!

Lightning Terminal gebruiken

Het is goed om te weten dan Pool, Loop en Faraday niet worden opgestart zolang er geen wallet unlocked is. Zodra de LiT service opstart en daarmee dus ook LND aangooit, moet je even lncli unlock draaien en je wachtwoord invullen. Pas daarna zullen de andere tools werken.
Open https://IP VAN JE PI:8443 in de browser om in te loggen in Lightning Terminal en aan de slag te gaan met de tool.

Walkthrough

Aan de slag met het LiT dashboard? Volg dan deze walkthrough van Lightning Labs.

Updaten

Er zijn vier (vijf als je LND meerekent) onderdelen die je moet updaten. Dat zijn LiT, Pool, Loop en Faraday (en LND). Voor de LND update zou je naar het desbetreffende hoofdstuk moeten kijken. Alle anderen worden hier besproken.

Loop

Stop de LiT service.
1
sudo systemctl stop lit
Copied!
Ga naar de applicatie directory.
1
cd ~/loop
Copied!
Update de repository met de laatste wijzigingen via Git.
1
git fetch --all
Copied!
Toon de laatste versie/tag/release.
1
git describe --tags `git rev-list --tags --max-count=1`
Copied!
Haal de wijzigingen op van de laatste versie.
1
git checkout <OUTPUT VAN DE VORIGE STAP> #bijvoorbeeld v0.14.1-beta
Copied!
Ga naar cmd.
1
cd cmd
Copied!
Installeer de loopd software.
1
go install ./...
Copied!

Lightning Terminal

Stop de LiT service.
1
sudo systemctl stop lit
Copied!
Ga naar de applicatie directory.
1
cd ~/lightning-terminal
Copied!
Update de repository met de laatste wijzigingen via Git.
1
git fetch --all
Copied!
Toon de laatste versie/tag/release.
1
git describe --tags `git rev-list --tags --max-count=1`
Copied!
Haal de wijzigingen op van de laatste versie.
1
git checkout <OUTPUT VAN DE VORIGE STAP> #bijvoorbeeld v0.5.0-alpha
Copied!
Installeer Lightning Terminal.
1
make install
Copied!
Last modified 1d ago