USD Finans

Magasinet der gør dig klogere på penge

Balancer Lightning-kanaler med Loop: trin for trin

Har du nogensinde siddet med en spritny Lightning-kanal, som lynhurtigt bliver tømt for udgående likviditet, mens indgående kapacitet står tilbage som en parkeret lastbil uden hjul? Du er ikke alene. Mange node-ejere oplever, at deres satsning på Bitcoin Lightning hurtigt ender i ubalance – og dermed tabte routing-gebyrer og frustrerede brugere.

I denne guide zoomer vi ind på Lightning Loop – værktøjet fra Lightning Labs, som lader dig flytte satoshis flydende mellem on-chain og off-chain uden at knuse dit kanal-setup eller drukne i minegebyrer. Vi viser dig trin for trin, hvordan du:

  • Skruer op for indgående likviditet med Loop Out, så andre kan betale dig.
  • Pumper ny udgående likviditet ind via Loop In, så du kan sende og route igen.
  • Undgår unødvendige udgifter, fee-spidser og hængende swaps.

Uanset om du driver en hobby-node eller en mindre betalingsgateway, vil disse teknikker hjælpe dig med at holde pengestrømmen glidende – uden at lukke og åbne kanaler i blinde. Klar til at tage fuld kontrol over din Lightning-økonomi? Så læn dig tilbage og dyk ned i vores trin-for-trin-guide.

Forstå kanalbalancering og Loop: hvorfor og hvornår

For at bruge Lightning-netværket effektivt skal du hele tiden have den rette balance mellem indgående og udgående likviditet i dine kanaler:

  • Udgående likviditet (local balance): BTC der allerede ligger på din side af kanalen, og som du kan sende ud til andre.
  • Indgående likviditet (remote balance): BTC der ligger på modpartens side, så andre kan sende betalinger til dig.

En kanal bliver ubalanceret, når den ene side tømmes:

  • Har du solgt varer og modtaget mange betalinger, vokser local balance til 0 sats, mens remote balance fyldes helt op – du mister udgående kapacitet.
  • Har du selv betalt meget ud, kanalen tipper den modsatte vej – du mangler pludselig indgående kapacitet til at modtage flere betalinger.

Loop: Flyt likviditet uden at lukke kanaler

Lightning Labs’ Loop-tjeneste giver to operationer, som bytter likviditet mellem off-chain og on-chain og dermed retter op på ubalancer:

  1. Loop Out: Trækker sats ud af kanalen til en on-chain adresse. Resultat:
    • Din local balance falder (plads frigives til indgående betalinger).
    • Du modtager samme beløb on-chain minus gebyrer.
  2. Loop In: Sender sats fra on-chain ind i dine åbne kanaler. Resultat:
    • Din local balance stiger (mere udgående kapacitet).
    • Du betaler det on-chain beløb + gebyrer.

Mekanisk fungerer det som en submarineswap: en hash-timelock-kontrakt (HTLC) binder Lightning-betalingen og den on-chain transaktion sammen, så swap’en er atomisk – ingen af parterne kan snyde.

Alternativer og hvornår de giver mening

Metode Fordele Ulemper Typiske scenarier
Cirkulær rebalancering
(routere via andre noder)
• Ingen on-chain gebyrer
• Hurtig, billigt hvis gode ruter
• Kræver ruter med ledig kapacitet
• Kan fejle ved stram fee-grænse
Små til mellemstore justeringer, hyppig finjustering
Loop Out / Loop In • Fungerer uanset netværkstopologi
• Skaber/udløser on-chain likviditet
• On-chain miner fees + swap fee
• Afhænger af Loop-liquiditet
Når cirkulær rebalance ikke kan finde rute
Store beløb
Behov for on-chain BTC (skatte- el. bogføring)
Åbne/Lukke kanaler • Fuld kontrol over kapacitet & peers
• Mulighed for at skifte modpart
• To on-chain transaktioner (åbne + lukke)
• Downtime og potentiel ventetid
Gamle eller dyre kanaler
Skift til mere pålidelige peers
Større strategiske ændringer

Så hvornår vælger du hvad?

  • Prøv altid cirkulær rebalancering først – det er billigst, hvis en rute findes.
  • Brug Loop, når:
    • ingen passende rute findes
    • beløbet er for stort til at rute billigt
    • du har brug for midler on-chain (fx udveksling eller cold storage)
  • Luk/åbn kanaler ved strukturelle ændringer: du vil ud med en upålidelig peer, eller ønsker større samlet kapacitet.

Ved at kombinere metoderne fleksibelt – og forstå deres omkostninger – kan du holde dine kanaler perfekt trimmet og altid klar til at modtage og sende betalinger med lavest mulige gebyrer.

Forudsætninger og opsætning: lnd, Loop og sikkerhed

Inden du kan balancere kanaler med Loop, er det afgørende, at fundamentet – din Lightning-infrastruktur – er sat rigtigt op. Følgende tjekliste hjælper dig sikkert i gang:

1. Kørende lnd-node med midler og aktive kanaler

  • Din lnd skal være synkroniseret med Bitcoin-netværket (synced_to_chain=true i lncli getinfo).
  • On-chain wallet: Sørg for en passende saldo til on-chain gebyrer (1-2 × forventet swap-størrelse anbefales).
  • Aktive kanaler: Mindst én kanal skal være active, ellers har Loop intet sted at placere/fjerne likviditet fra.
  • Hold dig opdateret: Brug som minimum samme lnd-version som den Loop-release, du installerer (se github.com/lightninglabs/loop for matrix).

2. Installation af loop og loopd

  1. Hent seneste binære release eller byg fra kilde:
    wget https://github.com/lightninglabs/loop/releases/download/v0.24.0/loop-linux-amd64-v0.24.0.tar.gz
  2. Udpak og flyt binærerne til din $PATH:
    sudo install loop /usr/local/bin/ og sudo install loopd /usr/local/bin/
  3. Start loopd som service eller i egen terminalsession:
    loopd --network=mainnet (eller testnet)

Hvis lnd kører på en anden maskine, angiv RPC-sti og TLS-fil med --lnd.host, --tlscertpath og --macaroonpath.

3. Adgangskontrol: Tls og macaroons

  • TLS-certifikat: Loop stoler på det samme certifikat, som lnd bruger. Kopiér tls.cert til den maskine, hvor loopd kører, eller peg mod fildeling.
  • Macaroons: For fuld funktionalitet kræves typisk en invoice.macaroon og readonly.macaroon. Til automatisering (autoloop) kan du overveje en dedikeret macaroon med begrænsede permissions.
  • Opbevar filer krypteret og giv dem min. nødvendige filrettigheder (chmod 600).

4. Backup: Seed + channel.backup

En swap ændrer balances, men ikke kanalstrukturen. Alligevel er forsvarlig backup ufravigeligt:

  • 24-ords seed (BIP39): Gem offline og geografisk adskilt.
  • Static Channel Backup (SCB): Filen channel.backup i ~/.lnd/data/chain/bitcoin/mainnet/ (eller testnet) skal kopieres efter hver nye kanal – automatisér fx med rsync.
  • Test gendannelsesproceduren på testnet, før du kaster større beløb i spil.

5. Vælg netværk og reducer risiko

  • Testnet først: Øv dig i swaps uden økonomisk risiko. Loop understøtter både testnet og regtest.
  • Mainnet-budget: Start småt; husk, at både swap-fee, routing-fee og miner-fee betales i rigtige satoshier.
  • Monitorér mempoolen. Kør swaps når on-chain gebyrer er lave for at reducere totalomkostningen.

6. Sikre driftsforhold

  • Skab isoleret bruger til lnd/loopd (ingen root) og kør via systemd med PrivateTmp=true.
  • Hold ports sikre: Kun port 10009 (gRPC) og 9735 (Lightning-peer) behøver ekstern adgang.
  • Automatiske opdateringer er fine, men afvent community feedback på nye lnd– og Loop-releases for at minimere regressions.

Når ovenstående er på plads, har du en robust platform klar til både Loop Out og Loop In-swaps – og dermed til at balancere dine kanaler mere fleksibelt end ved klassisk genåbning eller manuel rebalancering.

Trin for trin: Skab indgående likviditet med Loop Out

Følgende fremgangsmåde viser, hvordan du i praksis frigør udgående kapacitet og skaber ny indgående likviditet i dine Lightning-kanaler ved hjælp af en Loop Out-swap.

1. Afdæk dit behov for indgående likviditet

  • Kør lncli listchannels og se kolonnerne LocalBalance vs. RemoteBalance. Er LocalBalance langt højere, kan du kun sende (ikke modtage) satoshis – du mangler indgående likviditet.
  • Tjek også lncli getinfo for num_pending_htlcs og generel kanal-sundhed, inden du starter en swap.

2. Hent prisestimat (quote) og forstå gebyrerne

$ loop quote --amt 500000 --swap_type OUT

Kommandoen returnerer fire tal:

Swap fee
Loop’s egen kommission (procentdel + minimumsgaranti).
Routing fee
Betales til Lightning-noden(e), der fragter HTLC’en til Loop-serveren.
Miner fee
Loop lægger en estimat for den on-chain transaktion, der krediterer din bitcoin-adresse.
Prepay fee
En lille sikkerhedsstillelse som refunderes, hvis swappen lykkes.

Hvis én af disse ser urimelig høj ud – eksempelvis på grund af mempool-køer – så vent til on-chain gebyrerne falder eller reducer swap-størrelsen.

3. Definér beløb og gebyrgrænser

$ loop out \ --amt 500000 \ --max_swap_fee 5000 \ --max_miner_fee 15000 \ --max_prepay_routing 2000 \ --label "indgående-500k"
  • --amt er beløbet, der flyttes ud af kanalerne og ind på din on-chain wallet.
  • Gebyr-flagsene sætter lofter; hvis Loop ikke kan udføre swap’en inden for disse, afbrydes processen automatisk.

4. Start loop out-swappen

Når ovenstående kommando er bekræftet, opretter lnd et off-chain HTLC, og Loop-serveren transmitterer en almindelig bitcoin-transaktion til den onchain-adresse, din node angiver.

5. Overvåg fremdriften

$ loop monitor$ lncli trackpayment <payment_hash>
  • Først går swap’en i status Initiated, dernæst PreimageRevealed, og til sidst Success.
  • I loop monitor kan du se, hvor mange blokke der mangler, før transaktionen anses som definitiv (typisk 3-6 på mainnet).
  • Tjek eventuelt transaktions-ID’et via en block-explorer for real-time confirmations.

6. Bekræft den nye indgående kapacitet

  • Når swap-status er Success, kør igen lncli listchannels. RemoteBalance er nu øget med nøjagtigt swap-beløbet minus off-chain gebyrer, mens LocalBalance er faldet tilsvarende.
  • Sammenlign også lncli walletbalance; den on-chain wallet bør være kredit­eret med amt - miner_fee.
  • Test modtagelse: Lad en ven eller en egen test-node sende en lille betaling til dig. Går den igennem ubesværet, har du reelt indgående likviditet.

7. Tip til timing og omkostningskontrol

  • Historisk er lørdag/søndag aften (UTC) billigst på on-chain; anvend --conf_target for lavere hastighed men lavere miner-fee.
  • Splitter du store swaps (f.eks. 2 M sat) i to mindre, kan du ramme flere kanaler og dermed balancere bredere.
  • Hold øje med loop terms; Loops maximum swap size kan ændre sig pr. release.

Opsummering

En Loop Out-swap konverterer Lightning-sat til on-chain-sat, hvilket øger din mulighed for at modtage i eksisterende kanaler uden at skulle lukke eller åbne nye. Ved at indhente quotes, sætte fornuftige gebyrlofter og overvåge både HTLC- og blockchain-delen kan du rebalancere sikkert og pris-effektivt.

Trin for trin: Skab udgående likviditet med Loop In

Loop In-swap’et er din hurtigste vej til ny udgående likviditet, når dine Lightning-kanaler er fyldt op på den indgående side, og du ikke længere kan sende sats ud. Følg trinene herunder for et gnidningsfrit forløb.

1. Afklar dit behov: Hvor meget skal flyttes?

  • Undersøg hver kanal i lncli listchannels. Kig på Local Balance (din udgående kapacitet) og Remote Balance (indgående).
  • Beregn samlet ønsket udgående kapacitet. En tommelfingerregel er at holde 30-50 % af den samlede kanalstørrelse som lokal balance.
  • Husk, at Loop In pumper flere kanaler på én gang – men ikke nødvendigvis jævnt. Systemet vælger de kanaler med mest brugbart routing-potentiale.

2. Sikr tilstrækkelige on-chain midler

  • Tjek din on-chain wallet med lncli walletbalance. Beløbet skal mindst dække:
    Loop In-beløbet + miners fee + Loop service-fee.
  • Brug lncli newaddress p2wkh til at modtage ekstra sats, hvis du mangler midler.
  • Sørg for mindst én UTXO med passende størrelse – for fragmenterede wallets kan en consolidation-tx være nødvendig.

3. Hent et prisestimat (quote)

loop quote in --amt <sat>
  • Output viser swap fee, miner fee (for Loop’s sweep-tx) og cltv expiry.
  • Vurder om gebyrerne er acceptable. Undgå høje miner-fees ved at vente på lavere mempool-load.

4. Sæt avancerede parametre

Når du kører på mainnet, er det værd at styre grænserne:

loop in \ --amt 2_000_000 \ --conf_target 6 \ --max_swap_fee 5000 \ --max_miner_fee 10000
  • --conf_target: Hvor hurtigt du vil have on-chain delen bekræftet (jo lavere, jo dyrere).
  • --max_swap_fee og --max_miner_fee: Afviser swap’en hvis prisen er højere.
  • Tilføj evt. --label for nemmere regnskab.

5. Start selve loop in-swappen

loop in --amt 2_000_000

I terminalen får du et Swap ID. Processen består af to faser:

  1. On-chain fase: Din node sender en funding-tx til et tidslåst script. Når den har det nødvendige antal confirmations, fortsætter Loop-serveren.
  2. Off-chain fase: Loop krediterer dine kanaler via en HODL-invoice, som først settles, når on-chain transaktionen er irreversible.

6. Overvåg status

loop monitor

Eller for én specifik swap:

loop track <SwapID>
  • Status hopper fra INITIATEDPREIMAGE_REVEALEDSUCCESS.
  • Ved HTLC_PUBLISHED kan du se den on-chain tx i en block-explorer.

7. Bekræft øget udgående kapacitet

lncli listchannels | jq '.channels[] | {chan_id, local_balance, remote_balance}'

Din local_balance bør være steget svarende til Loop In-beløbet minus routing-gebyrer. Test ved at sende en lille betaling til en betroet peer eller en Lightning faucet.

Almindelige faldgruber & tips

  • Utilstrækkelige midler: Husk at Loop In låser dine tilsendte satoshier i op til cltv-timeout (typisk 144 blokke). Send ikke hele din hot-wallet.
  • Fee-spidser: Stiger mempool-gebyrer markant, kan din funding-tx blive stuck → swap ender i expired. Brug --conf_target ≤ 6 for at få højere fee-rate fra start, eller anvend RBF (Replace-by-Fee) hvis din wallet understøtter det.
  • Kanaler med 0 HTLC-slots: Hvis alle dine kanaler allerede har fulde HTLC-tabeller, kan Loop ikke indsætte beløbet. Luk eller rebalance en kanal først.
  • Timeout-refunds: Skulle swappen mislykkes, refunderes sats automatisk til din on-chain adresse efter timeout minus swap-fee – men du mister tid og on-chain gebyr.
  • Sats på ro: Kør Loop In mens on-chain fees er lave (typisk weekender). Sæt --max_miner_fee konservativt.

Efter et par vellykkede swaps kan du med fordel automatisere processen via autoloop, som du finder beskrevet i næste afsnit.

Automatisering, best practices og fejlfinding

Loop indeholder en indbygget Liquidity Manager, der kan køre helt automatisk og derved spare dig for manuelt at holde øje med hver enkelt kanal. Funktionen aktiveres i loopd-konfigurationsfilen (~/.loop/loopd.conf):

[liquidity]autoloop = true# Udgående swap, når udgående kapacitet < 20 %min_outbound_percent = 20# Indgående swap, når indgående kapacitet < 15 %min_inbound_percent = 15# Maks samlet swapstørrelse pr. dagdaily_swap_limit_sat = 5_000_000# Gebyrloft (swap + routing + miner) i satssweep_fee_ppm = 3000max_premium_sat = 40000
  • min\_outbound\_percent/min\_inbound\_percent: Definerer hvornår Liquidity Manager må handle.
  • daily\_swap\_limit\_sat: Beskytter dig mod uventet mange swaps på én dag.
  • Gebyrlofter: Sikrer at autoloop ikke kører, hvis on-chain- eller routinggebyrer er for høje.

Efter genstart af loopd kan du følge planlagte swaps med:

loop liquidity listrulesloop liquidity suggestswaps

Best practices

  • Peer-valg: Åbn kanaler til noder med høj oppetid, lave fee-rater og god netværkscentralitet. Det reducerer risikoen for mislykkede autoloop-ruter.
  • Spred kapaciteten: Flere små kanaler giver autoloop større fleksibilitet end få store.
  • Tidsplanlæg swaps: Aktivér autoloop, men sæt lave sweep\_fee\_sat og sweep\_fee\_ppm. Dermed udløses swaps kun, når on-chain-gebyrer falder (typisk i weekenden).
  • Kost-tracking: Brug loop monitor, eksportér loggen til CSV eller integrér med Thunderhub/Balance of Satoshis for løbende at holde øje med samlede swap-omkostninger.
  • Regelmæssig backup: Husk at downloade channel.backup og skrive seed ~ hver gang nye kanaler oprettes – også selv om autoloop kun laver swaps.

Fejlfinding

  • Tjek status: loop swap list. Sidder den fast i INITIATED kan der mangle on-chain-bekræftelser. Øg evt. conf_target via bumpfee.
  • State HTLC\_PUBLISHED: Routing fandt modpart, men HTLC mangler preimage. Problemet ligger oftest hos swap-udbyderen – kontakt support efter 24 timer.

Mislykkede routes

Fejlmeldes ofte som temporary_channel_failure.

  • Prøv igen med højere max\_route\_fee eller flere outgoing-kanaler.
  • Check egne kanaler: er fee-policy for lav/høj? Er base\_fee sat til 0 msat?

Uventet høje gebyrer

  • Miner-gebyrer steg efter swap-initiering: swappen afventer fortsat samme conf_target, men markedsgebyret er nu højere.
  • Løsning: Brug lavere sweep\_conf\_target eller sæt sweep\_fee\_ppm i autoloop-reglerne.

Hvornår er alternativer bedre?

  • Cirkulær rebalancering (bos rebalance / lncli pay –keysend): Billigst når du selv har tilstrækkelig modgående likviditet internt. Ingen on-chain-gebyr.
  • Åbne en ny kanal: Giv mening hvis den eksisterende modpart er dyr eller upålidelig, eller hvis du ønsker større samlet kapacitet.
  • Lukke og genåbne kanal: Bruges sjældent blot for balance – men kan være smart, hvis en ældre kanal har ugunstig fee-policy eller er blevet dust-tung.

Ved at kombinere autoloop, sund kanalspredning og løbende overvågning kan du holde din Lightning-node likvid, billig og modstandsdygtig – uden at være lænket til terminalen døgnet rundt.

Indhold