Lightning Node Onderhoud
Een simpele uitleg over goede gewoontes en gebruiken voor je node onderhoud
Intro aantekening
Alle aspecten die hier gepresenteerd worden zijn vanuit mijn eigen perspectief, na 25+ jaar in IT tech & support voor eindgebruikers, servers en enterprises. Na 10+ jaar in Bitcoinland, vele apps en oplossingen te hebben getest in de afgelopen 2 jaar, ben ik begonnen met het helpen van Umbrel gebruikers en begon ik hun gedrag te observeren bij het gebruik van een LN node.
Ik werd verzocht deze gids te schrijven door een van m’n abonnees op m’n SubStack. Dus hier is hij.
Introductie
Als LN node beheerder hebben we ook grote verantwoordelijkheden naar onze peers en zelfs vrienden en familie die met onze node verbonden zijn. Dat betekent dat we met zorg en aandacht om moeten gaan met onze node apparaten. Een node draaien is een serieuze opgave en beheerders moet het niet zien als een lolletje.
Dus een goed onderhoud en goede zorg voor je node apparaat is een ABSOLUTE MUST. Ik heb gezien hoeveel nieuwe node beheerders deze aspecten niet serieus nemen, en dat heeft een invloed op iedereen, niet alleen op hun zelf.
Waarom beïnvloedt het de rest?
Een peer node die niet betrouwbaar is (99%) kan betalingen op veel routes verstoren
Een onbetrouwbare node beïnvloedt scores van alle peers op nodes die wel goed zijn
Een onbetrouwbare node zal geldmiddelen in dode kanalen houden, waarbij peers die geldmiddelen nodig hebben
Ik zal hier uitleggen wat goede gebruiken / gewoontes zijn die een node beheerder in acht moet nemen als hij / zij een betrouwbare node wil. Het maakt niet uit of je een node voor persoonlijk gebruik of voor zakelijk gebruik (verkopers/winkeliers) draait, het gaat er om hoeveel je om je node geeft.
KEY ASPECTS
Herstart / sluit je node alleen af wanneer het echt nodig is voor software updates, databases schoonmaken, wijzigingen in configuratie, etc.
Hou je node online zoveel als je kan. Afsluiten voor een korte periode is OK, de kanalen zullen in orde zijn, niemand zal ze sluiten als je de onderhoudsperiode aankondigt aan je peers.
Gebruik een UPS (Uninterruptible Power Supply) met genoeg accu om je node apparaat + internet router online te houden in geval van stroomuitval. Of in ieder geval genoeg om jou tijd te geven het apparaat netjes af te sluiten, als de stroomuitval meer dan een paar uur of een paar dagen duurt. Het is belangrijk om je data te beschermen tegen verlies en corruptie.
Als je budget het toestaat en je gebruik van de node is voornamelijk voor zaken, gebruik dan een apparaat met een RAID implementatie. Geen software, maar hardware RAID.
Hardware. Het is erg belangrijk om betrouwbare hardware te gebruiken, geen speelgoed. Speelgoed is prima om te leren, omdat het goedkoop is, maar niet betrouwbaar op de lange termijn. Dus kies je hardware zorgvuldig, gebaseerd op je “leer niveau” (beginner, gevorderd, productie, enterprise).
Maak backups! Backups zijn als BTC prijs dips, je weet maar nooit wanneer je ze nodig hebt. Dus maak ze met regelmaat.
LND schrijft continu naar channel.db en wallet.db en bevat al je belangrijke data. Dit zijn de meest belangrijke bestanden op je node. De rest kan met gemak worden gereconstrueerd op elk gewenst moment. Maar die twee bestanden kunnen niet in real-time gebackupped worden en alleen de laatste versie is valide.
SCB Backup is een soort van “lite export” van je channels.db, op een specifiek moment, dat genoeg basic informatie bevat over je kanalane om ze te kunnen sluiten en je geldmiddelen onchain te kunnen redden.
CLN implementatie biedt andere soort bestanden, en met hsm.secret is het veel makkelijker om kopiën van de database te maken.
USE CASES IN DE PRAKTIJK
A. Hardware
Als je voor het eerst een nieuwe node begint te draaien zou je jezelf als eerste af moeten vragen: waarom draai ik deze node? Dan bouw je je apparaat met de hardware die je nodig hebt voor je use-case en je verhuist dat alleen naar een andere configuratie wanneer het nodig is.
Leer- / studie apparaat
Op dit niveau kun je prima een Raspberry Pi apparaat gebruiken, makkelijk om te installeren en samen te stellen, weinig stroom consumptie en ziet er leuk uit. Vertrouw niet te veel op dit soort machines. Voor leren en oefenen is het prima, je zult een hoop leren. Maar het is niet 100% betrouwbaar.
Zelfs als je voor een Raspberry Pi gaat, zorg dat het tenminste 8Gb RAM heeft en een goede SSD drive. Ook de stroom van de adapter is erg belangrijk. Een foutieve of niet originele zal fouten maken en fouten opstapelen, en je zult niet weten waarom. Het komt door die kleine stroom adapter.
MicroSD kaartjes falen ook vaak, dus zorg dat je altijd een backup hebt, klaar om in te vallen wanneer de oude faalt. Ze zijn erg gevoelig voor stroomonderbrekingen.
Deze kleine apparaten zijn beroemd om hun falen, voor verschillende redenen. Dus zelfs als je in de “leerfase” bent wordt het aangeraden om een UPS te gebruiken. Het zal je meer nachtrust geven.
Geavanceerd apparaat
Wanneer je klaar bent en geleerd hebt hoe je een node draait, wordt het tijd om je hardware te upgraden. Je wilt nu een mee betrouwbaar apparaat, die meer verbindingen, meer kanalen, snellere betalingen aan kan, en je meer gemoedsrust geeft dat je geldmiddelen niet binnen 1 of 2 weken in een recovery mode belanden door één of ander crash.
Als je budget “genereus” genoeg is kun je voor een goede tweedehands desktop PC gaan. Veel kantoren verkopen hun apparaten na 1-2 jaar voor bijna geen geld. En sommige apparaten, zelfs barebones, zijn super goede machines voor een node. Ze komen ook meestal met minimaal 8Gb en soms zelfs koopjes voor 16Gb (!!!).
Waarom barebones?
Omdat ze relatief klein zijn (de mijne is hetzelfde formaat als een RPi en is zonder ventilator fans)
Omdat ze soms 2 SSD drives kunnen bevatten, of zelfs meerdere NVM drives (die veel beter zijn dan SSD)
Omdat ze betere ventilatie hebben en soms zelf met passieve koeling zijn (zonder fans)
Omdat je afraakt van de USB drive verbinding die de RPi gebruikt. Die USB verbinding is de zwakste schakel voor een RPi node.
Omdat de hardware robuuster en duurzamer is dan een RPi.
CPU maakt niet echt uit, voeg gewoon 2 goede SSD drives toe voor de RAID en je zit goed!
UPS is wel een must-have. Waarom? Omdat meestal wanneer er een stroomstoring is, die tezamen komt met ongeregeld voltage, pieken, flikkeren, etc. Dat is voldoende om de stroombron van je apparaat te vernielen. Meestal is de stroombron het eerste dat faalt, waarbij het de rest beschermt. Maar je weet het nooit. Een UPS houd de boel gezond en houdt de internet verbinding ook online.
Onthoud: een node hoeft er niet fraai uit te zien, maar wel stabiel te zijn.
Ik zou aanraden om een goed apparaat te vinden, met RAID chip op het moederbord, zodat het in ieder geval 1 RAID configuratie op het BIOS niveau aan kan. Wat betekent dit? Het betekent dat je een RAID volume kan bouwen, direct in de BIOS, van 2 drives, zodat data tegelijkertijd naar 2 drives wordt geschreven. Dus wanneer 1 drive “ziek wordt” of dood gaat, kun je de data nog steeds van de tweede schijf herstellen, en zal hij nog steeds werken. Je kunt je apparaat afsluiten, de zieke harddisk vervangen en het RAID systeem zal het dubbelen RAID systeem weer volledig opbouwen binnen een paar minuten. Geen data verlies, geen kanalen gesloten, geen geldmiddelen verloren.
Enterprise apparaat
Wanneer je klaar bent om een node te draaien voor een serieus bedrijf dat 100% draait op die node, wordt het tijd om serieus na te bedenken over het draaien van een 24/7/365 node. Als je je core node hebt beveiligd geeft dat je meer flexibiliteit over waar en wanneer je je enterprise apps en oplossingen draait.
Ik zou dit scenario hiervoor volgen:
Gebruik een hosted node oplossing (Voltage, Nodl, toegewijde node VPS) die wordt beheerd door professional in node architectuur, waarbij ze alleen het core gedeelte aanbieden (Bitcoin + LN node) met hoge beschikbaarheid en support.
Gebruik een ander apparaat, thuis of op werk, of een remote VPS, waar je de andere apps installeert voor je node: BTCPay, LNBits, Thunderhub, RTL etc, en dan verbindt je die met je node.
Dat is alles wat je nodig hebt voor een high-availability oplossing, met bijna geen kans dat je je geldmiddelen, kanalen, peers, tijd, klanten, etc. verliest.
B. Data backup en restore
Het belangrijkste is de wallet seed. Dat is het eerste wat je moet bewaren en beveiligen, in een offline password manager zoals Keepass of Vaultwarden.
LND nodes database backups
Voor LND nodes heb je twee soorten van opslag nodig, die hersteld kunnen worden:
SCB backups - een offline kopie van de staat van je kanalen, die genoeg informatie bevat om kanalen te sluiten (samen met je seed) en financiën te redden uit de kanalen naar een onchain wallet. Hou in gedachten: het channels.backup bestand kan ALLEEN gebruikt worden met je node seed! Maak een kopie van je van dit SCB bestand elke keer wanneer je een kanaal opent / sluit. Of beter nog, maak scripts die dit bestand kunnen aanmaken op iedere moment dat je een kanaal opent/sluit. En dan rsync gebruikt op de remote locatie. Het hoeft niet voor elke transactie te zijn die je node uitvoert.
De laatste staat van channels.db en wallet.db. Deze bestanden KUN JE NIET backuppen wanneer ze in gebruik zijn, of zelfs als je de node afsluit en een kopie maakt, ze zijn niet bruikbaar, omdat ze veranderen wanneer je de node opstart.
De “laatste status” oplossingen zijn ALLEEN zinvol voor het herstellen van een dode node. Wanneer je apparaat door is vanwege hardware oplossingen of niet opstart vanwege software, maar je nog steeds de bestanden kunt benaderen. Maak dan een kopie van deze twee bestanden op een externe schijf (ze kunnen groot zijn) en gebruik ze later wanneer je je node herbouwt.
Je hebt twee stappen om een LND node te herstellen / herbouwen:
A. ZONDER kanaal staat/statistieken
Om je geldmiddelen te herstellen ZONDER de kanalen, kun je een SCB backup gebruiken die automatisch sluit en je geldmiddelen in een onchain wallet herstelt. Dat is de makkelijkste manier en heb ik hier beschreven in punt 1 en 3.
Ik kan je sterk aanbevelen om optie 3 te gebruiken en terwijl je je geldmiddelen aan het herstellen bent in Blixt, kun je een nieuwe NodeID, nieuwe seed, nieuwe wallet, nieuwe identiteit met je oude apparaat opbouwen. Later kun je gewoon de geldmiddelen naar je nieuwe node verhuizen vanuit Blixt, of ze gewoon als mobiele privé node gebruiken, een kleine toevoeging aan je thuis-node.
B - MET kanaal staat / statistieken
Om een node te herstellen MET de kanalen intact, alswel de laatste staat, zul je wat stappen moeten uitvoeren om de omgeving voor te bereiden (zoals uitgelegd in deze gids, punt 7 of 8).
Als je node is gecrashed maar je kunt nog steeds de bestanden benaderen, dit is het meest fortuinlijke moment, heb je nog twee taken:
Kopieer de wallet.db en channel.db vanuit de niet-startende node naar ergens anders. Channel.db kan groot zijn, dus misschien is een USB stick niet genoeg. Kijk eerst naar de grootte.
Wanneer je die twee bestanden hebt weten te borgen, begin je met je node te bouwen, vanaf het begin of als je een vorige kopie hebt, volledig herstel. LET OP! Wanneer je herstelt gebruik je of die twee backed-up bestanden, of je slaat ze over en overschrijft ze later. Je moet altijd de laatste staat gebruiken.
Wanneer je de node software herbouwt kun je de optie kiezen om te herstellen vanuit je seed words (“restore from seed”) zodat je dezelfde NodeID en encryptie sleutels kunt gebruiken als je vorige node, waarbij je dezelfde wallet.db en channel.db kunt gebruiken. Als je een andere seed/nodeID gebruikt zullen die bestanden onbruikbaar zijn, en niet te ontsleutelen!
Dit is het deel waarin je de data folders moet “reconstrueren”. Als je niet vanuit een volledige kopie herstelt die de folders al bevat waar wallet.db en channel.db voorheen waren, zul je de node software op moeten bouwen vanaf het begin, dan laten beginnen, om dan de folders te herbouwen en synchroniseren en dan te stoppen. Kopieer de 2 bestanden naar hun locatie en herstart de node. Klaar.
Dan kun je je node herstarten. Hij zal bijwerken en de 2 bestanden netjes opnieuw gebruiken, en al je kanalen zullen terug zijn, het heeft alleen wat tijd nodig om blocks te downloaden en syncen.
CLN nodes database backups
Deze implementatie van nodes is een stuk makkelijker en je kunt een database met z’n geschiedenis makkelijk bewaren en kopiëren, in de vorm van een simpele kleine database genaamd “hsm_secret”.
Dit hele proces wordt uitgelegd in de handleinding voor CLN.
C. Onderhoud en software updates
Ok, dus vele gebruikers vragen me over updates en hoe vaak ze dit moeten doen.
Het antwoord is simpel: wanneer het nodig is. Precies; niet elke keer, maar wel wanneer het nodig is.
Waarom? Omdat het niet altijd nodig is :) Als iets prima werkt, zonder fouten, betekent dat niet dat een nieuwe software versie automatisch beter is. Nieuwe features of apps die je niet nodig hebt, zijn geen redenen om te updaten. Stabiliteit is belangrijker dan nieuwe features.
Aanbevelingen:
Spring niet gelijk in het updaten van je software op het moment dat het uitkomt of wanneer het je issues van je node niet fixt. Sommige updates zijn klein maar belangrijk.
Lees aandachtig de release notes en kijk of de update voordelig is voor je, of het een bestaande bug oplost. Als het niets oplost is het niet noodzakelijk dat je gelijk update. Wacht wat langer voor een belangrijke release, er is geen reden om gelijk op de update te springen. Soms zijn updates ook te snel vrijgegeven en bevatten ze bugs, soms niet eens ontdekt door de devs. Shit happens, het zijn ook maar mensen. Dus wacht 1-2 dagen voordat je update en kijk hoe anderen de update ervaren.
OS update zijn belangrijker dan software updates. Dus let meer op OS updates en pas ze toe wanneer ze nodig zijn.
Wanneer je je OS update, stop altijd als eerste de node. Sommige vereisten kunnen docker componenten en andere modules zijn die de node software beïnvloeden. Dus het OS wordt bijgewerkt en sluit het apparaat af. Ja, geen simpele herstart, maar een shut down, om een paar seconden te geven dat het geheugen geleegd kan worden en opnieuw geïnitialiseerd kan worden. Het is een goede gewoonte om ook de drive clusters in goed evorm te houden en het geheugen schoon te houden van slecht dingen.
Voordat je de node software gaat updaten, zorg ALTIJD dat je eerst het OS update.
RPi gebruikers hebben doorgaans weinig OS updates omdat de node software samen het OS komt, wat meestal een aangepast versie is van Debian OS, aangepast voor RPi.
Voor non-RPi gebruikers, zou ik sterk aanraden om Debian Linux als OS te gebruiken. Het is het meest robuust, beter met checken van het filesystem, minder glitterende desktop onzin, voor een node moet je minimalistisch zijn, je gebruikt het niet continu zelf.
Maak dingen niet moeilijker met VMs, Ubuntu servers die een hoop ruimte en geheugen innemen. Een node heeft dat niet nodig. Je hebt gewoon een basis nodig om een node te draaien.
Ik denk dat dit genoeg aspecten voor je zijn om een betere node operator te worden die z’n eigen avonturen zal gaan bleven in deze fascinerende wereld van nodes.
Ik hoop dat je de beste node zal draaien die je kunt draaien, en dat ik je genoeg informatie heb gegeven om een node in goede omstandigheden te draaien. Happy Lightning!
MAY THE ₿ITCOIN BE WITH YOU!
Als je DarthCoin’s werk waardeert, kun je wat satoshis via LN sturen:
of gebruik Lightning Address naar darthcoin@getalby.com of darthcoin@stacker.news of darthcoin@ln.tips
Als je je niet wilt abonneren op deze substack, alle DarthCoin Bitcoin gidsen worden ook aangekondigd op dit toegewijde Telegram Kanaal, voor makkelijk nalezen.
Om je te abonneren op substack, klik hier: