Tak, máme za sebou lehký populárně teoretický úvod. Víme co jsou a k čemu jsou Uzly, k čemu slouží Kanály a proč je dobré mít kanály nastavené “tak akorát“. Tohle jsme potřebovali projít, abychom se dostali k důležité části naší série a to je “kde sakra zjistit jestli mi Uzel a Kanály fungují dobře“. Nechci se ve své příspěvku věnovat nástrojům typu RTL nebo ThunderHub. Jsou to velmi užitečné nástroje a získáte pomocí nich spoustu informací o provozu Vašeho uzlu. To nejdůležitější, z mého pohledu, však musíte hledat jinde. Bez nadsázky mohu říci, že analýza “UnForwarded transactions” je nejdůležitější činností správce uzlu. Jenom ta totiž poskytuje informace o tom, zdali Vaše kanály jsou nastaveny tak “akorát” .
Kde najít informace?
Všechny potřebné informace naleznete v logu vašeho Lightning Network démona. V Hydranode používáme distibuci CADR založenou na Debianu a jako démona Lightning Network máme LND. Logy lnd je uložen v /var/log/lnd-system-mainnet/bitcoin/mainnet/lnd.log
. Abychom měli usnadněnu práci při vyhledávání informací, tak si logy také ukládáme do systému Graylog. Následující příklady tedy budou používat výstupy z log souboru i z Graylogu.
Jednoduché vyhledání o nezpracovaných požadavcích může vypadat například takto:
Grep z log souboru
root@HYDRAnode:~# grep "insufficient bandwidth" /var/log/lnd-system-mainnet/bitcoin/mainnet/lnd.log|grep WRN
2024-07-27 01:10:22.290 [WRN] HSWC: ChannelLink(9d122fe17a0bfca6072abc3d71ec5fff795dc8f66a667d49fc04899f6b8a9026:1): insufficient bandwidth to route htlc: 4049880183 mSAT is larger than 1770478261 mSAT
2024-07-27 01:10:58.962 [WRN] HSWC: ChannelLink(e3887802f7b3a07cdae12dbc0733bd0f6f8e84587c54c346e61b2db2f6b386fe:2): insufficient bandwidth to route htlc: 100287789 mSAT is larger than 0 mSAT
2024-07-27 01:23:29.002 [WRN] HSWC: ChannelLink(e3887802f7b3a07cdae12dbc0733bd0f6f8e84587c54c346e61b2db2f6b386fe:2): insufficient bandwidth to route htlc: 51874541 mSAT is larger than 0 mSAT
2024-07-27 03:21:08.698 [WRN] HSWC: ChannelLink(9d122fe17a0bfca6072abc3d71ec5fff795dc8f66a667d49fc04899f6b8a9026:1): insufficient bandwidth to route htlc: 2854584796 mSAT is larger than 1770478261 mSAT
2024-07-27 04:42:58.642 [WRN] HSWC: ChannelLink(da65b09580228d0afa8add0f5369453a8d58d38d6ea2f9ca4680cd3e406d00b8:1): insufficient bandwidth to route htlc: 9501696908 mSAT is larger than 2894394520 mSAT
Výpis z Graylogu
V obou dvou příkladech dostáváme totožné informace:
-
-
- identifikace kanálu
- velikost transakce požadovaná sítí
- dostupná kapacita kanálu v odchozím směru
-
Spojením těchto informací spolu s velikostí poplatků nastavených na daném kanálu a pochopitelně s trochu delší historií monitorování (v tomto směru je užitečnějším nástrojem Graylog) poměrně jednoduše dospějete k závěrům zdali:
-
- je velikost kanálu odpovídající velikostem transakcí, které uživatelé tvoří
- jsou poplatky nastavené na kanálu optimální
Dvě základní špatné situace
Klasika, prostě krajní řešení. Oba dva případy znamenají neefektivní použití Vašich cených Bitcoinů nebo Satoshi. Oba dva jsou špatné, protože nepřináší efekt Vám ani síti.
Příliš nízké (nulové) poplatky
K této chybě dospějete při laborování s kanály patrně velmi rychle a možná si jí ani nevšimnete. Způsobíte ji tak, že otevřete kanál s nulovými nebo velmi nízkými poplatky (nulové poplatky jsou default hodnota v případě použití lncli) na některý z žádaných cílových uzlů. Síť tuto nabídku okamžitě zaregistruje, využije nabídku nižších poplatků a pošle přes Vás tolik transakcí kolik kapacita Vašeho kanálu zvládne. Výsledkem je, že balance kanálu je na straně druhého uzlu a vy přes ten kanál již žádnou transakci nepošlete. Zároveň jste přišli o poplatky za routing, protože v průběhu té bouře transakcí jste měli poplatku nula :-(. Pravděpodobnost, že by došlo k přesunu balance zpět na Vaši stranu je velice nízká. Museli byste najít obdobně atraktivní uzel a otevřít k němu kanál o podobné kapacitě.
Jednu pozitivní vlastnost tato situace má a tou je to, že jste získali pěkný testovací kanálna němž si můžete testovat výši poplatků, při které se již síť nebude pokoušet využívat Váš kanál pro další transakce (viz parsování logů výše).
Příliš vysoké poplatky
Opačnou situací (ale lépe řešitelnou) je otevření kanálu s příliš vysokými poplatky. V takovém případě síť vždy najde pro transakce levnější cestu a přes Váš uzel (resp. kanál) nebude transakce posílat. Pokud byste situaci nesledovali a kanál nechali v takovémto stavu, tak výsledek je stejný jako v předchozím případě. Mrtvě jste alokovali Vaše cené Bitcoiny a Vy nevyděláváte a síť nemá z Vaší práce prospěch.
Naštěstí se dá tato situace řešit lépe než v předchozím případě. Postupným snižováním poplatků dosáhnete toho, že síť začne Váš kanál akceptovat a využívat. Buďte však opatrní. Příliš rychlé snižování může způsobit razantní překročení akceptovatelné hranice a síť může Vaši kapacitu velmi rychle využít a dostat se do předchozího stavu. V nastavování poplatků se hodně řiďte pořekadlem “spěchej pomalu”.
Nějaká rychlá a užitečná rada?
Systém LightningNetwork je velmi dynamický a tudíž asi žádná rada dlouho nevydrží. Tak snad pouze tu, že aktuálně se forwarding transakcí zastaví někde při poplatcích 5500 SATs/ppm. Vyšší poplatky (pokud chcete transakce routovat) tedy nemá smysl nastavovat.
Stejně jako v předchozích případech si Vás dovoluji požádat o podporu. Pokud Vás informace v článku zaujaly, můžete mě podpořit pár SATy. Stačí kliknout na ikonu.