https://bitcoinwiki.nl/api.php?action=feedcontributions&user=Brisk&feedformat=atomBitcoinWiki.nl - Gebruikersbijdragen [nl-informal]2024-03-28T08:31:49ZGebruikersbijdragenMediaWiki 1.39.3https://bitcoinwiki.nl/index.php?title=Transacties&diff=1812Transacties2021-04-24T22:03:38Z<p>Brisk: </p>
<hr />
<div>Een '''transactie''' is een verplaatsing van [[Bitcoin]], die verstuurd wordt via het [[Bitcoin_node#Netwerk|bitcoinnetwerk]] en uiteindelijk in een [[Blockchain#Blokken|blok]] terechtkomt.<br />
<br />
Er zit een verschil tussen [[On-chain en Off-chain (2e laag-betalingen)|on-chain en off-chain transacties]]. Deze pagina gaat over transacties op de [[blockchain]]: on-chain transacties.<br />
<br />
''Via [[OP_RETURN]] is het mogelijk om data toe te voegen aan transacties, en zo [[Timestamping]] en [[RGB smart contracts]] mogelijk te maken.''<br />
<br />
== Termen ==<br />
<br />
=== Coinbase ===<br />
: Dit is de eerste transactie in een blok. (Alleen) deze transactie heeft speciale regels: er mogen in deze transactie nieuwe bitcoin worden gemaakt door de [[Mining|miner]], zo lang ze zich aan de [[Bitcoin#Consensusregels|regels houden]].<br />
<br />
=== Witness data ===<br />
: Dit zijn de handtekeningen die bewijzen dat de inputs echt uitgegeven mogen worden (dat de inputs daadwerkelijk bij een persoon of [[Multisig|groep personen]] horen).<br />
<br />
=== [[UTXO]] ===<br />
: Een Unspent Transactie-output, oftewel niet-uitgegeven bitcoin. Elke transactie heeft nieuwe outputs, die later uitgegeven kunnen worden. Als ze nog niet zijn uitgegeven (dus geen input zijn van een volgende transactie), zijn het Unspent Transactie-outputs: UTXO's. Een UTXO moet altijd volledig worden uitgegeven.<br />
<br />
=== Double spend ===<br />
: Als één input meerdere keren uitgegeven wordt. Dit kan niet voorkomen, en Bitcoin is de eerste die dit probleem heeft opgelost.<br />
<br />
== Inhoud transactie ==<br />
De transactie heeft informatie over de bitcoin die worden uitgegeven (dit zijn de inputs van een transactie), en waar de bitcoin naartoe worden gestuurd (de outputs van de transactie).<br />
<br />
Technisch gezien:<br />
{| class="wikitable"<br />
|+<br />
|-<br />
! Veld !! Beschrijving !! Grootte<br />
|-<br />
| Verson no || Momenteel altijd 1 || 4 bytes<br />
|-<br />
| Flag || Momenteel 0001 als er Witness_data is || Optionele 2-byte array<br />
|-<br />
| In-counter || Het aantal inputs || 1 - 9 bytes<br />
|-<br />
| Lijst van inputs || Na de [[#Coinbase|Coinbase]] (de eerste transactie) zijn dit de inputs van de transactie (wat op zijn beurt de outputs zijn van vorige transacties) || Zoveel inputs als de In-counter<br />
|-<br />
| Out-counter || Het aantal outputs || 1 - 9 bytes<br />
|-<br />
| Lijst van outputs || Na de [[#Coinbase|Coinbase]]-transactie zijn dit de outputs waar de bitcoin naartoe worden gestuurd || Zoveel outputs als de Out-counter<br />
|-<br />
| Witnesses || Een lijst Witnesses, het bewijs dat de input uitgegeven mogen worden || Verschilt<br />
|-<br />
| lock_time || (Optioneel) extra voorwaarden: deze transactie mag pas op een bepaalde [[Blockchain#Blokken|blokhoogte]] worden uitgegeven || 4 bytes<br />
|}<br />
<br />
=== Coinbase ===<br />
De coinbasetransactie is de enige speciale transactie in een blok. Het is de eerste transactie in het blok. In de coinbasetransactie worden de bloksubsidie en transactievergoedingen vastgelegd door de miner (of miningpool) die de juiste hash heeft gevonden. De bloksubsidie en de transactievergoeding worden verstuurd naar een bitcoinadres waar deze miner (of miningpool) de geheime sleutel van heeft. Vervolgens moet de miner minimaal 100 blokken wachten voordat de bitcoin kunnen worden verplaatst. De miner moet zich bij het maken van de coinbasetransactie houden aan de concensusregels en nooit meer claimen dan volgens de regels is toegestaan. Als hij dat wel doet, dat zal de rest van het netwerk het blok negeren.<br />
<br />
=== Kosten ===<br />
De outputs van een transactie moeten altijd kleiner zijn dan de inputs. Je mag slechts de bitcoin uitgeven die je in de inputs geeft, en geen nieuwe bitcoin creëeren in een normale transactie. <br />
<br />
'''Het verschil tussen de inputs en de outputs is zijn de transactiekosten'''. Je wallet regelt dit vanzelf voor jou. De transactiekosten kun je weergeven als een aantal [[Bitcoin#Eenheden|satoshi]] per byte. Zo kan je laten zien hoe veel een transactie ''relatief'' kost, ten opzichte van de grootte. We noemen dit '''sat/vB'''.<br />
<br />
[[Mining|Miners]] willen hun blokken altijd zo slim mogelijk vullen. Ze hebben maar 1 megabyte om te vullen, dus willen die megabyte zo slim mogelijk volzetten met dure transacties. Ze zullen altijd kijken naar de duurste transacties ''per byte''.<br />
<br />
== Alles verplicht uitgeven (Change-adressen) ==<br />
Een [[UTXO]] moet volledig worden uitgegeven, maar de [[UTXO]] die jouw wallet gaat uitgeven is mogelijk groter dan het bedrag dat je wil betalen. In dat geval wordt er een change-adres in je transactie gezet, een deel wordt teruggestuurd naar je eigen wallet.<br />
Zie het als betalen met 10 euro voor een brood van 2 euro. Je geeft in de transactie me de supermarkt het briefje van 10 euro aan de kassamedewerker. Deze houdt 2 euro en geeft je 8 euro terug.<br />
<br />
== Zie ook ==<br />
* [https://beginnenmetbitcoin.com/#ep6 Aflevering 6] van de [[Beginnen met Bitcoin]]-podcast legt het ook uit.</div>Briskhttps://bitcoinwiki.nl/index.php?title=Overleg:Genesis_Blok&diff=1811Overleg:Genesis Blok2021-04-24T21:58:48Z<p>Brisk: Nieuwe pagina aangemaakt met 'Zijn de dubbele spaties aan het begin van een zin een subtiele verwijzing naar Satoshi of tikfout? Nu i.i.g. niet consequent gebruikt.'</p>
<hr />
<div>Zijn de dubbele spaties aan het begin van een zin een subtiele verwijzing naar Satoshi of tikfout? Nu i.i.g. niet consequent gebruikt.</div>Briskhttps://bitcoinwiki.nl/index.php?title=Genesis_Blok&diff=1810Genesis Blok2021-04-24T21:57:00Z<p>Brisk: </p>
<hr />
<div>De [[blockchain]] bestaat uit een aantal blokken met gebundelde [[transacties]]. Gemiddeld elke 10 minuten wordt er een nieuw blok aan de 'ketting' [[Mining|toegevoegd]]. <br />
<br />
Het eerste blok wordt ook wel '''Genesis Block''' genoemd, met een verwijzing naar het bijbelse verhaal over het ontstaan van de aarde en het heelal. Huidige clients verwijzen naar dit block als block 0, al werd vroeger het genesis block gezien als block 1.<br />
<br />
Het [https://mempool.space/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f Bitcoin Genesis blok] is gemaakt op 3 januari 2009 en was het startsein voor de lancering van het Bitcoin netwerk. Het Genesis blok wijkt op een aantal punten af van alle latere blokken:<br />
* Het Genesis blok heeft (uiteraard) geen verwijzing naar een vorig blok.<br />
* Het Genesis blok staat in zijn geheel in code in de Bitcoin programmatuur, 'hard coded'.<br />
* De 'reward' van het Genesis blok is verstuurd naar het adres [https://mempool.space/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa], maar deze kan niet uitgegeven worden.<br />
<br />
=== Bericht in de coinbase parameter ===<br />
De tekenreeks <code>5468652054696D65732030332F4A616E2F32303039204368616E63656C6C6F72206F6E206272696E6B206F66207365636F6E64206261696C6F757420666F722062616E6B73</code> die onder het veld [[coinbase]] van de transactie te vinden is, bevat het bericht: "''The Times 03/Jan/2009 Chancellor on brink of second bailout for banks''". Dit is een verwijzing naar een krantenkop van de Britse krant The Times van die dag, waarin de minister van financiën van Groot Brittanië 'op het punt staat voor de tweede keer banken te redden'. Het bericht is zowel een timestamping mechanisme, het block kon niet gemined worden voor de krantenkop gepubliceerd was, als een statement over het bestaande financiële stelsel, waarin banken door gemeenschapsgeld worden ondersteund.{{Quote|The Times 03/Jan/2009 Chancellor on brink of second bailout for banks}}<br />
Algemeen wordt geconcludeerd dat Nakamoto hiermee aangaf dat Bitcoin als een alternatief voor het bancaire systeem bedoeld is, dat geen redding nodig heeft, sterker, niet 'gered' kan worden, omdat het Bitcoin systeem geen schulden herbergt.<br />
<br />
Het duurde nog enkele dagen voordat [https://mempool.space/block/00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048 blok 1] werd gevonden.<br />
<br />
=== Timestamp ===<br />
Hoewel de gemiddelde tijd tussen Bitcoin blocks tien minuten is, is de timestamp van het volgende block een volle zes dagen na het genesis block. Een interpretatie hiervan is dat Satoshi al een tijd werkte aan Bitcoin en dat de ''The Times'' voorpagina hem activeerde om het netwerk te releasen. Hij zou toen het genesis block kunnen hebben gemined met de timestamp in verleden om met de headline te corresponderen. Een andere mogelijkheid is dat hij zes dagen gemined heeft om een zo laag mogelijk hash (zo veel mogelijk voorloopnullen) te vinden voor hij verder ging met block 1. De prenet hypothese stelt dat het genesis block op 3 januari was gevonden, maar dat Satoshi zes dagen gebruikt heeft om de client te testen, om bij de release de testblokken die hij op het genesis block had gemined te verwijderen.<br />
<br />
===Transactie informatie===<br />
<pre>{<br />
"hash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",<br />
"confirmations": 672894,<br />
"strippedsize": 285,<br />
"size": 285,<br />
"weight": 1140,<br />
"height": 0,<br />
"version": 1,<br />
"versionHex": "00000001",<br />
"merkleroot": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",<br />
"tx": "See 'Transaction IDs'",<br />
"time": 1231006505,<br />
"mediantime": 1231006505,<br />
"nonce": 2083236893,<br />
"bits": "1d00ffff",<br />
"difficulty": 1,<br />
"chainwork": "0000000000000000000000000000000000000000000000000000000100010001",<br />
"nTx": 1,<br />
"nextblockhash": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048",<br />
"coinbaseTx": {<br />
"hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0804ffff001d02fd04ffffffff0100f2052a01000000434104f5eeb2b10c944c6b9fbcfff94c35bdeecd93df977882babc7f3a2cf7f5c81d3b09a68db7f0e04f21de5d4230e75e6dbe7ad16eefe0d4325a62067dc6f369446aac00000000",<br />
"txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",<br />
"hash": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",<br />
"size": 204,<br />
"vsize": 204,<br />
"version": 1,<br />
"confirmations": 672893,<br />
"vin": [<br />
{<br />
"coinbase": "04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73",<br />
"sequence": 4294967295<br />
}<br />
],<br />
"vout": [<br />
{<br />
"value": 50,<br />
"n": 0,<br />
"scriptPubKey": {<br />
"asm": "04f5eeb2b10c944c6b9fbcfff94c35bdeecd93df977882babc7f3a2cf7f5c81d3b09a68db7f0e04f21de5d4230e75e6dbe7ad16eefe0d4325a62067dc6f369446a OP_CHECKSIG",<br />
"hex": "4104f5eeb2b10c944c6b9fbcfff94c35bdeecd93df977882babc7f3a2cf7f5c81d3b09a68db7f0e04f21de5d4230e75e6dbe7ad16eefe0d4325a62067dc6f369446aac",<br />
"reqSigs": 1,<br />
"type": "pubkey",<br />
"addresses": [<br />
"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"<br />
]<br />
}<br />
}<br />
],<br />
"blockhash": "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",<br />
"time": 1230988505,<br />
"blocktime": 1230988505<br />
},<br />
"totalFees": "0",<br />
"subsidy": "50",<br />
"miner": {<br />
"name": "Satoshi",<br />
"link": "https://bitcoin.org",<br />
"identifiedBy": "payout address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"<br />
}<br />
}</pre></div>Briskhttps://bitcoinwiki.nl/index.php?title=Bitcoin_accepteren_als_winkel&diff=1809Bitcoin accepteren als winkel2021-04-24T21:46:39Z<p>Brisk: </p>
<hr />
<div>Het is goed mogelijk om als winkel bitcoin te accepteren als betaalmiddel. Als je veel kleine transacties zult verwerken (lage eurowaarde), bekijk dan eerst het verschil tussen [[On-chain en Off-chain (2e laag-betalingen)|On-chain en Off-chain transacties]].<br />
* Handmatig is het eenvoudigst, maar ook het meeste werk. Als ondernemer gebruik je je eigen [[Bitcoin opslaan|bitcoinwallet]], en als iemand wat bij je komt kopen maak je een ontvangstadres of [[Lightning]] invoice aan.<br />
* Er is software zoals [[BTCPayServer]]. Winkels draaien dit zelf. De software handelt betalingen af. Er zit een ingebouwde winkel in, en het integreert met WooCommerce, Shopify, Drupal, Magento en PrestaShop. Ook is het mogelijk zelf een "integration" te maken om te koppelen met je winkel.<br />
* Het Nederlandse bedrijf [https://www.bitkassa.nl/ BitKassa] helpt ondernemers met het ontvangen van bitcoinbetalingen.<br />
* Er zijn opties voor consumenten om [[Betaalkaarten met bitcoin|betaalkaarten]] te gebruiken waar je (meestal via het VISA-netwerk) mee betaalt.<br />
<br />
== Prijzen ==<br />
Prijzen zal je als ondernemer vaak nog neerzetten in euros of dollars. [[BTCPayServer]] en BitKassa regelen dit voor je. Zo kunnen je klanten een herkenbare [[Bitcoin_gebruiken#Unit_of_account_.2F_rekeneenheid|rekeneenheid]] gebruiken. Zodra bitcoin meer geaccepteerd is, en mensen meer in bitcoinwaarde denken, kan je overstappen op prijzen in bitcoin. Als je europrijzen aanhoudt, overweeg dan ook in je voorwaarden op te nemen dat terugbetalingen gebeuren in europrijzen op het moment van terugbetalen.<br />
<br />
== Belastingen ==<br />
Uiteraard dien je voor omzet gemaakt in bitcoin, belasting te betalen.<br />
<br />
:Als u voor uw diensten of leveringen wordt betaald in cryptovaluta, moet u deze omrekenen naar euro’s. Het omgerekende bedrag rekent u tot uw omzet.<br />
<br />
''De [https://www.belastingdienst.nl/wps/wcm/connect/nl/werk-en-inkomen/content/cryptovaluta belastingdienst] heeft meer informatie.''</div>Briskhttps://bitcoinwiki.nl/index.php?title=Umbrel_lightning_node&diff=1808Umbrel lightning node2021-04-24T21:43:02Z<p>Brisk: /* Acties */</p>
<hr />
<div>Umbrel is één van de makkelijkste manieren om een [[Lightning]] node te beginnen!<br />
<br />
== Installeren ==<br />
De podcast [[Satoshi Radio#Nodezaak]] heeft goeie instructies hoe Umbrel op te zetten. Umbrel is een [[Bitcoin node]] en Lightning node in één.<br />
<br />
De stappen zijn grofweg:<br />
# Koop [[Lightning#Hardware|#Hardware]], verbind je USB-power, schijf (SSD of HDD), monteer de koeling<br />
# Zet Umbrel op je SD-kaart, dit noemen we "flashen" en wordt in de podcast [[Satoshi Radio#Nodezaak|nodezaak]] precies uitgelegd.<br />
# Start de node! Geen kennis van linux nodig.<br />
<br />
== Apps ==<br />
Umbrel heeft een ingebouwde appstore die het makkelijk maakt om extra functionaliteiten uit je node te halen.<br />
{| class="wikitable"<br />
|+Apps in de Umbrel appstore<br />
! Naam<br />
!Beschrijving<br />
|-<br />
|[[Mempool.space]]<br />
|Een lokale blokexplorer die de data gebruikt van je node<br />
|-<br />
|[[BTC RPC Explorer]]<br />
|Een lokale blokexplorer die de data gebruikt van je node<br />
|-<br />
|[[Samourai|Samourai Server]]<br />
|Een eigen server voor de Samourai Wallet<br />
|-<br />
|[[Specter|Specter Desktop]]<br />
|Een wallet die het makkelijkt maakt om bijvoorbeeld een multisig setup te maken<br />
|-<br />
|[[Sphinx Relay]]<br />
|Een applicatie die het mogelijk maakt om te chatten via het lightning netwerk en streaming payments implemeteert voor podcasts.<br />
|-<br />
|[[RTL|Ride the Lightning]]<br />
|Een grafische interface om je lightning node te beheren.<br />
|-<br />
|[[Lightning Terminal]]<br />
|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.<br />
|-<br />
|[[ThunderHub]]<br />
|Een grafische interface om je lightning node te beheren.<br />
|-<br />
|[[LNbits]]<br />
|Een open-source lightning wallet die het mogelijk maakt om meerdere lightningwallets te gebruiken op één node.<br />
|-<br />
|[[BTCPayServer|BTCPay Server]]<br />
|Een paymentprocesor die het mogelijk maakt om Bitcoin en Lightning te accepteren zonder tussenkomst van een 3e partij.<br />
|}<br />
== Acties ==<br />
Er zijn verschillende acties die je kan doen met je Umbrel node. Hieronder staan er een aantal uitgelegd.<br />
<br />
=== Je node key vinden (Node Key / Lightning Address / URI) ===<br />
[[Bestand:Umbrel-Lightning-Address.jpg|miniatuur|Rechtsboven krijg je de optie "Lightning Address"]] <br />
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.<br />
<br />
In het Lightningscherm van Umbrel moet je op de 3 puntjes klikken (zie ook het plaatje) om je Lightning Address te vinden.<br />
<br />
=== Kanaal openen ===<br />
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.<br />
<br />
De volgende stappen zijn gebaseerd op de video-serie [https://youtu.be/ROiaj5AT7HI?t=239 'Nodezaak' te zien op YouTube], vanaf minuut 4.<br />
<br />
* Zorg dat er voldoende saldo op de Bitcoin Core node staat, bijvoorbeeld €250,-.<br />
* Liever één groot kanaal dan meerdere kleine, bijvoorbeeld €100,- of €200,-.<br />
* Ga in browser naar [https://1ml.com/ 1ml.com].<br />
* Zoek node Lightning.Watch (https://1ml.com/node/03e691f81f08c56fa876cc4ef5c9e8b727bd682cf35605be25d48607a802526053).<br />
* Kopieer Public Key inclusief @-deel (2e regel: 03e691f81f08c56fa876cc4ef5c9e8b727bd682cf35605be25d48607a802526053@188.166.81.82:9735).<br />
Ga naar Umbrel scherm<br />
* Kies Lightning uit het menu links.<br />
* Kies recht "+OPEN CHANNEL".<br />
* Plak in Lightning Address.<br />
* Geef de gewenste waarde in Satoshis in, bijvoorbeeld ter waarde van €100,-.<br />
* Stel de transaction fee in: stel in op lage waarde, bijv $2 en heb geduld (of stel hoger in voor snellere satisfactie)<br />
* Klik groene knop OPEN CHANNEL.<br />
<br />
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.<br />
<br />
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;<br />
<br />
=== Inloggen via SSH ===<br />
Een hoop commando's dienen via SSH te gebeuren. Dit is een manier om je node te beheren via een tekst-interface.<br />
<br />
==== Vanaf een Windows 10-computer ====<br />
Open PowerShell (WIN-R, powershell, enter) en typ onderstaand commando. Als het niet werkt, download dan [https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html PuTTY].<br />
<pre>ssh -t umbrel@umbrel.local</pre><br />
Voer het wachtwoord in (zelfde als inlogwachtwoord van de webpagina), je zal niet zien ''dat'' je het wachtwoord aan het invoeren bent.<br />
<br />
==== Vanaf een Mac of Linux-computer ====<br />
Open je Terminal en typ onderstaand commando:<br />
<pre>ssh -t umbrel@umbrel.local</pre><br />
Voer het wachtwoord in (zelfde als inlogwachtwoord van de webpagina), je zal niet zien ''dat'' je het wachtwoord aan het invoeren bent.<br />
<br />
=== Alias (naam) en kleur instellen ===<br />
Wil je een alias instellen voor je node? Besef eerst dat de informatie publiek wordt! <br />
<br />
Let op: op dit moment wordt bij elke update de LND configuratie teruggezet naar de standaardinstellingen en zal je je alias opnieuw moeten invoeren.<br />
<br />
# Log in op je node via SSH <br />
# 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.<br />
# 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. <br />
# (Optioneel) zet '''color=#ff0000''' of een andere hex kleur, op een nieuwe regel, net onder alias. [https://www.color-hex.com/ vind een mooie kleur].<br />
# 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).<br />
# Nadat je de editor hebt verlaten, type '''cat umbrel/lnd/lnd.conf'' om naar de inhoud van het bestand te kijken.<br />
# Start vervolgens de Umbrel node opnieuw op. Je kunt dit goed doen vanuit de Umbrel webinterface (Instellingen, Herstart)<br />
# Als je publieke kanalen hebt, duurt het (max) 2 dagen voordat de nieuwe node zichtbaar is op [https://1ml.com 1ml.com]. <br />
# 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.<br />
<br />
Als je terminal bevriest, heb je misschien CTRL-S ingedrukt. Maak het bevriezen ongedaan met CTRL-Q.<br />
<br />
=== Bekijken hoe veel routes je node kent ===<br />
Log in via SSH en doe daarna<br />
<br />
<code>~/umbrel/bin/lncli describegraph | grep channel_id | wc -l</code><br />
<br />
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 [[Lightning#Concepten|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.<br />
<br />
=== Eerder gedownloade blockchaindata gebruiken ===<br />
<br />
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.<br />
Bron: Umbrel GitHub [https://github.com/getumbrel/umbrel-os/issues/119]<br />
<br />
# Zorg dat je de installatie hebt voltooid en Umbrel al een keer hebt opgestart met de externe schijf aangesloten.<br />
# Sluit Umbrel af via de Settings pagina, haal de stekker uit het stopcontact en verwijder de externe schijf.<br />
<br />
Omdat de externe schrijf nu als EXT4 geformatteerd is, kan deze niet in Windows / macOS gelezen worden. <br />
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" [https://www.raspberrypi.org/software/]. Maak een VM aan in VirtualBox of zet hem op een USB stick.<br />
<br />
# Kopieer de mappen "blocks" en "chainstate" van de eerdere installatie en plaats/vervang ze in /umbrel/bitcoin/ op je externe schijf.<br />
# Ontkoppel de externe schijf, verbind hem weer met je nieuwe Umbrel node en start deze weer op.<br />
# De blockchaindata wordt gecontroleerd voordat hij gebruikt kan worden, dus het kan even duren voordat je het inlogscherm te zien krijgt.<br />
<br />
=== Ruimtegebrek op een custom install ===<br />
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.<br />
<br />
Stop Umbrel<br />
<br />
<code>cd /INSTALLATIEMAP/UMBREL</code> bijvoorbeeld <code>cd /home/gebruiker/umbrel</code><br />
<br />
<code>sudo ./scripts/stop</code><br />
<br />
Kopieer de mappen "blocks" en "chainstate" naar een nieuwe locatie.<br />
<br />
<code>cp -r /ORIGINEEL/umbrel/bitcoin/blocks /NIEUW/umbrel/blocks</code><br />
<br />
<code>cp -r /ORIGINEEL/umbrel/bitcoin/chainstate /NIEUW/umbrel/chainstate</code><br />
<br />
Bijvoorbeeld<br />
<code>cp -r /home/gebruiker/umbrel/bitcoin/blocks /mnt/harddisk/umbrel/blocks</code><br />
<br />
Controleer of er geen verschil is tussen de nieuwe en oude mappen. Bij geen antwoord is er geen verschil.<br />
<br />
<code>diff -qr /ORIGINEEL/umbrel/bitcoin/blocks /NIEUW/umbrel/blocks</code><br />
<br />
<code>diff -qr /ORIGINEEL/umbrel/bitcoin/chainstate /NIEUW/umbrel/chainstate</code><br />
<br />
Verwijder de originele mappen als je hebt bevestigd dat de nieuwe map niet verschillend is.<br />
<br />
<code>rm -r /ORIGINEEL/umbrel/bitcoin/blocks</code><br />
<br />
<code>rm -r /ORIGINEEL/umbrel/bitcoin/chainstate</code><br />
<br />
Verwijs naar de nieuwe plek op de originele locatie met een symbolische of softlink<br />
<br />
<code>ln -s /NIEUW/umbrel/blocks /ORIGINEEL/umbrel/bitcoin/blocks</code><br />
<br />
<code>ln -s /NIEUW/umbrel/chainstate /ORIGINEEL/umbrel/bitcoin/chainstate</code><br />
<br />
Controleer of de symbolische link goed gelukt is. Het komt er in een andere kleur te staan, met het symbool -><br />
<br />
<code>ls -la /ORIGINEEL/umbrel/bitcoin</code><br />
<br />
Reboot en enjoy the free disk space!<br />
<br />
<code>sudo reboot</code><br />
<br />
=== Een handmatige update doen ===<br />
Als je Umbrel blijft [https://github.com/getumbrel/umbrel/issues/593#issuecomment-787518502 hangen], dan kan je een handmatige update doen. <br />
<br />
Log in via SSH (zie hierboven) en doe:<br />
<br />
<code>cd ~/umbrel && sudo scripts/update/update --repo getumbrel/umbrel</code><br />
<br />
Umbrel zal nu updaten naar de laatste versie.<br />
<br />
=== Bitcoin-cli commando's draaien ===<br />
Verbind via SSH (ssh umbrel@umbrel.local) met je Umbrel node. Je kunt je bitcoin-cli commando's uitvoeren met <code>~/umbrel/bin/bitcoin-cli</code><br />
<br />
=== LND-cli commando's draaien ===<br />
Verbind via SSH (ssh umbrel@umbrel.local) met je Umbrel node. Je kunt je bitcoin-cli commando's uitvoeren met <code>~/umbrel/bin/lncli</code><br />
<br />
Bijvoorbeeld de status van je node<br />
<pre>~/umbrel/bin/lncli getinfo</pre><br />
<br />
=== Een bericht tekenen ===<br />
Dit kan via de [[RTL]]-app, of op de commandline (via SSH):<br />
<br />
Log in via SSH (zie boven) en doe:<br />
<br />
<code>~/umbrel/bin/lncli signmessage HETBERICHT</code><br />
<br />
Je krijgt dan je signature terug, hij staat tussen aanhalingstekens. De aanhalingstekens horen niet bij de signature/handtekening.<br />
<br />
=== Een geïnstalleerde app via de commandline gebruiken ===<br />
<br />
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. <br />
<br />
Lijst met geïnstalleerde apps / docker containers<br />
<br />
<code>~/umbrel/scripts/app ls-installed</code><br />
<br />
Voer op de volgende manier commando's uit<br />
<br />
<code>~/umbrel/scripts/app compose APPNAAM exec COMMANDO</code><br />
<br />
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.<br />
<br />
Let op: sommige apps hebben de toevoeging web nodig na exec.<br />
<br />
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: <br />
<br />
<code>~/umbrel/scripts/app compose lightning-terminal exec web pool --rpcserver localhost:8443 --tlscertpath=~/.lit/tls.cert accounts recover </code></div>Briskhttps://bitcoinwiki.nl/index.php?title=Blockchain&diff=1807Blockchain2021-04-24T21:12:27Z<p>Brisk: /* Initial Block Download */</p>
<hr />
<div>Blockchain is de onderliggende technologie van bitcoin. De blockchain is een reeks van blokken.<br />
<br />
== Blokken ==<br />
Blokken kan je zien als bestandjes van ongeveer een megabyte groot, met daarin:<br />
* [[Transacties|Transactie-informatie]].<br />
* Een uitkering van nieuwe bitcoin naar [[Mining|de vinder]] van het blok.<br />
* Een verwijzing naar het vorige blok.<br />
<br />
== Wat maakt de blockchain een blockchain ==<br />
* Het allereerste blok ooit was blok 0 ([[genesis Blok]]) met hash 0000..e26f, gemaakt door [[Satoshi Nakamoto]].<br />
* Het eropvolgende blok was blok 1 met hash 0000..6048, met een verwijzing terug naar hash 0000..e26f, een terugverwijzing naar blok 0 dus.<br />
<br />
Blokken hebben zelf geen nummer, enkel een hash en een terugverwijzing naar het vorige blok. Doordat alle blokken naar elkaar terug verwijzen kan je een ketting maken. Het nummer is iets dat alle [[Bitcoin node|nodes]] zelf toevoegen. We noemen het nummer ook wel de '''blokhoogte''' (block height).<br />
<br />
Je kunt het vergelijken met een geheim dat steeds door 1 iemand naar 1 andere wordt doorverteld. Als je blijft vragen: "van wie heb je het geheim gehoord", kan je helemaal terug naar de bron van het geheim.<br />
<br />
== Initial Block Download ==<br />
De 'Initial Block Download' (IBD) is het proces van het voor de eerste keer downloaden van de blockchain door een nieuwe [[Bitcoin node|node]], zodat deze bij is tot de actuele blokhoogte. De informatie over de blokken wordt verstrekt door andere nodes in het bitcoinnetwerk. Een volledige node heeft hierdoor een kopie van de blockchain (ongeveer 400GB aan blokken) en kan alle [[transacties]] die ooit zijn gedaan volledig terugvolgen.<br />
<br />
== Zie ook ==<br />
* [https://beginnenmetbitcoin.com/#ep5 Aflevering 5] van de [Beginnen met Bitcoin]-podcast legt dit verder uit.</div>Briskhttps://bitcoinwiki.nl/index.php?title=Links&diff=1585Links2021-03-19T11:13:15Z<p>Brisk: </p>
<hr />
<div>Nieuws en hulpmiddelen!<br />
<br />
=== Bitcoin-nieuws en discussie ===<br />
Nederlandse platforms die hoofdzakelijk over [[Bitcoin]] rapporteren. Zie [[Bitcoin in de media]] voor Bitcoin-nieuws in algemene media.<br />
<br />
==== Sites ====<br />
* [https://bitcoinmagazine.nl Bitcoin Magazine NL] — redactionele artikelen en nieuws<br />
* [https://bitcoinuitleg.nl/ Bitcoin Uitleg] - Site van dienstverlener, maar met ook [https://bitcoinuitleg.nl/category/informatief/ artikelen]<br />
* [https://pegulanten.nl/ Pegulanten] - Site over beleggen en vroeg financieel onafhankelijk worden (FIRE). Bovengemiddeld en positief aandacht voor Bitcoin<br />
* [https://bitcoinst.art/ Bitcoinstart] - Verzameling van Nederlandse bronnen over Bitcoin<br />
* [https://lekkercryptisch.nl LekkerCryptisch] - Onafhankelijk kennisplatform gericht op bitcoin en financiële technologie in het algemeen<br />
<br />
==== Podcasts ====<br />
* [[Satoshi Radio]] is de Nederlandstalige podcast waarin we je alles vertellen over cryptocurrency en blockchain<br />
* [https://debitcoinshow.nl/ De Bitcoin Show] - discussie over Bitcoin en maatschappelijke wrijvingskrachten<br />
* [https://anchor.fm/hupbitcoin Hup Bitcoin] - iedere week het belangrijkste Bitcoin nieuws, met zo nu en dan een gast waarmee we over een specifiek onderwerp doorpraten<br />
* [https://www.bnr.nl/podcast/cryptocast Cryptocast] Cryptocurrency are here to stay. Herbert Blankesteijn en Madelon Vos navigeren je wekelijks door al het cryptonieuws<br />
* [[Beginnen met Bitcoin]] - Toegankelijke content voor een beginner die nog nooit wat met Bitcoin gedaan heeft, en soms met diepere technische uitleg voor als je de intro-afleveringen hebt geluisterd.<br />
<br />
==== YouTube ====<br />
* [https://youtu.be/A2fLxoBg4dY YouTube-kanaal Madelon Vos]<br />
* [https://www.youtube.com/playlist?list=PLweLX09dn_zBgpKCNeFnJTgMjTiL481U3 De Nodezaak - Leer je eigen Bitcoin-node op te zetten]<br />
<br />
==== Educatie ====<br />
Zie [[Studiemateriaal/Literatuur]]<br />
<br />
<br />
=== Bitcoin-hulpmiddelen ===<br />
==== Block explorers ====<br />
Dit zijn sites waar je blokken en transacties kan bekijken. <br />
<br />
Als je een [[Bitcoin node]] hebt, hoef je sites als deze niet te gebruiken/vertrouwen en kun je zelf applicaties als [[BTC RPC Explorer]] en [[Mempool.space]] installeren.<br />
* [https://mempool.space mempool.space] is een eenvoudige site waar je blokken en transacties kan bekijken<br />
* [https://blockstream.info/ blockstream.info] is ook een eenvoudige site om informatie over bitcoin te bekijken</div>Briskhttps://bitcoinwiki.nl/index.php?title=Links&diff=1584Links2021-03-19T11:01:32Z<p>Brisk: /* Podcasts */ Als Kloek het zelf niet doet...</p>
<hr />
<div>Nieuws en hulpmiddelen!<br />
<br />
=== Bitcoin-nieuws en discussie ===<br />
Nederlandse platforms die hoofdzakelijk over [[Bitcoin]] rapporteren. Zie [[Bitcoin in de media]] voor Bitcoin-nieuws in algemene media.<br />
<br />
==== Sites ====<br />
* [https://bitcoinmagazine.nl Bitcoin Magazine NL] — redactionele artikelen en nieuws<br />
* [https://bitcoinuitleg.nl/ Bitcoin Uitleg] - Site van dienstverlener, maar met ook [https://bitcoinuitleg.nl/category/informatief/ artikelen]<br />
* [https://pegulanten.nl/ Pegulanten] - Site over beleggen en vroeg financieel onafhankelijk worden (FIRE). Bovengemiddeld en positief aandacht voor Bitcoin<br />
* [https://bitcoinst.art/ Bitcoinstart] - Verzameling van Nederlandse bronnen over Bitcoin<br />
* [https://lekkercryptisch.nl LekkerCryptisch] - Onafhankelijk kennisplatform gericht op bitcoin en financiële technologie in het algemeen<br />
<br />
==== Podcasts ====<br />
* [[Satoshi Radio]] is de Nederlandstalige podcast waarin we je alles vertellen over cryptocurrency en blockchain<br />
* [https://debitcoinshow.nl/ De Bitcoin Show] - discussie over Bitcoin en maatschappelijke wrijvingskrachten<br />
* [https://anchor.fm/hupbitcoin Hup Bitcoin] - iedere week het belangrijkste Bitcoin nieuws, met zo nu en dan een gast waarmee we over een specifiek onderwerp doorpraten<br />
* [https://www.bnr.nl/podcast/cryptocast Cryptocast] Cryptocurrency are here to stay. Herbert Blankesteijn en Madelon Vos navigeren je wekelijks door al het cryptonieuws<br />
* [https://beginnenmetbitcoin.com/ Beginnen met Bitcoin] - Toegankelijke content voor een beginner die nog nooit wat met Bitcoin gedaan heeft, en soms met diepere technische uitleg voor als je de intro-afleveringen hebt geluisterd.<br />
<br />
==== YouTube ====<br />
* [https://youtu.be/A2fLxoBg4dY YouTube-kanaal Madelon Vos]<br />
* [https://www.youtube.com/playlist?list=PLweLX09dn_zBgpKCNeFnJTgMjTiL481U3 De Nodezaak - Leer je eigen Bitcoin-node op te zetten]<br />
<br />
==== Educatie ====<br />
Zie [[Studiemateriaal/Literatuur]]<br />
<br />
<br />
=== Bitcoin-hulpmiddelen ===<br />
==== Block explorers ====<br />
Dit zijn sites waar je blokken en transacties kan bekijken. <br />
<br />
Als je een [[Bitcoin node]] hebt, hoef je sites als deze niet te gebruiken/vertrouwen en kun je zelf applicaties als [[BTC RPC Explorer]] en [[Mempool.space]] installeren.<br />
* [https://mempool.space mempool.space] is een eenvoudige site waar je blokken en transacties kan bekijken<br />
* [https://blockstream.info/ blockstream.info] is ook een eenvoudige site om informatie over bitcoin te bekijken</div>Briskhttps://bitcoinwiki.nl/index.php?title=Blockchain&diff=1498Blockchain2021-03-14T15:09:41Z<p>Brisk: </p>
<hr />
<div>Blockchain is de onderliggende technologie van bitcoin. De blockchain is een reeks van blokken.<br />
<br />
== Blokken ==<br />
Blokken kan je zien als bestandjes van ongeveer een megabyte groot, met daarin:<br />
* [[Transacties|Transactie-informatie]]<br />
* Een uitkering van nieuwe bitcoin naar [[Mining|de vinder]] van het blok<br />
* Een verwijzing naar het vorige blok.<br />
<br />
== Wat maakt de blockchain een blockchain ==<br />
* Het allereerste blok ooit was blok 0 ([[genesis block]]) met hash 0000..e26f, gemaakt door [[Satoshi Nakamoto]].<br />
* Het eropvolgende blok was blok 1 met hash 0000..6048, met een verwijzing terug naar hash 0000..e26f, een terugverwijzing naar blok 0 dus.<br />
<br />
Blokken hebben zelf geen nummer, enkel een hash en een terugverwijzing naar het vorige blok. Doordat alle blokken naar elkaar terug verwijzen kan je een ketting maken. Het nummer is iets dat alle [[Bitcoin node|nodes]] zelf toevoegen. We noemen het nummer ook wel de '''blokhoogte''' (block height).<br />
<br />
Je kunt het vergelijken met een geheim dat steeds door 1 iemand naar 1 nadere wordt doorverteld. Als je blijft vragen: "van wie heb je het geheim gehoord", kan je helemaal terug naar de bron van het geheim.<br />
<br />
== Initial Block Download ==<br />
De 'Initial Block Download' (IBD) is het proces van het voor de eerste keer downloaden van de blockchain door een nieuwe [[Bitcoin node|node]], zodat deze bij is tot de actuele blokhoogte. De informatie over de blokken wordt verstrekt door andere nodes in het bitcoinnetwerk. Een volledige node heeft hierdoor een kopie van de blockchain (ongeveer 400GB aan blokken) en kan alle [[transacties]] die ooit zijn gedaan volledig terugvolgen<br />
<br />
== Zie ook ==<br />
* [https://beginnenmetbitcoin.com/#ep5 Aflevering 5] van de [Beginnen met Bitcoin]-podcast legt dit verder uit.</div>Briskhttps://bitcoinwiki.nl/index.php?title=Blockchain&diff=1497Blockchain2021-03-14T15:08:46Z<p>Brisk: IBD toegevoegd. Twijfel over locatie, bij ideeën hierover: graag aanpassen. (:</p>
<hr />
<div>Blockchain is de onderliggende technologie van bitcoin. De blockchain is een reeks van blokken.<br />
<br />
== Blokken ==<br />
Blokken kan je zien als bestandjes van ongeveer een megabyte groot, met daarin:<br />
* [[Transacties|Transactie-informatie]]<br />
* Een uitkering van nieuwe bitcoin naar [[Mining|de vinder]] van het blok<br />
* Een verwijzing naar het vorige blok.<br />
<br />
== Wat maakt de blockchain een blockchain ==<br />
* Het allereerste blok ooit was blok 0 ([[genesis block]]) met hash 0000..e26f, gemaakt door [[Satoshi Nakamoto]].<br />
* Het eropvolgende blok was blok 1 met hash 0000..6048, met een verwijzing terug naar hash 0000..e26f, een terugverwijzing naar blok 0 dus.<br />
<br />
Blokken hebben zelf geen nummer, enkel een hash en een terugverwijzing naar het vorige blok. Doordat alle blokken naar elkaar terug verwijzen kan je een ketting maken. Het nummer is iets dat alle [[Bitcoin node|nodes]] zelf toevoegen. We noemen het nummer ook wel de '''blokhoogte''' (block height).<br />
<br />
Je kunt het vergelijken met een geheim dat steeds door 1 iemand naar 1 nadere wordt doorverteld. Als je blijft vragen: "van wie heb je het geheim gehoord", kan je helemaal terug naar de bron van het geheim.<br />
<br />
== Initial Block Download ==<br />
De 'Initial Block Download' (IBD) is het proces van het voor de eerste keer downloaden van de blockchain door een nieuwe [[Bitcoin node|node]], zodat deze bij is tot de actuele blokhoogte. De informatie over de blokken wordt verstrekt door andere nodes in het bitcoinnetwerk. Een volledige node heeft hierdoor een kopie van de blockchain (ongeveer 400GB aan blokken) en kan alle [[transacties]] die ooit zijn gedaan volledig terugvolgen<br />
<br />
= Zie ook =<br />
* [https://beginnenmetbitcoin.com/#ep5 Aflevering 5] van de [Beginnen met Bitcoin]-podcast legt dit verder uit.</div>Briskhttps://bitcoinwiki.nl/index.php?title=Lightning&diff=1494Lightning2021-03-14T14:35:25Z<p>Brisk: /* Lightning gebruiken */</p>
<hr />
<div>Met Lightning kan je razendsnel goedkope microbetalingen in [[Bitcoin|bitcoin]] doen. Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit. <br />
<br />
'''''Zie [[#Lightning gebruiken]] als je meteen wilt beginnen.'''''<br />
<br />
Bitcoin transacties zijn relatief kostbaar. Dat komt omdat er maar een beperkte ruimte is op de blockchain: zo'n 1500 transacties per blok (per 10 minuten). Oftewel zo'n 9000 transacties per uur. (Credit card firmart Visa kan 10-duizenden transacties ''per seconde'' aan.)<br />
Kortom, Bitcoin is geen snelheidsmonster. Alle mensen die een Bitcoin-transactie aanbieden, concurreren om een plaatsje in een blok op de blockchain. Dit drijft de prijs voor een 'toegangskaartje' ('fee') naar de blockchain op. (Tot wel enige tientallen euro's per transactie in hectische perioden).<br />
Om toch meer transacties mogelijk te maken, is een systeem ontwikkeld dat de transacties (tijdelijk) niet via Bitcoin's blockchain laat lopen. Een analogie ter verduidelijking:<br />
<br />
:Iemand zit aan de bar en bestelt een biertje. De barman (m/v) turft dit af op een kaart. De avond verstrijkt, en er worden nog wat drankjes verorbert. Halverwege de avond blijkt 1 biertje bedorven: de barman streept de bijbehorende 'turf' door op de kaart. Als de klant naar huis gaat, vraagt de barman de klant de rekening te betalen. Er zijn misschien wel 10 drankjes besteld, en er was 1 restitutie, maar er vindt maar 1 geld-transactie plaats. We kunnen de kaart van de barman met een Lightning 'kanaal' vergelijken en de bank-transactie met een on-chain Bitcoin transactie. Ziehier een analogie ter verduidelijking van het Lightning Netwerk.<br />
<br />
Wat als onze bierdrinkende klant weggaat zonder te betalen? Een remedie zou kunnen zijn dat klanten die op de pof bestellen eerst een borg betalen, bijv 50 euro op de bar leggen. Maar wat als de barman zich niet netjes gedraagt en de 50 euro pakt en de zaak sluit voordat ie ook maar één biertje heeft geschonken? Met al dat soort grens-gevallen moet het Lightning Protocol rekening houden en oplossen, wil het een serieus betalingsnetwerk worden.<br />
<br />
''Er is een grote community van Nederlanders met een Lightning node. Je vindt de groep [https://t.me/lightningnl op Telegram].''<br />
<br />
= Concepten =<br />
''Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit.''<br />
<br />
; Peers (nodes)<br />
:De deelnemers aan het Lightning-netwerk. Als je zelf een node hebt dan ben je ook een peer. Als je verbindt met een andere node, dan heb je een '''peer-to-peer'''-connectie gemaakt. Als je enkel een wallet hebt dan wordt dat meestal niet als peer/node gezien; jouw telefoon is niet 24x7 online en helpt niet met het routeren van betalingen.<br />
; Kanalen<br />
:De basis van Lightning zijn kanalen. Simpel gezegd zijn dit afspraken tussen twee '''peers''', bijvoorbeeld Alies en Bob. Alies heeft 0.1 bitcoin (10 miljoen [[Satoshi|sats]]) op haar node gezet, en gaat een kanaal openen van deze 10 miljoen sat. Ze geeft aan een kanaal met Bob te willen openen, en de nodes maken een on-chain Opentransactie transactie met een capaciteit van 10 miljoen sat. Hiermee zetten ze 10 miljoen "vast".<br />
; Balans<br />
:De capaciteit van het kanaal is altijd verdeeld tussen de peers. In het voorbeeld staat na openen 10 miljoen sats aan de kant van Alies, en 0 sats aan de kant van Bob. Dit kanaal is overigens "uit balans", en door transacties te doen van Alies naar Bob, zullen de balansen veranderen.<br />
; Capaciteit<br />
:Het aantal satoshi dat wordt vastgezet voor een kanaal is de capaciteit. De capaciteit kan niet veranderen. In het begin staat de capaciteit in principe aan de "kant" van de opener: als het kanaal gesloten wordt dan komen die sats terug naar de opener.<br />
; Commit Fee<br />
:Bij het openen van een kanaal zal niet de volledige capaciteit te gebruiken zijn voor transacties. Een deel van de satoshi is gereserveerd voor wanneer er een éénzijdige sluittransactie (force close) voordoet. De hoogte van de reservering is dynamisch en afhankelijk van de actuele hoogte van de kosten om de sluittransactie te publiceren.<br />
;[[Liquiditeit|Inkomende liquiditeit]]<br />
:Toen Alies haar kanaal van 10 miljoen sats opende, stonden al die sats "aan haar kant" (zie '''Balans'''). Ze kon 10 miljoen sats overmaken. Ze had hier uitgaande liquiditeit. Het voorbeeldkanaal gaf haar echter geen inkomende liquiditeit. Er stonden geen sats aan de andere kant van dit kanaal, om te kunnen ontvangen. Dat is de basis van inkomende liquiditeit: dat je (als node) kanalen hebt met sats aan de andere kant van het kanaal. Als mensen kanalen naar jou openen krijg je inkomende liquiditeit. En als je betalingen doet, verschuiven sats naar de andere kant van het kanaal, en dat wordt dan ook inkomende liquiditeit.<br />
; Invoice<br />
:Een betaalverzoek. Zowel nodes als wallets kunnen deze betaalverzoeken maken. Het is een lang stuk tekst dat begint met lnbc1, en meestal wordt het ook een QR-code. De betaler scant de invoice, zijn wallet of node berekent een route en betaalt.<br />
; Lightningtransacties<br />
:Zodra het kanaal open is (3 bevestigingen van de Opentransactie), kunnen er betalingen worden gedaan. Alies kan met dit open kanaal een betaling doen naar Bob, omdat zij sats aan haar kant van het kanaal heeft staan. Bob kan (in dit kanaal) geen betalingen doen naar Alies, er staan namelijk geen sats aan zijn kant om naar Alies te verschuiven. Als Alies een betaling doet, van bijvoorbeeld 100 000 sat, dan zullen de balansen verschuiven. Waar Alies eerst 10 miljoen, en Bob 0 sats had, zijn de balansen na de betaling van 100 000 sat anders: Alies heeft nu nog 9 900 000 sat en Bob heeft nu 100 000 sat. Deze nieuwe '''kanaalstatus''' wordt tussen de peers afgesproken. Ook maken Alies en Bob een sluit-transactie. De sluittransactie zegt: "Van de vastgezette 10 miljoen sats uit de Openingstransactie, krijgt Alies 9 900 000 sats en Bob 100 000 sats". De sluit-transactie wordt door beiden getekend. Deze sluit-transactie publiceren ze NIET op de blockchain. Ze bewaren hem voor als er wat misgaat.<br />
; Netwerk<br />
:Alle nodes samen maken het netwerk. Het mooie van Lightning is dat Alies in bovenstaand scenario ook naar Charles kan sturen, als Bob een kanaal met Charles heeft. De betaling neemt dan de '''route''' Alies -> Bob -> Charles.<br />
; Opentransactie<br />
:Bij het openen van een kanaal spreken de twee nodes een transactie af. In de basis staat in deze transactie: "Alies krijgt 10 miljoen sats terug bij het sluiten van dit kanaal, Bob krijgt niks". Alies heeft namelijk recht op haar 10 miljoen sats, het waren per slot van rekening haar sats (bitcoin) die ze gebruikte voor het openen. We noemen dit de '''kanaalstatus'''.<br />
; Roddelen<br />
:Nodes geven elkaar continu kanaalinformatie door met een proces dat Gossipping (roddelen) heet. Elke node moet alle kanalen (gaan) kennen. Zeker als je net een node bent begonnen, zal je merken dat het 1 of 2 dagen kan duren na het openen van je kanaal, voordat jouw node hoogte krijgt van het hele netwerk. Hoe meer kanalen (peers) je hebt, hoe meer/sneller je kan roddelen, en hoe sneller je kanaalinfo doorkrijgt.<br />
; Routes<br />
:Betalingen over het Lightningnetwerk nemen routes. In het voorbeeld hierboven hebben Alies en Bob een kanaal, net als Bob en Charles. Alies kan Charles betalen met de route Alies -> Bob -> Charles. Het is hierbij nodig dat: (1) Alle kanalen voldoende capaciteit hebben, (2) De routes niet te duur zijn, en (3) Alle kanalen actief zijn (geen offline peers).<br />
:Als aan deze voorwaarden is voldaan, kan de betaling gebeuren. Als één van deze dingen mist, of Alies weet bijvoorbeeld niet van het kanaal van Bob naar Charles (zie '''roddelen'''), dan zal ze een NO ROUTE-fout krijgen: er is geen route waar de betaling overheen kan.<br />
; Routing Fee en Hops<br />
:Wanneer Alies Charles betaalt via Bob, zoals in het voorbeeld hierboven (Alies -> Bob -> Charles), is er sprake van een Hop (sprongetje) via Bob. Bob kan voor deze Hop een provisie rekenen, de Routing Fee. Door zijn node beschikbaar te stellen als tussenstap en daar een vergoeding tegenover te zetten, kan hij verdienen aan het routeren van transacties. Deze fees kunnen algemeen ingesteld worden voor de gehele node of per kanaal verschillen. Zo kan er aangemoedigd dan wel ontmoedigd worden om een specifiek kanaal te gebruiken, bijvoorbeeld op basis van de balans van het kanaal.<br />
; Sluittransactie<br />
:Als de peers klaar zijn met het kanaal, kunnen ze de sluittransactie publiceren en zo onchain hun "echte bitcoin" terugkrijgen. Ze krijgen de bitcoin terug volgens de laatste status. Als de twee nodes het eens zijn over de status (en (dus) allebei online zijn), dan zal dit een cooperatieve close zijn. Als er één van de twee offline is, zal het een force close zijn, waar de meest recente status wordt gepubliceerd. Deze force closes zijn duurder dan cooperative closes.<br />
; Valsspelen<br />
:Peers kunnen proberen vals te spelen. Alies zou bijvoorbeeld kunnen proberen 10 miljoen sats (in plaats van haar werkelijke 9 900 000 sats) te claimen door de oude kanaalstatus te publiceren (de transactie van haar schijf op de blockchain publiceren). Gelukkig houdt de node van Bob houdt continu de transacties bij. Als hij ziet dat Alies een oneerlijke claim doet, kan hij dit bewijzen aan het netwerk door de nieuwere status te laten zien, Bob heeft namelijk een sluittransactie met nieuwere status, en die transactie is zelfs getekend door Alies (toen ze de vorige Lightningtransactie deden)! Bob mag nu de gehele capaciteit claimen. Zo blijft Lightning eerlijk.<br />
:Echter, wanneer de node van Bob offline is kan deze niet de laatste, meest actuele status verzenden. Dit is een risico waardoor Alies alsnog de oneerlijke claim kan doen. Eén van de oplossingen voor dit probleem zijn Watchtowers (uitkijktorens). Dit zijn nodes beheerd door een derde partij die voor jou de laatste status van de kanalen bijhoudt en een bericht stuurt wanneer er een 'breach'/ongeldige publicatie wordt gedaan. <br />
<br />
= Lightning gebruiken =<br />
Er zijn grofweg twee manieren om Lightning te gebruiken. <br />
<br />
* Een '''wallet''' is het makkelijkst. Je zet er bitcoin op, zet die bitcoin om naar Lightning-bitcoin en kan Lightning gebruiken. Zie [[BlueWallet]] voor een simpel beginnetje.<br />
* Geavanceerde gebruikers kunnen zelf een node opzetten. Een '''node''' is altijd online, routeert betalingen en heeft wat werk nodig om op te zetten. [[Umbrel lightning node|Umbrel]] is een makkelijker manier om een node op te zetten.<br />
<br />
== Wallet ==<br />
Het makkelijkst is om [[BlueWallet]] op je telefoon te installeren, als je Lightning wil gebruiken. <br />
<br />
== Node ==<br />
[[Bestand:Nederlandse Nodes.png|miniatuur|Nodes in Nederland (archiefplaatje)]]<br />
Zelf een node draaien is leuk om te doen en je draagt bij aan de Bitcoin [[blockchain]]. Met een Raspberry Pi computer, opslag voor de [[Blockchain]] en Node-software (zoals [[Umbrel]], [https://mynodebtc.com/ MyNode], [https://raspiblitz.org/ RaspiBlitz]) kan je zelf een node draaien.<br />
<br />
Vrij veel Nederlanders draaien zelf een node, zie [https://lightningwiki.net/g/?g=-1001254160094&t=LightningNL%20%F0%9F%87%B3%F0%9F%87%B1%F0%9F%87%A7%F0%9F%87%AA deze graaf]. Als je in het Telegramkanaal [https://t.me/lightningnl LightningNL] komt kijken kan je jouw node toevoegen.<br />
<br />
=== Hardware ===<br />
{| class="wikitable" <br />
|- style="font-weight:bold;"<br />
! <br />
! Langzaam <br />
(Ongeveer 150 euro)<br />
! Snel <br />
(Ongeveer 250 euro)<br />
|-<br />
| Computer<br />
| [https://tweakers.net/pricewatch/1414470/raspberry-pi-4-model-b-4gb-ram.html Raspberry Pi 4B (4GB)] <br />
(60 euro)<br />
| [https://tweakers.net/pricewatch/1562568/raspberry-pi-4-model-b-8gb-ram.html Raspberry Pi 4B (8GB)] <br />
(90 euro)<br />
|-<br />
| SD-kaart <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/986595/sandisk-ultra-microsdxc-class-10-uhs-i-a1-uhs-class-1-64gb-+-sd-adapter.html 64GB SD-kaart] <br />
(12 euro)<br />
Om besturingssysteem op te zetten <br />
|-<br />
| Voeding <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/1415202/raspberry-pi-153w-usb-c-power-supply.html 15W USB-C voeding]<br />
(10 euro)<br />
Tip: koop geen andere <br />
|-<br />
| Blockchain opslag<br />
| [https://tweakers.net/pricewatch/339768/wd-elements-portable-usb-30-1tb-zwart.html Harde Schijf] <br />
(50 euro)<br />
Blockchain syncen duurt een paar weken<br />
| [https://tweakers.net/pricewatch/942129/samsung-portable-ssd-t5-1tb-zwart.html SSD] <br />
(125 euro)<br />
Blockchain syncen duurt een paar dagen<br />
|-<br />
| Heatsink <br />
| colspan="2" style="text-align:center;"| [https://www.kiwi-electronics.nl/com-3101?search=Raspberry%20pi&description=true Alu heatsink] of [https://www.sossolutions.nl/raspberry-pi-4-aluminium-koeling-heatsink deze] <br />
(15 euro)<br />
|-<br />
| Netwerk (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/305850/gembird-pp6-15m-cat6-15m-grijs-wit.html 1.5m UTP cable] <br />
(1 euro)<br />
|-<br />
| HDMI (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/389208/startech-punt-com-hdmiadmm3-zwart.html HDMI cable] <br />
(5 euro)<br />
|-<br />
| (Kanalen)<br />
| colspan="2" style="text-align:center;"| Reserveer ook wat geld voor kanalen, dat raak je niet kwijt, maar is nodig om betalingen mee te doen. Bijvoorbeeld 100 euro.<br />
|}<br />
<br />
=== Node-software ===<br />
==== Umbrel ====<br />
[[Umbrel lightning node|Umbrel]] is één van de gemakkelijkste en gebruiksvriendelijkste manieren om een node te draaien op een Raspberry Pi. Hiermee kan je binnen een aantal stappen zowel een bitcoin node als een lightning network node opzetten.<br />
<br />
==== Alternatieven ====<br />
Momenteel is Umbrel één van de meest gebruikte node softwares in Nederland. Er zijn echter meer aanbieders van dit soort installatiepakketten, bijvoorbeeld: [https://mynodebtc.com/ MyNode] en [https://raspiblitz.org/ RaspiBlitz]. Wil jij jouw node geheel zelfstandig installeren, dan zou je kunnen kijken naar de gebruikshandleiding van [https://docs.theroadtonode.com/ The Road to Node].<br />
<br />
==== Applicaties/Interfaces ====<br />
Middels CLI kan je [[commando's]] geven om kanalen te openen, fees aan te passen of betalingen te doen. Voor iemand die niet thuis is in de command line zijn er alternatieven die het makkelijker maken om eerdergenoemde acties uit te voeren. [[RTL|Ride The Lightning]] (RTL) en [[ThunderHub]] (TH) zijn interfaces die eenvoudig te installeren zijn in bijvoorbeeld Umbrel of MyNode. Elke interface heeft zijn eigen voordelen maar de meeste, en sowieso de belangrijkste, functionaliteiten kunnen uitgevoerd worden.<br />
<br />
== Lightning gebruiken ==<br />
De Raspberry Pi staat aan, Umbrel is geïnstalleerd, de [[Blockchain|Initial Block Download]] is afgerond en je hebt de seed van de wallet van je Lightning Node veilig [[Geheime sleutel|opgeslagen]]. Wat nu? Een logische vervolgstap zou zijn om een kanaal te openen naar een goed verbonden node/peer. Hiermee wordt jouw node ook onderdeel van het netwerk en kan je routeren of betalingen uitvoeren.<br />
<br />
=== Peer uitzoeken ===<br />
Het is aan te raden om een kanaal te maken met een goed verbonden peer. In de [[Community|Nederlandstalige community]] is er de [https://bitcoinlightning.nl/lightningnl_superhub/ SuperHub], dit zijn een aantal grote nodes die onderling hebben afgesproken om de routing fees onderling laag te houden. Door met één of meer van deze nodes te verbinden ben je direct al goed verbonden met de rest van de wereld. Methoden om een geschikte peer uit te zoeken zijn:<br />
<br />
* Een node uit de [https://bitcoinlightning.nl/lightningnl_superhub/ SuperHub] kiezen of vragen in de Telegram groep [https://t.me/lightningNL @LightningNL].<br />
* Een hoog gekwalificeerde node uitzoeken op [https://1ml.com/ 1ML].<br />
* Een node uit de BOS-lijst kiezen. Deze lijst staat in [[ThunderHub]] maar is ook [https://lightningwiki.net/bos/ hier] te vinden.<br />
* De tool van [https://moneni.com/mcb/nodematch Moneni] te gebruiken. (Hier heb je al wel een bestaand kanaal voor nodig.)<br />
<br />
=== Kanaal openen ===<br />
<Concept><br />
<br />
== Foutmeldingen ==<br />
<br />
=== No Route-probleem ===<br />
Er zit een aantal voorwaarden voor betalingen:<br />
<br />
# Kent je node alle routes van het netwerk? Je node krijgt via gossip (roddelen) binnen een paar uur/dagen de netwerkinformatie door. Als je node de netwerkinformatie nog niet heeft, kan hij nog geen route berekenen. Op Umbrel kan je op [[Umbrel lightning node#Bekijken hoe veel routes je node kent|deze manier]] controleren hoeveel kanalen je node kent.<br />
# Heb je [[Liquiditeit|uitgaande liquiditeit]]?<br />
#* Je hebt kanalen nodig met lokale balans. Als jij een kanaal hebt geopend staat het balans aan jouw kant (goed).<br />
#* '''Kanaalreserve:''' Er moet altijd ongeveer 1% van de balans aan iedere kant van het kanaal blijven. Ook wordt er een reservering gemaakt voor het geval het kanaal gesloten wordt. Dit betekent dat er altijd een percentage <5% niet-verzendbaar is. Het zorgt dat mensen beide partijen "iets te verliezen" hebben als ze valsspelen. Behalve on-chain fees ben je nog WEL eigenaar van deze sats en krijg je ze gewoon terug bij sluiten.<br />
#* De uitgaande route is mogelijk te duur. Als degenen met wie je kanalen hebt te hoge uitgaande fees hebben, zal jouw wallet niet willen betalen.<br />
#* Zijn je peers online?<br />
'''Als/zodra je 2 dagen een publiek kanaal hebt, dan moeten de meeste problemen verdwijnen'''. Als je meerdere kanalen hebt krijg je sneller netwerkingormatie door en gaat dat sneller.<br />
<br />
<br />
<br />
<comments /></div>Briskhttps://bitcoinwiki.nl/index.php?title=Lightning&diff=1457Lightning2021-03-10T17:02:45Z<p>Brisk: Herindeling, Applicaties toegevoegd, Lightning gebruiken toegevoegd</p>
<hr />
<div>Met Lightning kan je razendsnel goedkope microbetalingen in [[Bitcoin|bitcoin]] doen. Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit. <br />
<br />
'''''Zie [[#Lightning gebruiken]] als je meteen wilt beginnen.'''''<br />
<br />
Bitcoin transacties zijn relatief kostbaar. Dat komt omdat er maar een beperkte ruimte is op de blockchain: zo'n 1500 transacties per blok (per 10 minuten). Oftewel zo'n 9000 transacties per uur. (Credit card firmart Visa kan 10-duizenden transacties ''per seconde'' aan.)<br />
Kortom, Bitcoin is geen snelheidsmonster. Alle mensen die een Bitcoin-transactie aanbieden, concurreren om een plaatsje in een blok op de blockchain. Dit drijft de prijs voor een 'toegangskaartje' ('fee') naar de blockchain op. (Tot wel enige tientallen euro's per transactie in hectische perioden).<br />
Om toch meer transacties mogelijk te maken, is een systeem ontwikkeld dat de transacties (tijdelijk) niet via Bitcoin's blockchain laat lopen. Een analogie ter verduidelijking:<br />
<br />
:Iemand zit aan de bar en bestelt een biertje. De barman (m/v) turft dit af op een kaart. De avond verstrijkt, en er worden nog wat drankjes verorbert. Halverwege de avond blijkt 1 biertje bedorven: de barman streept de bijbehorende 'turf' door op de kaart. Als de klant naar huis gaat, vraagt de barman de klant de rekening te betalen. Er zijn misschien wel 10 drankjes besteld, en er was 1 restitutie, maar er vindt maar 1 geld-transactie plaats. We kunnen de kaart van de barman met een Lightning 'kanaal' vergelijken en de bank-transactie met een on-chain Bitcoin transactie. Ziehier een analogie ter verduidelijking van het Lightning Netwerk.<br />
<br />
Wat als onze bierdrinkende klant weggaat zonder te betalen? Een remedie zou kunnen zijn dat klanten die op de pof bestellen eerst een borg betalen, bijv 50 euro op de bar leggen. Maar wat als de barman zich niet netjes gedraagt en de 50 euro pakt en de zaak sluit voordat ie ook maar één biertje heeft geschonken? Met al dat soort grens-gevallen moet het Lightning Protocol rekening houden en oplossen, wil het een serieus betalingsnetwerk worden.<br />
<br />
''Er is een grote community van Nederlanders met een Lightning node. Je vindt de groep [https://t.me/lightningnl op Telegram].''<br />
<br />
= Concepten =<br />
''Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit.''<br />
<br />
; Peers (nodes)<br />
:De deelnemers aan het Lightning-netwerk. Als je zelf een node hebt dan ben je ook een peer. Als je verbindt met een andere node, dan heb je een '''peer-to-peer'''-connectie gemaakt. Als je enkel een wallet hebt dan wordt dat meestal niet als peer/node gezien; jouw telefoon is niet 24x7 online en helpt niet met het routeren van betalingen.<br />
; Kanalen<br />
:De basis van Lightning zijn kanalen. Simpel gezegd zijn dit afspraken tussen twee '''peers''', bijvoorbeeld Alies en Bob. Alies heeft 0.1 bitcoin (10 miljoen [[Satoshi|sats]]) op haar node gezet, en gaat een kanaal openen van deze 10 miljoen sat. Ze geeft aan een kanaal met Bob te willen openen, en de nodes maken een on-chain Opentransactie transactie met een capaciteit van 10 miljoen sat. Hiermee zetten ze 10 miljoen "vast".<br />
; Balans<br />
:De capaciteit van het kanaal is altijd verdeeld tussen de peers. In het voorbeeld staat na openen 10 miljoen sats aan de kant van Alies, en 0 sats aan de kant van Bob. Dit kanaal is overigens "uit balans", en door transacties te doen van Alies naar Bob, zullen de balansen veranderen.<br />
; Capaciteit<br />
:Het aantal satoshi dat wordt vastgezet voor een kanaal is de capaciteit. De capaciteit kan niet veranderen. In het begin staat de capaciteit in principe aan de "kant" van de opener: als het kanaal gesloten wordt dan komen die sats terug naar de opener.<br />
; Commit Fee<br />
:Bij het openen van een kanaal zal niet de volledige capaciteit te gebruiken zijn voor transacties. Een deel van de satoshi is gereserveerd voor wanneer er een éénzijdige sluittransactie (force close) voordoet. De hoogte van de reservering is dynamisch en afhankelijk van de actuele hoogte van de kosten om de sluittransactie te publiceren.<br />
;[[Liquiditeit|Inkomende liquiditeit]]<br />
:Toen Alies haar kanaal van 10 miljoen sats opende, stonden al die sats "aan haar kant" (zie '''Balans'''). Ze kon 10 miljoen sats overmaken. Ze had hier uitgaande liquiditeit. Het voorbeeldkanaal gaf haar echter geen inkomende liquiditeit. Er stonden geen sats aan de andere kant van dit kanaal, om te kunnen ontvangen. Dat is de basis van inkomende liquiditeit: dat je (als node) kanalen hebt met sats aan de andere kant van het kanaal. Als mensen kanalen naar jou openen krijg je inkomende liquiditeit. En als je betalingen doet, verschuiven sats naar de andere kant van het kanaal, en dat wordt dan ook inkomende liquiditeit.<br />
; Invoice<br />
:Een betaalverzoek. Zowel nodes als wallets kunnen deze betaalverzoeken maken. Het is een lang stuk tekst dat begint met lnbc1, en meestal wordt het ook een QR-code. De betaler scant de invoice, zijn wallet of node berekent een route en betaalt.<br />
; Lightningtransacties<br />
:Zodra het kanaal open is (3 bevestigingen van de Opentransactie), kunnen er betalingen worden gedaan. Alies kan met dit open kanaal een betaling doen naar Bob, omdat zij sats aan haar kant van het kanaal heeft staan. Bob kan (in dit kanaal) geen betalingen doen naar Alies, er staan namelijk geen sats aan zijn kant om naar Alies te verschuiven. Als Alies een betaling doet, van bijvoorbeeld 100 000 sat, dan zullen de balansen verschuiven. Waar Alies eerst 10 miljoen, en Bob 0 sats had, zijn de balansen na de betaling van 100 000 sat anders: Alies heeft nu nog 9 900 000 sat en Bob heeft nu 100 000 sat. Deze nieuwe '''kanaalstatus''' wordt tussen de peers afgesproken. Ook maken Alies en Bob een sluit-transactie. De sluittransactie zegt: "Van de vastgezette 10 miljoen sats uit de Openingstransactie, krijgt Alies 9 900 000 sats en Bob 100 000 sats". De sluit-transactie wordt door beiden getekend. Deze sluit-transactie publiceren ze NIET op de blockchain. Ze bewaren hem voor als er wat misgaat.<br />
; Netwerk<br />
:Alle nodes samen maken het netwerk. Het mooie van Lightning is dat Alies in bovenstaand scenario ook naar Charles kan sturen, als Bob een kanaal met Charles heeft. De betaling neemt dan de '''route''' Alies -> Bob -> Charles.<br />
; Opentransactie<br />
:Bij het openen van een kanaal spreken de twee nodes een transactie af. In de basis staat in deze transactie: "Alies krijgt 10 miljoen sats terug bij het sluiten van dit kanaal, Bob krijgt niks". Alies heeft namelijk recht op haar 10 miljoen sats, het waren per slot van rekening haar sats (bitcoin) die ze gebruikte voor het openen. We noemen dit de '''kanaalstatus'''.<br />
; Roddelen<br />
:Nodes geven elkaar continu kanaalinformatie door met een proces dat Gossipping (roddelen) heet. Elke node moet alle kanalen (gaan) kennen. Zeker als je net een node bent begonnen, zal je merken dat het 1 of 2 dagen kan duren na het openen van je kanaal, voordat jouw node hoogte krijgt van het hele netwerk. Hoe meer kanalen (peers) je hebt, hoe meer/sneller je kan roddelen, en hoe sneller je kanaalinfo doorkrijgt.<br />
; Routes<br />
:Betalingen over het Lightningnetwerk nemen routes. In het voorbeeld hierboven hebben Alies en Bob een kanaal, net als Bob en Charles. Alies kan Charles betalen met de route Alies -> Bob -> Charles. Het is hierbij nodig dat: (1) Alle kanalen voldoende capaciteit hebben, (2) De routes niet te duur zijn, en (3) Alle kanalen actief zijn (geen offline peers).<br />
:Als aan deze voorwaarden is voldaan, kan de betaling gebeuren. Als één van deze dingen mist, of Alies weet bijvoorbeeld niet van het kanaal van Bob naar Charles (zie '''roddelen'''), dan zal ze een NO ROUTE-fout krijgen: er is geen route waar de betaling overheen kan.<br />
; Routing Fee en Hops<br />
:Wanneer Alies Charles betaalt via Bob, zoals in het voorbeeld hierboven (Alies -> Bob -> Charles), is er sprake van een Hop (sprongetje) via Bob. Bob kan voor deze Hop een provisie rekenen, de Routing Fee. Door zijn node beschikbaar te stellen als tussenstap en daar een vergoeding tegenover te zetten, kan hij verdienen aan het routeren van transacties. Deze fees kunnen algemeen ingesteld worden voor de gehele node of per kanaal verschillen. Zo kan er aangemoedigd dan wel ontmoedigd worden om een specifiek kanaal te gebruiken, bijvoorbeeld op basis van de balans van het kanaal.<br />
; Sluittransactie<br />
:Als de peers klaar zijn met het kanaal, kunnen ze de sluittransactie publiceren en zo onchain hun "echte bitcoin" terugkrijgen. Ze krijgen de bitcoin terug volgens de laatste status. Als de twee nodes het eens zijn over de status (en (dus) allebei online zijn), dan zal dit een cooperatieve close zijn. Als er één van de twee offline is, zal het een force close zijn, waar de meest recente status wordt gepubliceerd. Deze force closes zijn duurder dan cooperative closes.<br />
; Valsspelen<br />
:Peers kunnen proberen vals te spelen. Alies zou bijvoorbeeld kunnen proberen 10 miljoen sats (in plaats van haar werkelijke 9 900 000 sats) te claimen door de oude kanaalstatus te publiceren (de transactie van haar schijf op de blockchain publiceren). Gelukkig houdt de node van Bob houdt continu de transacties bij. Als hij ziet dat Alies een oneerlijke claim doet, kan hij dit bewijzen aan het netwerk door de nieuwere status te laten zien, Bob heeft namelijk een sluittransactie met nieuwere status, en die transactie is zelfs getekend door Alies (toen ze de vorige Lightningtransactie deden)! Bob mag nu de gehele capaciteit claimen. Zo blijft Lightning eerlijk.<br />
:Echter, wanneer de node van Bob offline is kan deze niet de laatste, meest actuele status verzenden. Dit is een risico waardoor Alies alsnog de oneerlijke claim kan doen. Eén van de oplossingen voor dit probleem zijn Watchtowers (uitkijktorens). Dit zijn nodes beheerd door een derde partij die voor jou de laatste status van de kanalen bijhoudt en een bericht stuurt wanneer er een 'breach'/ongeldige publicatie wordt gedaan. <br />
<br />
= Lightning gebruiken =<br />
Er zijn grofweg twee manieren om Lightning te gebruiken. <br />
<br />
* Een '''wallet''' is het makkelijkst. Je zet er bitcoin op, zet die bitcoin om naar Lightning-bitcoin en kan Lightning gebruiken. Zie [[BlueWallet]] voor een simpel beginnetje.<br />
* Geavanceerde gebruikers kunnen zelf een node opzetten. Een '''node''' is altijd online, routeert betalingen en heeft wat werk nodig om op te zetten. [[Umbrel lightning node|Umbrel]] is een makkelijker manier om een node op te zetten.<br />
<br />
== Wallet ==<br />
Het makkelijkst is om [[BlueWallet]] op je telefoon te installeren, als je Lightning wil gebruiken. <br />
<br />
== Node ==<br />
Zelf een node draaien is leuk om te doen en je draagt bij aan de Bitcoin [[blockchain]]. Met een Raspberry Pi computer, opslag voor de [[Blockchain]] en Node-software (zoals [[Umbrel]], [https://mynodebtc.com/ MyNode], [https://raspiblitz.org/ RaspiBlitz]) kan je zelf een node draaien.<br />
<br />
=== Hardware ===<br />
{| class="wikitable" <br />
|- style="font-weight:bold;"<br />
! <br />
! Langzaam <br />
(Ongeveer 150 euro)<br />
! Snel <br />
(Ongeveer 250 euro)<br />
|-<br />
| Computer<br />
| [https://tweakers.net/pricewatch/1414470/raspberry-pi-4-model-b-4gb-ram.html Raspberry Pi 4B (4GB)] <br />
(60 euro)<br />
| [https://tweakers.net/pricewatch/1562568/raspberry-pi-4-model-b-8gb-ram.html Raspberry Pi 4B (8GB)] <br />
(90 euro)<br />
|-<br />
| SD-kaart <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/986595/sandisk-ultra-microsdxc-class-10-uhs-i-a1-uhs-class-1-64gb-+-sd-adapter.html 64GB SD-kaart] <br />
(12 euro)<br />
Om besturingssysteem op te zetten <br />
|-<br />
| Voeding <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/1415202/raspberry-pi-153w-usb-c-power-supply.html 15W USB-C voeding]<br />
(10 euro)<br />
Tip: koop geen andere <br />
|-<br />
| Blockchain opslag<br />
| [https://tweakers.net/pricewatch/339768/wd-elements-portable-usb-30-1tb-zwart.html Harde Schijf] <br />
(50 euro)<br />
Blockchain syncen duurt een paar weken<br />
| [https://tweakers.net/pricewatch/942129/samsung-portable-ssd-t5-1tb-zwart.html SSD] <br />
(125 euro)<br />
Blockchain syncen duurt een paar dagen<br />
|-<br />
| Heatsink <br />
| colspan="2" style="text-align:center;"| [https://www.kiwi-electronics.nl/com-3101?search=Raspberry%20pi&description=true Alu heatsink] of [https://www.sossolutions.nl/raspberry-pi-4-aluminium-koeling-heatsink deze] <br />
(15 euro)<br />
|-<br />
| Netwerk (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/305850/gembird-pp6-15m-cat6-15m-grijs-wit.html 1.5m UTP cable] <br />
(1 euro)<br />
|-<br />
| HDMI (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/389208/startech-punt-com-hdmiadmm3-zwart.html HDMI cable] <br />
(5 euro)<br />
|-<br />
| (Kanalen)<br />
| colspan="2" style="text-align:center;"| Reserveer ook wat geld voor kanalen, dat raak je niet kwijt, maar is nodig om betalingen mee te doen. Bijvoorbeeld 100 euro.<br />
|}<br />
<br />
=== Node-software ===<br />
==== Umbrel ====<br />
[[Umbrel lightning node|Umbrel]] is één van de gemakkelijkste en gebruiksvriendelijkste manieren om een node te draaien op een Raspberry Pi. Hiermee kan je binnen een aantal stappen zowel een bitcoin node als een lightning network node opzetten.<br />
<br />
==== Alternatieven ====<br />
Momenteel is Umbrel één van de meest gebruikte node softwares in Nederland. Er zijn echter meer aanbieders van dit soort installatiepakketten, bijvoorbeeld: [https://mynodebtc.com/ MyNode] en [https://raspiblitz.org/ RaspiBlitz]. Wil jij jouw node geheel zelfstandig installeren, dan zou je kunnen kijken naar de gebruikshandleiding van [https://docs.theroadtonode.com/ The Road to Node].<br />
<br />
==== Applicaties/Interfaces ====<br />
Middels CLI kan je [[commando's]] geven om kanalen te openen, fees aan te passen of betalingen te doen. Voor iemand die niet thuis is in de command line zijn er alternatieven die het makkelijker maken om eerdergenoemde acties uit te voeren. [[RTL|Ride The Lightning]] (RTL) en [[ThunderHub]] (TH) zijn interfaces die eenvoudig te installeren zijn in bijvoorbeeld Umbrel of MyNode. Elke interface heeft zijn eigen voordelen maar de meeste, en sowieso de belangrijkste, functionaliteiten kunnen uitgevoerd worden.<br />
<br />
== Lightning gebruiken ==<br />
De Raspberry Pi staat aan, Umbrel is geïnstalleerd, de [[Initial Block Download]] is afgerond en je hebt de seed van de wallet van je Lightning Node veilig [[Geheime sleutel|opgeslagen]]. Wat nu? Een logische vervolgstap zou zijn om een kanaal te openen naar een goed verbonden node/peer. Hiermee wordt jouw node ook onderdeel van het netwerk en kan je routeren of betalingen uitvoeren.<br />
<br />
=== Peer uitzoeken ===<br />
Het is aan te raden om een kanaal te maken met een goed verbonden peer. In de [[Community|Nederlandstalige community]] is er de [https://bitcoinlightning.nl/lightningnl_superhub/ SuperHub], dit zijn een aantal grote nodes die onderling hebben afgesproken om de routing fees onderling laag te houden. Door met één of meer van deze nodes te verbinden ben je direct al goed verbonden met de rest van de wereld. Methoden om een geschikte peer uit te zoeken zijn:<br />
<br />
* Een node uit de [https://bitcoinlightning.nl/lightningnl_superhub/ SuperHub] kiezen of vragen in de Telegram groep [https://t.me/lightningNL @LightningNL].<br />
* Een hoog gekwalificeerde node uitzoeken op [https://1ml.com/ 1ML].<br />
* Een node uit de BOS-lijst kiezen. Deze lijst staat in [[ThunderHub]] maar is ook [https://lightningwiki.net/bos/ hier] te vinden.<br />
* De tool van [https://moneni.com/mcb/nodematch Moneni] te gebruiken. (Hier heb je al wel een bestaand kanaal voor nodig.)<br />
<br />
=== Kanaal openen ===<br />
<Concept><br />
<br />
== Foutmeldingen ==<br />
<br />
=== No Route-probleem ===<br />
Er zit een aantal voorwaarden voor betalingen:<br />
<br />
# Kent je node alle routes van het netwerk? Je node krijgt via gossip (roddelen) binnen een paar uur/dagen de netwerkinformatie door. Als je node de netwerkinformatie nog niet heeft, kan hij nog geen route berekenen. Op Umbrel kan je op [[Umbrel lightning node#Bekijken hoe veel routes je node kent|deze manier]] controleren hoeveel kanalen je node kent.<br />
# Heb je [[Liquiditeit|uitgaande liquiditeit]]?<br />
#* Je hebt kanalen nodig met lokale balans. Als jij een kanaal hebt geopend staat het balans aan jouw kant (goed).<br />
#* '''Kanaalreserve:''' Er moet altijd ongeveer 1% van de balans aan iedere kant van het kanaal blijven. Ook wordt er een reservering gemaakt voor het geval het kanaal gesloten wordt. Dit betekent dat er altijd een percentage <5% niet-verzendbaar is. Het zorgt dat mensen beide partijen "iets te verliezen" hebben als ze valsspelen. Behalve on-chain fees ben je nog WEL eigenaar van deze sats en krijg je ze gewoon terug bij sluiten.<br />
#* De uitgaande route is mogelijk te duur. Als degenen met wie je kanalen hebt te hoge uitgaande fees hebben, zal jouw wallet niet willen betalen.<br />
#* Zijn je peers online?<br />
'''Als/zodra je 2 dagen een publiek kanaal hebt, dan moeten de meeste problemen verdwijnen'''. Als je meerdere kanalen hebt krijg je sneller netwerkingormatie door en gaat dat sneller.<br />
<br />
<br />
<br />
<comments /></div>Briskhttps://bitcoinwiki.nl/index.php?title=ThunderHub&diff=1456ThunderHub2021-03-10T16:32:36Z<p>Brisk: Nieuwe pagina aangemaakt met 'ThunderHub (TH) is een interface voor je lightningnode. TH laat je makkelijk: * Kanalen openen en sluiten * Kanalen balanceren * Fees aanpassen * Tr...'</p>
<hr />
<div>ThunderHub (TH) is een interface voor je [[Lightning|lightningnode]].<br />
<br />
TH laat je makkelijk:<br />
<br />
* Kanalen openen en sluiten<br />
* Kanalen balanceren<br />
* Fees aanpassen<br />
* Transacties doen, zowel onchain als offchain<br />
* Rapportages maken<br />
<br />
Link naar [https://thunderhub.io/ ThunderHub].</div>Briskhttps://bitcoinwiki.nl/index.php?title=Lightning&diff=1455Lightning2021-03-10T16:28:52Z<p>Brisk: </p>
<hr />
<div>Met Lightning kan je razendsnel goedkope microbetalingen in [[Bitcoin|bitcoin]] doen. Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit. <br />
<br />
'''''Zie [[#Lightning gebruiken]] als je meteen wilt beginnen.'''''<br />
<br />
Bitcoin transacties zijn relatief kostbaar. Dat komt omdat er maar een beperkte ruimte is op de blockchain: zo'n 1500 transacties per blok (per 10 minuten). Oftewel zo'n 9000 transacties per uur. (Credit card firmart Visa kan 10-duizenden transacties ''per seconde'' aan.)<br />
Kortom, Bitcoin is geen snelheidsmonster. Alle mensen die een Bitcoin-transactie aanbieden, concurreren om een plaatsje in een blok op de blockchain. Dit drijft de prijs voor een 'toegangskaartje' ('fee') naar de blockchain op. (Tot wel enige tientallen euro's per transactie in hectische perioden).<br />
Om toch meer transacties mogelijk te maken, is een systeem ontwikkeld dat de transacties (tijdelijk) niet via Bitcoin's blockchain laat lopen. Een analogie ter verduidelijking:<br />
<br />
:Iemand zit aan de bar en bestelt een biertje. De barman (m/v) turft dit af op een kaart. De avond verstrijkt, en er worden nog wat drankjes verorbert. Halverwege de avond blijkt 1 biertje bedorven: de barman streept de bijbehorende 'turf' door op de kaart. Als de klant naar huis gaat, vraagt de barman de klant de rekening te betalen. Er zijn misschien wel 10 drankjes besteld, en er was 1 restitutie, maar er vindt maar 1 geld-transactie plaats. We kunnen de kaart van de barman met een Lightning 'kanaal' vergelijken en de bank-transactie met een on-chain Bitcoin transactie. Ziehier een analogie ter verduidelijking van het Lightning Netwerk.<br />
<br />
Wat als onze bierdrinkende klant weggaat zonder te betalen? Een remedie zou kunnen zijn dat klanten die op de pof bestellen eerst een borg betalen, bijv 50 euro op de bar leggen. Maar wat als de barman zich niet netjes gedraagt en de 50 euro pakt en de zaak sluit voordat ie ook maar één biertje heeft geschonken? Met al dat soort grens-gevallen moet het Lightning Protocol rekening houden en oplossen, wil het een serieus betalingsnetwerk worden.<br />
<br />
''Er is een grote community van Nederlanders met een Lightning node. Je vindt de groep [https://t.me/lightningnl op Telegram].''<br />
<br />
= Concepten =<br />
''Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit.''<br />
<br />
; Peers (nodes)<br />
:De deelnemers aan het Lightning-netwerk. Als je zelf een node hebt dan ben je ook een peer. Als je verbindt met een andere node, dan heb je een '''peer-to-peer'''-connectie gemaakt. Als je enkel een wallet hebt dan wordt dat meestal niet als peer/node gezien; jouw telefoon is niet 24x7 online en helpt niet met het routeren van betalingen.<br />
; Kanalen<br />
:De basis van Lightning zijn kanalen. Simpel gezegd zijn dit afspraken tussen twee '''peers''', bijvoorbeeld Alies en Bob. Alies heeft 0.1 bitcoin (10 miljoen [[Satoshi|sats]]) op haar node gezet, en gaat een kanaal openen van deze 10 miljoen sat. Ze geeft aan een kanaal met Bob te willen openen, en de nodes maken een on-chain Opentransactie transactie met een capaciteit van 10 miljoen sat. Hiermee zetten ze 10 miljoen "vast".<br />
; Balans<br />
:De capaciteit van het kanaal is altijd verdeeld tussen de peers. In het voorbeeld staat na openen 10 miljoen sats aan de kant van Alies, en 0 sats aan de kant van Bob. Dit kanaal is overigens "uit balans", en door transacties te doen van Alies naar Bob, zullen de balansen veranderen.<br />
; Capaciteit<br />
:Het aantal satoshi dat wordt vastgezet voor een kanaal is de capaciteit. De capaciteit kan niet veranderen. In het begin staat de capaciteit in principe aan de "kant" van de opener: als het kanaal gesloten wordt dan komen die sats terug naar de opener.<br />
; Commit Fee<br />
:Bij het openen van een kanaal zal niet de volledige capaciteit te gebruiken zijn voor transacties. Een deel van de satoshi is gereserveerd voor wanneer er een éénzijdige sluittransactie (force close) voordoet. De hoogte van de reservering is dynamisch en afhankelijk van de actuele hoogte van de kosten om de sluittransactie te publiceren.<br />
;[[Liquiditeit|Inkomende liquiditeit]]<br />
:Toen Alies haar kanaal van 10 miljoen sats opende, stonden al die sats "aan haar kant" (zie '''Balans'''). Ze kon 10 miljoen sats overmaken. Ze had hier uitgaande liquiditeit. Het voorbeeldkanaal gaf haar echter geen inkomende liquiditeit. Er stonden geen sats aan de andere kant van dit kanaal, om te kunnen ontvangen. Dat is de basis van inkomende liquiditeit: dat je (als node) kanalen hebt met sats aan de andere kant van het kanaal. Als mensen kanalen naar jou openen krijg je inkomende liquiditeit. En als je betalingen doet, verschuiven sats naar de andere kant van het kanaal, en dat wordt dan ook inkomende liquiditeit.<br />
; Invoice<br />
:Een betaalverzoek. Zowel nodes als wallets kunnen deze betaalverzoeken maken. Het is een lang stuk tekst dat begint met lnbc1, en meestal wordt het ook een QR-code. De betaler scant de invoice, zijn wallet of node berekent een route en betaalt.<br />
; Lightningtransacties<br />
:Zodra het kanaal open is (3 bevestigingen van de Opentransactie), kunnen er betalingen worden gedaan. Alies kan met dit open kanaal een betaling doen naar Bob, omdat zij sats aan haar kant van het kanaal heeft staan. Bob kan (in dit kanaal) geen betalingen doen naar Alies, er staan namelijk geen sats aan zijn kant om naar Alies te verschuiven. Als Alies een betaling doet, van bijvoorbeeld 100 000 sat, dan zullen de balansen verschuiven. Waar Alies eerst 10 miljoen, en Bob 0 sats had, zijn de balansen na de betaling van 100 000 sat anders: Alies heeft nu nog 9 900 000 sat en Bob heeft nu 100 000 sat. Deze nieuwe '''kanaalstatus''' wordt tussen de peers afgesproken. Ook maken Alies en Bob een sluit-transactie. De sluittransactie zegt: "Van de vastgezette 10 miljoen sats uit de Openingstransactie, krijgt Alies 9 900 000 sats en Bob 100 000 sats". De sluit-transactie wordt door beiden getekend. Deze sluit-transactie publiceren ze NIET op de blockchain. Ze bewaren hem voor als er wat misgaat.<br />
; Netwerk<br />
:Alle nodes samen maken het netwerk. Het mooie van Lightning is dat Alies in bovenstaand scenario ook naar Charles kan sturen, als Bob een kanaal met Charles heeft. De betaling neemt dan de '''route''' Alies -> Bob -> Charles.<br />
; Opentransactie<br />
:Bij het openen van een kanaal spreken de twee nodes een transactie af. In de basis staat in deze transactie: "Alies krijgt 10 miljoen sats terug bij het sluiten van dit kanaal, Bob krijgt niks". Alies heeft namelijk recht op haar 10 miljoen sats, het waren per slot van rekening haar sats (bitcoin) die ze gebruikte voor het openen. We noemen dit de '''kanaalstatus'''.<br />
; Roddelen<br />
:Nodes geven elkaar continu kanaalinformatie door met een proces dat Gossipping (roddelen) heet. Elke node moet alle kanalen (gaan) kennen. Zeker als je net een node bent begonnen, zal je merken dat het 1 of 2 dagen kan duren na het openen van je kanaal, voordat jouw node hoogte krijgt van het hele netwerk. Hoe meer kanalen (peers) je hebt, hoe meer/sneller je kan roddelen, en hoe sneller je kanaalinfo doorkrijgt.<br />
; Routes<br />
:Betalingen over het Lightningnetwerk nemen routes. In het voorbeeld hierboven hebben Alies en Bob een kanaal, net als Bob en Charles. Alies kan Charles betalen met de route Alies -> Bob -> Charles. Het is hierbij nodig dat: (1) Alle kanalen voldoende capaciteit hebben, (2) De routes niet te duur zijn, en (3) Alle kanalen actief zijn (geen offline peers).<br />
:Als aan deze voorwaarden is voldaan, kan de betaling gebeuren. Als één van deze dingen mist, of Alies weet bijvoorbeeld niet van het kanaal van Bob naar Charles (zie '''roddelen'''), dan zal ze een NO ROUTE-fout krijgen: er is geen route waar de betaling overheen kan.<br />
; Routing Fee en Hops<br />
:Wanneer Alies Charles betaalt via Bob, zoals in het voorbeeld hierboven (Alies -> Bob -> Charles), is er sprake van een Hop (sprongetje) via Bob. Bob kan voor deze Hop een provisie rekenen, de Routing Fee. Door zijn node beschikbaar te stellen als tussenstap en daar een vergoeding tegenover te zetten, kan hij verdienen aan het routeren van transacties. Deze fees kunnen algemeen ingesteld worden voor de gehele node of per kanaal verschillen. Zo kan er aangemoedigd dan wel ontmoedigd worden om een specifiek kanaal te gebruiken, bijvoorbeeld op basis van de balans van het kanaal.<br />
; Sluittransactie<br />
:Als de peers klaar zijn met het kanaal, kunnen ze de sluittransactie publiceren en zo onchain hun "echte bitcoin" terugkrijgen. Ze krijgen de bitcoin terug volgens de laatste status. Als de twee nodes het eens zijn over de status (en (dus) allebei online zijn), dan zal dit een cooperatieve close zijn. Als er één van de twee offline is, zal het een force close zijn, waar de meest recente status wordt gepubliceerd. Deze force closes zijn duurder dan cooperative closes.<br />
; Valsspelen<br />
:Peers kunnen proberen vals te spelen. Alies zou bijvoorbeeld kunnen proberen 10 miljoen sats (in plaats van haar werkelijke 9 900 000 sats) te claimen door de oude kanaalstatus te publiceren (de transactie van haar schijf op de blockchain publiceren). Gelukkig houdt de node van Bob houdt continu de transacties bij. Als hij ziet dat Alies een oneerlijke claim doet, kan hij dit bewijzen aan het netwerk door de nieuwere status te laten zien, Bob heeft namelijk een sluittransactie met nieuwere status, en die transactie is zelfs getekend door Alies (toen ze de vorige Lightningtransactie deden)! Bob mag nu de gehele capaciteit claimen. Zo blijft Lightning eerlijk.<br />
:Echter, wanneer de node van Bob offline is kan deze niet de laatste, meest actuele status verzenden. Dit is een risico waardoor Alies alsnog de oneerlijke claim kan doen. Eén van de oplossingen voor dit probleem zijn Watchtowers (uitkijktorens). Dit zijn nodes beheerd door een derde partij die voor jou de laatste status van de kanalen bijhoudt en een bericht stuurt wanneer er een 'breach'/ongeldige publicatie wordt gedaan. <br />
<br />
= Lightning gebruiken =<br />
Er zijn grofweg twee manieren om Lightning te gebruiken. <br />
<br />
* Een '''wallet''' is het makkelijkst. Je zet er bitcoin op, zet die bitcoin om naar Lightning-bitcoin en kan Lightning gebruiken. Zie [[BlueWallet]] voor een simpel beginnetje.<br />
* Geavanceerde gebruikers kunnen zelf een node opzetten. Een '''node''' is altijd online, routeert betalingen en heeft wat werk nodig om op te zetten. [[Umbrel lightning node|Umbrel]] is een makkelijker manier om een node op te zetten.<br />
<br />
== Wallet ==<br />
Het makkelijkst is om [[BlueWallet]] op je telefoon te installeren, als je Lightning wil gebruiken. <br />
<br />
== Node ==<br />
Zelf een node draaien is leuk om te doen en je draagt bij aan de Bitcoin [[blockchain]]. Met een Raspberry Pi computer, opslag voor de [[Blockchain]] en Node-software (zoals [[Umbrel]], [https://mynodebtc.com/ MyNode], [https://raspiblitz.org/ RaspiBlitz]) kan je zelf een node draaien.<br />
<br />
=== Hardware ===<br />
{| class="wikitable" <br />
|- style="font-weight:bold;"<br />
! <br />
! Langzaam <br />
(Ongeveer 150 euro)<br />
! Snel <br />
(Ongeveer 250 euro)<br />
|-<br />
| Computer<br />
| [https://tweakers.net/pricewatch/1414470/raspberry-pi-4-model-b-4gb-ram.html Raspberry Pi 4B (4GB)] <br />
(60 euro)<br />
| [https://tweakers.net/pricewatch/1562568/raspberry-pi-4-model-b-8gb-ram.html Raspberry Pi 4B (8GB)] <br />
(90 euro)<br />
|-<br />
| SD-kaart <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/986595/sandisk-ultra-microsdxc-class-10-uhs-i-a1-uhs-class-1-64gb-+-sd-adapter.html 64GB SD-kaart] <br />
(12 euro)<br />
Om besturingssysteem op te zetten <br />
|-<br />
| Voeding <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/1415202/raspberry-pi-153w-usb-c-power-supply.html 15W USB-C voeding]<br />
(10 euro)<br />
Tip: koop geen andere <br />
|-<br />
| Blockchain opslag<br />
| [https://tweakers.net/pricewatch/339768/wd-elements-portable-usb-30-1tb-zwart.html Harde Schijf] <br />
(50 euro)<br />
Blockchain syncen duurt een paar weken<br />
| [https://tweakers.net/pricewatch/942129/samsung-portable-ssd-t5-1tb-zwart.html SSD] <br />
(125 euro)<br />
Blockchain syncen duurt een paar dagen<br />
|-<br />
| Heatsink <br />
| colspan="2" style="text-align:center;"| [https://www.kiwi-electronics.nl/com-3101?search=Raspberry%20pi&description=true Alu heatsink] of [https://www.sossolutions.nl/raspberry-pi-4-aluminium-koeling-heatsink deze] <br />
(15 euro)<br />
|-<br />
| Netwerk (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/305850/gembird-pp6-15m-cat6-15m-grijs-wit.html 1.5m UTP cable] <br />
(1 euro)<br />
|-<br />
| HDMI (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/389208/startech-punt-com-hdmiadmm3-zwart.html HDMI cable] <br />
(5 euro)<br />
|-<br />
| (Kanalen)<br />
| colspan="2" style="text-align:center;"| Reserveer ook wat geld voor kanalen, dat raak je niet kwijt, maar is nodig om betalingen mee te doen. Bijvoorbeeld 100 euro.<br />
|}<br />
<br />
=== Node-software ===<br />
==== Umbrel ====<br />
[[Umbrel lightning node|Umbrel]] is één van de gemakkelijkste en gebruiksvriendelijkste manieren om een node te draaien op een Raspberry Pi. Hiermee kan je binnen een aantal stappen zowel een bitcoin node als een lightning network node opzetten.<br />
<br />
==== Alternatieven ====<br />
Momenteel is Umbrel één van de meest gebruikte node softwares in Nederland. Er zijn echter meer aanbieders van dit soort installatiepakketten, bijvoorbeeld: [https://mynodebtc.com/ MyNode] en [https://raspiblitz.org/ RaspiBlitz]. Wil jij jouw node geheel zelfstandig installeren, dan zou je kunnen kijken naar de gebruikshandleiding van [https://docs.theroadtonode.com/ The Road to Node].<br />
<br />
==== Applicaties/Interfaces ====<br />
Middels CLI kan je [[commando's]] geven om kanalen te openen, fees aan te passen of betalingen te doen. Voor iemand die niet thuis is in de command line zijn er alternatieven die het makkelijker maken om eerdergenoemde acties uit te voeren. [[RTL|Ride The Lightning]] (RTL) en [[ThunderHub]] (TH) zijn interfaces die eenvoudig te installeren zijn in bijvoorbeeld Umbrel of MyNode. Elke interface heeft zijn eigen voordelen maar de meeste, en sowieso de belangrijkste, functionaliteiten kunnen uitgevoerd worden.<br />
<br />
== Foutmeldingen ==<br />
<br />
=== No Route-probleem ===<br />
Er zit een aantal voorwaarden voor betalingen:<br />
<br />
# Kent je node alle routes van het netwerk? Je node krijgt via gossip (roddelen) binnen een paar uur/dagen de netwerkinformatie door. Als je node de netwerkinformatie nog niet heeft, kan hij nog geen route berekenen. Op Umbrel kan je op [[Umbrel lightning node#Bekijken hoe veel routes je node kent|deze manier]] controleren hoeveel kanalen je node kent.<br />
# Heb je [[Liquiditeit|uitgaande liquiditeit]]?<br />
#* Je hebt kanalen nodig met lokale balans. Als jij een kanaal hebt geopend staat het balans aan jouw kant (goed).<br />
#* '''Kanaalreserve:''' Er moet altijd ongeveer 1% van de balans aan iedere kant van het kanaal blijven. Ook wordt er een reservering gemaakt voor het geval het kanaal gesloten wordt. Dit betekent dat er altijd een percentage <5% niet-verzendbaar is. Het zorgt dat mensen beide partijen "iets te verliezen" hebben als ze valsspelen. Behalve on-chain fees ben je nog WEL eigenaar van deze sats en krijg je ze gewoon terug bij sluiten.<br />
#* De uitgaande route is mogelijk te duur. Als degenen met wie je kanalen hebt te hoge uitgaande fees hebben, zal jouw wallet niet willen betalen.<br />
#* Zijn je peers online?<br />
'''Als/zodra je 2 dagen een publiek kanaal hebt, dan moeten de meeste problemen verdwijnen'''. Als je meerdere kanalen hebt krijg je sneller netwerkingormatie door en gaat dat sneller.<br />
<br />
<br />
<br />
<comments /></div>Briskhttps://bitcoinwiki.nl/index.php?title=CPFP&diff=1454CPFP2021-03-10T16:02:25Z<p>Brisk: </p>
<hr />
<div>CPFP staat voor '''Child Pays for Parent'''. Het is een manier om [[Transacties]] (sneller) te laten bevestigen. Kortweg komt het erop neer dat je de outputs van een onbevestigde transactie uitgeeft met een hogere [[Transacties|fee]], om daarmee de onbevestigde transactie te bevestigen.<br />
<br />
== Waarom werkt dit? ==<br />
CPFP werkt omdat:<br />
<br />
* Transactie die in een blok komen moeten ALTIJD terugverwijzen naar transacties in een bevestigd blok. Om de nieuwe CPFP-transactie te bevestigen MOETEN miners dus de oude transactie bevestigen, en in het(zelfde) blok zetten.<br />
* Miners willen geld verdienen en zullen je duurdere CPFP-transactie willen bevestigen.<br />
<br />
== Welke fee gebruiken bij mijn CPFP? ==<br />
Het is belangrijk te beseffen dat als je oude transactie 1sat/vB had, en huidige blokken 20sat/vB , dat je een CPFP niet voor elkaar krijgt met 20sat/vB. <br />
<br />
Miners willen geld verdienen met hun gelimiteerde blokruimte. Als ze dus jouw CPFP doen, dan bekijken ze hoeveel fee ze ontvangen voor je nieuwe CPFP-transactie, maar ze bedenken ook dat ze ruimte moeten geven aan je oude transactie. Je moet dus meer dan 20sat/vB uitgeven om voor het pakketje transacties (oude + nieuwe CPFP) uit te komen op een goede fee.<br />
<br />
Calculator: https://cpfp.djbooth007.com/<br />
<br />
== Als ontvanger de bitcoin CPFP'en ==<br />
Je kan als ontvanger van een onbevestigde transactie, deze CPFP'en. Kijk wel eerst of de goedkopere optie [[RBF]] een optie is voor je. <br />
<br />
Om een transactie te CPFP'en, dient je wallet jou toe te staan [[Coinselectie]] te doen. Je selecteert de onbevestigde coins en geeft deze uit voor een hogere fee.<br />
<br />
=== Toepassen in Lightning ===<br />
Bij het funden van de wallet van jouw Lightning Node, kan je de onbevestigde tegoeden al gebruiken om kanalen te openen. Hiermee kan je de kanaal-opentransactie ('child') gebruiken, om de funding-transactie ('parent') bevestigd te krijgen. In de [[Commando's|commandline]] kan je dit doen door het argument <code>--min_confs 0</code> toe te voegen aan het kanaal-open [[Commando's|commando]]. Maar ook in de app/interface [[RTL|'Ride the Lightning'/RTL]] zit de optie 'Spend Unconfirmend Output' bij het openen van kanalen.<br />
<br />
== Als verzender de change uitgeven ==<br />
Als jij bitcoin hebt uitgegeven en je krijgt klachten dat de transactie te lang duurt, dan kan je mogelijk CPFP gebruiken. Controleer eerst of jouw wallet [[RBF]] ondersteunt, dat is een goedkopere optie.<br />
<br />
Normaalgesproken kan de ontvanger van een transactie deze bitcoin uitgeven op de CPFP-manier. Maar als verzender ben je niet de hoofd-ontvanger van een transactie. Met een beetje geluk is er wel [[Transacties#Alles verplicht uitgeven .28Change-adressen.29|change]]. Dit is het wisselgeld dat in je (onbevestigde) transactie terug werd gestuurd naar jouw wallet. Deze change is ook onbevestigd, want het zit in dezelfde onbevestigde transactie.<br />
<br />
In wallets die [[Coinselectie]] toestaan kan je de change selecteren en deze uitgeven tegen een hogere fee, hiermee doe je een CPFP-transactie.<br />
<br />
=== Toepassen in Lightning ===<br />
Als het openen van jouw kanaal te lang duurt, dan kan je de change van de [[Lightning#Concepten|kanaal-opentransactie]] CPFP'en. Dit is wel een wat geavanceerde manier van werken. Ook dit kan in [[RTL]], middels de optie 'Bump Fee'.</div>Briskhttps://bitcoinwiki.nl/index.php?title=Commando%27s&diff=1453Commando's2021-03-10T14:53:20Z<p>Brisk: lncli openchannel</p>
<hr />
<div><br />
<br />
Een lijst met [[Lightning]] en [[Bitcoin node]] commando's. Zeer zeker incompleet. Zie [[Umbrel]] voor extra instructies hoe dit werkt op Umbrel.<br />
<br />
{{Beginnetje}}<br />
<br />
=== Bitcoin ===<br />
<br />
==== Duurste transacties uit mempool halen ====<br />
Nodig: bitcoin-cli en jq<br />
<br />
<code>bitcoin-cli getrawmempool true | jq -c '.[]|[(.fee/.vsize)*100000000,.wtxid]' | sort -rV | head -n 10</code><br />
<br />
Als je ongeldige transacties terugkrijgt, kan je ze controleren:<br />
<br />
<code>bitcoin-cli getrawmempool true | jq -c '.[]|[(.fee/.vsize)*100000000,.wtxid]' | sort -rV | while read line; do bitcoin-cli getrawtransaction $( echo "$line"| jq -r '.[1]' ) >/dev/null 2>&1 && echo $line && break ; done</code><br />
<br />
=== Lightning ===<br />
<br />
==== Kanaal openen ====<br />
In LND kan je het volgende commando geven om een kanaal te openen naar een specifieke node.<br />
<br />
<code>lncli openchannel --node_key XXX --local_amt WAARDE IN SATS --sat_per_byte FEE IN SATS</code><br />
<br />
In bovenstaand commando kunnen nog optionele argumenten toegevoegd worden:<br />
<br />
<code>--min_confs 0</code> Spend unconfirmed. Door voor waarde '0' te kiezen kan je onbevestigde tegoeden gebruiken om een nieuw kanaal te openen. Zie ook [[CPFP]].<br />
<br />
<code>--push_amt WAARDE IN SATS</code> '''Pas op!''' Door dit argument te gebruiken worden bij het openen van een kanaal direct satoshis naar de andere kant van het kanaal gestuurd. Hiermee kan je gebalanceerde kanalen openen. Echter, doe dit alleen als je de peer met wie je verbindt kent en vertrouwt, en maak hier vooraf goede afspraken over. Bij het versturen van de satoshis zijn deze namelijk niet meer van jou. Zie ook [[Liquiditeit]].<br />
<br />
Wil je gebalanceerde kanalen openen? Kom dan naar de Telegram groep voor Nederlandstalige Lightning gebruikers: [https://t.me/lightningNL @LightningNL].</div>Briskhttps://bitcoinwiki.nl/index.php?title=CPFP&diff=1442CPFP2021-03-10T11:08:59Z<p>Brisk: /* Als verzender de change uitgeven */</p>
<hr />
<div>CPFP staat voor '''Child Pays for Parent'''. Het is een manier om [[Transacties]] (sneller) te laten bevestigen. Kortweg komt het erop neer dat je de outputs van een onbevestigde transactie uitgeeft met een hogere [[Transacties|fee]], om daarmee de onbevestigde transactie te bevestigen.<br />
<br />
=== Waarom werkt dit? ===<br />
CPFP werkt omdat:<br />
<br />
* Transactie die in een blok komen moeten ALTIJD terugverwijzen naar transacties in een bevestigd blok. Om de nieuwe CPFP-transactie te bevestigen MOETEN miners dus de oude transactie bevestigen, en in het(zelfde) blok zetten.<br />
* Miners willen geld verdienen en zullen je duurdere CPFP-transactie willen bevestigen.<br />
<br />
=== Welke fee gebruiken bij mijn CPFP? ===<br />
Het is belangrijk te beseffen dat als je oude transactie 1sat/vB had, en huidige blokken 20sat/vB , dat je een CPFP niet voor elkaar krijgt met 20sat/vB. <br />
<br />
Miners willen geld verdienen met hun gelimiteerde blokruimte. Als ze dus jouw CPFP doen, dan bekijken ze hoeveel fee ze ontvangen voor je nieuwe CPFP-transactie, maar ze bedenken ook dat ze ruimte moeten geven aan je oude transactie. Je moet dus meer dan 20sat/vB uitgeven om voor het pakketje transacties (oude + nieuwe CPFP) uit te komen op een goede fee.<br />
<br />
Calculator: https://cpfp.djbooth007.com/<br />
<br />
=== Ontvangen bitcoin uitgeven CPFP'en ===<br />
Je kan als ontvanger van een onbevestigde transactie, deze CPFP'en. Kijk wel eerst of de goedkopere optie [[RBF]] een optie is voor je. <br />
<br />
Om een transactie te CPFP'en, dient je wallet jou toe te staan [[Coinselectie]] te doen. Je selecteert de onbevestigde coins en geeft deze uit voor een hogere fee.<br />
<br />
=== Als verzender de change uitgeven ===<br />
Als jij bitcoin hebt uitgegeven en je krijgt klachten dat de transactie te lang duurt, dan kan je mogelijk CPFP gebruiken. Controleer eerst of jouw wallet [[RBF]] ondersteunt, dat is een goedkopere optie.<br />
<br />
Normaalgesproken kan de ontvanger van een transactie deze bitcoin uitgeven op de CPFP-manier. Maar als verzender ben je niet de hoofd-ontvanger van een transactie. Met een beetje geluk is er wel [[Transacties#Alles verplicht uitgeven .28Change-adressen.29|change]]. Dit is het wisselgeld dat in je (onbevestigde) transactie terug werd gestuurd naar jouw wallet. Deze change is ook onbevestigd, want het zit in dezelfde onbevestigde transactie.<br />
<br />
In wallets die [[Coinselectie]] toestaan kan je de change selecteren en deze uitgeven tegen een hogere fee, hiermee doe je een CPFP-transactie.<br />
<br />
In het geval van [[Lightning]] is deze truc ook te gebruiken:<br />
<br />
# Bij het funden van de wallet van jouw Lightning Node, kan je de onbevestigde tegoeden al gebruiken om kanalen te openen. Hiermee kan je de kanaal-opentransactie ('child') gebruiken, om de funding-transactie ('parent') bevestigd te krijgen. In de [[Commando's|commandline]] kan je dit doen door het argument <code>--min_confs 0</code> toe te voegen aan het kanaal-open [[Commando's|commando]]. Maar ook in de app/interface [[RTL|'Ride the Lightning'/RTL]] zit de optie 'Spend Unconfirmend Output' bij het openen van kanalen.<br />
# Als het openen van jouw kanaal te lang duurt, dan kan je de change van de [[Lightning#Concepten|kanaal-opentransactie]] CPFP'en. Dit is wel een wat geavanceerde manier van werken. Ook dit kan in [[RTL]], middels de optie 'Bump Fee'.</div>Briskhttps://bitcoinwiki.nl/index.php?title=CPFP&diff=1436CPFP2021-03-10T10:39:28Z<p>Brisk: Toevoeging op CPFP bij Lightning.</p>
<hr />
<div>CPFP staat voor '''Child Pays for Parent'''. Het is een manier om [[Transacties]] (sneller) te laten bevestigen. Kortweg komt het erop neer dat je de outputs van een onbevestigde transactie uitgeeft met een hogere [[Transacties|fee]], om daarmee de onbevestigde transactie te bevestigen.<br />
<br />
=== Waarom werkt dit? ===<br />
CPFP werkt omdat:<br />
<br />
* Transactie die in een blok komen moeten ALTIJD terugverwijzen naar transacties in een bevestigd blok. Om de nieuwe CPFP-transactie te bevestigen MOETEN miners dus de oude transactie bevestigen, en in het(zelfde) blok zetten.<br />
* Miners willen geld verdienen en zullen je duurdere CPFP-transactie willen bevestigen.<br />
<br />
=== Welke fee gebruiken bij mijn CPFP? ===<br />
Het is belangrijk te beseffen dat als je oude transactie 1sat/vB had, en huidige blokken 20sat/vB , dat je een CPFP niet voor elkaar krijgt met 20sat/vB. <br />
<br />
Miners willen geld verdienen met hun gelimiteerde blokruimte. Als ze dus jouw CPFP doen, dan bekijken ze hoeveel fee ze ontvangen voor je nieuwe CPFP-transactie, maar ze bedenken ook dat ze ruimte moeten geven aan je oude transactie. Je moet dus meer dan 20sat/vB uitgeven om voor het pakketje transacties (oude + nieuwe CPFP) uit te komen op een goede fee.<br />
<br />
Calculator: https://cpfp.djbooth007.com/<br />
<br />
=== Ontvangen bitcoin uitgeven CPFP'en ===<br />
Je kan als ontvanger van een onbevestigde transactie, deze CPFP'en. Kijk wel eerst of de goedkopere optie [[RBF]] een optie is voor je. <br />
<br />
Om een transactie te CPFP'en, dient je wallet jou toe te staan [[Coinselectie]] te doen. Je selecteert de onbevestigde coins en geeft deze uit voor een hogere fee.<br />
<br />
=== Als verzender de change uitgeven ===<br />
Als jij bitcoin hebt uitgegeven en je krijgt klachten dat de transactie te lang duurt, dan kan je mogelijk CPFP gebruiken. Controleer eerst of jouw wallet [[RBF]] ondersteunt, dat is een goedkopere optie.<br />
<br />
Normaalgesproken kan de ontvanger van een transactie deze bitcoin uitgeven op de CPFP-manier. Maar als verzender ben je niet de hoofd-ontvanger van een transactie. Met een beetje geluk is er wel [[Transacties#Alles verplicht uitgeven .28Change-adressen.29|change]]. Dit is het wisselgeld dat in je (onbevestigde) transactie terug werd gestuurd naar jouw wallet. Deze change is ook onbevestigd, want het zit in dezelfde onbevestigde transactie.<br />
<br />
In wallets die [[Coinselectie]] toestaan kan je de change selecteren en deze uitgeven tegen een hogere fee, hiermee doe je een CPFP-transactie.<br />
<br />
In het geval van [[Lightning]] is deze truc ook te gebruiken:<br />
<br />
# Bij het funden van de wallet van jouw Lightning Node, kan je de onbevestigde tegoeden al gebruiken om kanalen te openen. Hiermee kan je de kanaal-opentransactie ('child') gebruiken, om de funding-transactie ('parent') bevestigd te krijgen. In de [[Commando's|commandline]] kan je dit doen door het argument '''''--min_confs 0''''' toe te voegen aan het kanaal-open [[Commando's|commando]]. Maar ook in de app/interface [[RTL|'Ride the Lightning'/RTL]] zit de optie 'Spend Unconfirmend Output' bij het openen van kanalen.<br />
# Als het openen van jouw kanaal te lang duurt, dan kan je de change van de [[Lightning#Concepten|kanaal-opentransactie]] CPFP'en. Dit is wel een wat geavanceerde manier van werken. Ook dit kan in [[RTL]], middels de optie 'Bump Fee'.</div>Briskhttps://bitcoinwiki.nl/index.php?title=Lightning&diff=1408Lightning2021-03-09T15:41:37Z<p>Brisk: /* Concepten */ Alfabetisering (m.u.v. eerste Peers & Kanalen); Toegevoegd: Commit Fee, Routing Fee en Hops, alinea Watchtowers bij Valsspelen</p>
<hr />
<div>Met Lightning kan je razendsnel goedkope microbetalingen in [[Bitcoin|bitcoin]] doen. Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit. <br />
<br />
'''''Zie [[#Lightning gebruiken]] als je meteen wilt beginnen.'''''<br />
<br />
Bitcoin transacties zijn relatief kostbaar. Dat komt omdat er maar een beperkte ruimte is op de blockchain: zo'n 1500 transacties per blok (per 10 minuten). Oftewel zo'n 9000 transacties per uur. (Credit card firmart Visa kan 10-duizenden transacties ''per seconde'' aan.)<br />
Kortom, Bitcoin is geen snelheidsmonster. Alle mensen die een Bitcoin-transactie aanbieden, concurreren om een plaatsje in een blok op de blockchain. Dit drijft de prijs voor een 'toegangskaartje' ('fee') naar de blockchain op. (Tot wel enige tientallen euro's per transactie in hectische perioden).<br />
Om toch meer transacties mogelijk te maken, is een systeem ontwikkeld dat de transacties (tijdelijk) niet via Bitcoin's blockchain laat lopen. Een analogie ter verduidelijking:<br />
<br />
:Iemand zit aan de bar en bestelt een biertje. De barman (m/v) turft dit af op een kaart. De avond verstrijkt, en er worden nog wat drankjes verorbert. Halverwege de avond blijkt 1 biertje bedorven: de barman streept de bijbehorende 'turf' door op de kaart. Als de klant naar huis gaat, vraagt de barman de klant de rekening te betalen. Er zijn misschien wel 10 drankjes besteld, en er was 1 restitutie, maar er vindt maar 1 geld-transactie plaats. We kunnen de kaart van de barman met een Lightning 'kanaal' vergelijken en de bank-transactie met een on-chain Bitcoin transactie. Ziehier een analogie ter verduidelijking van het Lightning Netwerk.<br />
<br />
Wat als onze bierdrinkende klant weggaat zonder te betalen? Een remedie zou kunnen zijn dat klanten die op de pof bestellen eerst een borg betalen, bijv 50 euro op de bar leggen. Maar wat als de barman zich niet netjes gedraagt en de 50 euro pakt en de zaak sluit voordat ie ook maar één biertje heeft geschonken? Met al dat soort grens-gevallen moet het Lightning Protocol rekening houden en oplossen, wil het een serieus betalingsnetwerk worden.<br />
<br />
''Er is een grote community van Nederlanders met een Lightning node. Je vindt de groep [https://t.me/lightningnl op Telegram].''<br />
<br />
= Concepten =<br />
''Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit.''<br />
<br />
; Peers (nodes)<br />
:De deelnemers aan het Lightning-netwerk. Als je zelf een node hebt dan ben je ook een peer. Als je verbindt met een andere node, dan heb je een '''peer-to-peer'''-connectie gemaakt. Als je enkel een wallet hebt dan wordt dat meestal niet als peer/node gezien; jouw telefoon is niet 24x7 online en helpt niet met het routeren van betalingen.<br />
; Kanalen<br />
:De basis van Lightning zijn kanalen. Simpel gezegd zijn dit afspraken tussen twee '''peers''', bijvoorbeeld Alies en Bob. Alies heeft 0.1 bitcoin (10 miljoen [[Satoshi|sats]]) op haar node gezet, en gaat een kanaal openen van deze 10 miljoen sat. Ze geeft aan een kanaal met Bob te willen openen, en de nodes maken een on-chain Opentransactie transactie met een capaciteit van 10 miljoen sat. Hiermee zetten ze 10 miljoen "vast".<br />
; Balans<br />
:De capaciteit van het kanaal is altijd verdeeld tussen de peers. In het voorbeeld staat na openen 10 miljoen sats aan de kant van Alies, en 0 sats aan de kant van Bob. Dit kanaal is overigens "uit balans", en door transacties te doen van Alies naar Bob, zullen de balansen veranderen.<br />
; Capaciteit<br />
:Het aantal satoshi dat wordt vastgezet voor een kanaal is de capaciteit. De capaciteit kan niet veranderen. In het begin staat de capaciteit in principe aan de "kant" van de opener: als het kanaal gesloten wordt dan komen die sats terug naar de opener.<br />
; Commit Fee<br />
:Bij het openen van een kanaal zal niet de volledige capaciteit te gebruiken zijn voor transacties. Een deel van de satoshi is gereserveerd voor wanneer er een éénzijdige sluittransactie (force close) voordoet. De hoogte van de reservering is dynamisch en afhankelijk van de actuele hoogte van de kosten om de sluittransactie te publiceren.<br />
;[[Liquiditeit|Inkomende liquiditeit]]<br />
:Toen Alies haar kanaal van 10 miljoen sats opende, stonden al die sats "aan haar kant" (zie '''Balans'''). Ze kon 10 miljoen sats overmaken. Ze had hier uitgaande liquiditeit. Het voorbeeldkanaal gaf haar echter geen inkomende liquiditeit. Er stonden geen sats aan de andere kant van dit kanaal, om te kunnen ontvangen. Dat is de basis van inkomende liquiditeit: dat je (als node) kanalen hebt met sats aan de andere kant van het kanaal. Als mensen kanalen naar jou openen krijg je inkomende liquiditeit. En als je betalingen doet, verschuiven sats naar de andere kant van het kanaal, en dat wordt dan ook inkomende liquiditeit.<br />
; Invoice<br />
:Een betaalverzoek. Zowel nodes als wallets kunnen deze betaalverzoeken maken. Het is een lang stuk tekst dat begint met lnbc1, en meestal wordt het ook een QR-code. De betaler scant de invoice, zijn wallet of node berekent een route en betaalt.<br />
; Lightningtransacties<br />
:Zodra het kanaal open is (3 bevestigingen van de Opentransactie), kunnen er betalingen worden gedaan. Alies kan met dit open kanaal een betaling doen naar Bob, omdat zij sats aan haar kant van het kanaal heeft staan. Bob kan (in dit kanaal) geen betalingen doen naar Alies, er staan namelijk geen sats aan zijn kant om naar Alies te verschuiven. Als Alies een betaling doet, van bijvoorbeeld 100 000 sat, dan zullen de balansen verschuiven. Waar Alies eerst 10 miljoen, en Bob 0 sats had, zijn de balansen na de betaling van 100 000 sat anders: Alies heeft nu nog 9 900 000 sat en Bob heeft nu 100 000 sat. Deze nieuwe '''kanaalstatus''' wordt tussen de peers afgesproken. Ook maken Alies en Bob een sluit-transactie. De sluittransactie zegt: "Van de vastgezette 10 miljoen sats uit de Openingstransactie, krijgt Alies 9 900 000 sats en Bob 100 000 sats". De sluit-transactie wordt door beiden getekend. Deze sluit-transactie publiceren ze NIET op de blockchain. Ze bewaren hem voor als er wat misgaat.<br />
; Netwerk<br />
:Alle nodes samen maken het netwerk. Het mooie van Lightning is dat Alies in bovenstaand scenario ook naar Charles kan sturen, als Bob een kanaal met Charles heeft. De betaling neemt dan de '''route''' Alies -> Bob -> Charles.<br />
; Opentransactie<br />
:Bij het openen van een kanaal spreken de twee nodes een transactie af. In de basis staat in deze transactie: "Alies krijgt 10 miljoen sats terug bij het sluiten van dit kanaal, Bob krijgt niks". Alies heeft namelijk recht op haar 10 miljoen sats, het waren per slot van rekening haar sats (bitcoin) die ze gebruikte voor het openen. We noemen dit de '''kanaalstatus'''.<br />
; Roddelen<br />
:Nodes geven elkaar continu kanaalinformatie door met een proces dat Gossipping (roddelen) heet. Elke node moet alle kanalen (gaan) kennen. Zeker als je net een node bent begonnen, zal je merken dat het 1 of 2 dagen kan duren na het openen van je kanaal, voordat jouw node hoogte krijgt van het hele netwerk. Hoe meer kanalen (peers) je hebt, hoe meer/sneller je kan roddelen, en hoe sneller je kanaalinfo doorkrijgt.<br />
; Routes<br />
:Betalingen over het Lightningnetwerk nemen routes. In het voorbeeld hierboven hebben Alies en Bob een kanaal, net als Bob en Charles. Alies kan Charles betalen met de route Alies -> Bob -> Charles. Het is hierbij nodig dat: (1) Alle kanalen voldoende capaciteit hebben, (2) De routes niet te duur zijn, en (3) Alle kanalen actief zijn (geen offline peers).<br />
:Als aan deze voorwaarden is voldaan, kan de betaling gebeuren. Als één van deze dingen mist, of Alies weet bijvoorbeeld niet van het kanaal van Bob naar Charles (zie '''roddelen'''), dan zal ze een NO ROUTE-fout krijgen: er is geen route waar de betaling overheen kan.<br />
; Routing Fee en Hops<br />
:Wanneer Alies Charles betaalt via Bob, zoals in het voorbeeld hierboven (Alies -> Bob -> Charles), is er sprake van een Hop (sprongetje) via Bob. Bob kan voor deze Hop een provisie rekenen, de Routing Fee. Door zijn node beschikbaar te stellen als tussenstap en daar een vergoeding tegenover te zetten, kan hij verdienen aan het routeren van transacties. Deze fees kunnen algemeen ingesteld worden voor de gehele node of per kanaal verschillen. Zo kan er aangemoedigd dan wel ontmoedigd worden om een specifiek kanaal te gebruiken, bijvoorbeeld op basis van de balans van het kanaal.<br />
; Sluittransactie<br />
:Als de peers klaar zijn met het kanaal, kunnen ze de sluittransactie publiceren en zo onchain hun "echte bitcoin" terugkrijgen. Ze krijgen de bitcoin terug volgens de laatste status. Als de twee nodes het eens zijn over de status (en (dus) allebei online zijn), dan zal dit een cooperatieve close zijn. Als er één van de twee offline is, zal het een force close zijn, waar de meest recente status wordt gepubliceerd. Deze force closes zijn duurder dan cooperative closes.<br />
; Valsspelen<br />
:Peers kunnen proberen vals te spelen. Alies zou bijvoorbeeld kunnen proberen 10 miljoen sats (in plaats van haar werkelijke 9 900 000 sats) te claimen door de oude kanaalstatus te publiceren (de transactie van haar schijf op de blockchain publiceren). Gelukkig houdt de node van Bob houdt continu de transacties bij. Als hij ziet dat Alies een oneerlijke claim doet, kan hij dit bewijzen aan het netwerk door de nieuwere status te laten zien, Bob heeft namelijk een sluittransactie met nieuwere status, en die transactie is zelfs getekend door Alies (toen ze de vorige Lightningtransactie deden)! Bob mag nu de gehele capaciteit claimen. Zo blijft Lightning eerlijk.<br />
:Echter, wanneer de node van Bob offline is kan deze niet de laatste, meest actuele status verzenden. Dit is een risico waardoor Alies alsnog de oneerlijke claim kan doen. Eén van de oplossingen voor dit probleem zijn Watchtowers (uitkijktorens). Dit zijn nodes beheerd door een derde partij die voor jou de laatste status van de kanalen bijhoudt en een bericht stuurt wanneer er een 'breach'/ongeldige publicatie wordt gedaan. <br />
<br />
= Lightning gebruiken =<br />
Er zijn grofweg twee manieren om Lightning te gebruiken. <br />
<br />
* Een '''wallet''' is het makkelijkst. Je zet er bitcoin op, zet die bitcoin om naar Lightning-bitcoin en kan Lightning gebruiken. Zie [[BlueWallet]] voor een simpel beginnetje.<br />
* Geavanceerde gebruikers kunnen zelf een node opzetten. Een '''node''' is altijd online, routeert betalingen en heeft wat werk nodig om op te zetten. [[Umbrel lightning node|Umbrel]] is een makkelijker manier om een node op te zetten.<br />
<br />
== Wallet ==<br />
Het makkelijkst is om [[BlueWallet]] op je telefoon te installeren, als je Lightning wil gebruiken. <br />
<br />
== Node ==<br />
Zelf een node draaien is leuk om te doen en je draagt bij aan de Bitcoin [[blockchain]]. Met een Raspberry Pi computer, opslag voor de [[Blockchain]] en Node-software (zoals [[Umbrel]], [https://mynodebtc.com/ MyNode], [https://raspiblitz.org/ RaspiBlitz]) kan je zelf een node draaien.<br />
<br />
=== Umbrel ===<br />
[[Umbrel lightning node|Umbrel]] is één van de gemakkelijkste en gebruiksvriendelijkste manieren om een node te draaien op een Raspberry Pi. Hiermee kan je binnen een aantal stappen zowel een bitcoin node als een lightning network node opzetten.<br />
<br />
=== Alternatieven ===<br />
Momenteel is Umbrel één van de meest gebruikte node softwares in Nederland. Er zijn echter meer aanbieders van dit soort installatiepakketten, bijvoorbeeld: [https://mynodebtc.com/ MyNode] en [https://raspiblitz.org/ RaspiBlitz]. Wil jij jouw node geheel zelfstandig installeren, dan zou je kunnen kijken naar de gebruikshandleiding van [https://docs.theroadtonode.com/ The Road to Node].<br />
<br />
=== Hardware ===<br />
{| class="wikitable" <br />
|- style="font-weight:bold;"<br />
! <br />
! Langzaam <br />
(Ongeveer 150 euro)<br />
! Snel <br />
(Ongeveer 250 euro)<br />
|-<br />
| Computer<br />
| [https://tweakers.net/pricewatch/1414470/raspberry-pi-4-model-b-4gb-ram.html Raspberry Pi 4B (4GB)] <br />
(60 euro)<br />
| [https://tweakers.net/pricewatch/1562568/raspberry-pi-4-model-b-8gb-ram.html Raspberry Pi 4B (8GB)] <br />
(90 euro)<br />
|-<br />
| SD-kaart <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/986595/sandisk-ultra-microsdxc-class-10-uhs-i-a1-uhs-class-1-64gb-+-sd-adapter.html 64GB SD-kaart] <br />
(12 euro)<br />
Om besturingssysteem op te zetten <br />
|-<br />
| Voeding <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/1415202/raspberry-pi-153w-usb-c-power-supply.html 15W USB-C voeding]<br />
(10 euro)<br />
Tip: koop geen andere <br />
|-<br />
| Blockchain opslag<br />
| [https://tweakers.net/pricewatch/339768/wd-elements-portable-usb-30-1tb-zwart.html Harde Schijf] <br />
(50 euro)<br />
Blockchain syncen duurt een paar weken<br />
| [https://tweakers.net/pricewatch/942129/samsung-portable-ssd-t5-1tb-zwart.html SSD] <br />
(125 euro)<br />
Blockchain syncen duurt een paar dagen<br />
|-<br />
| Heatsink <br />
| colspan="2" style="text-align:center;"| [https://www.kiwi-electronics.nl/com-3101?search=Raspberry%20pi&description=true Alu heatsink] of [https://www.sossolutions.nl/raspberry-pi-4-aluminium-koeling-heatsink deze] <br />
(15 euro)<br />
|-<br />
| Netwerk (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/305850/gembird-pp6-15m-cat6-15m-grijs-wit.html 1.5m UTP cable] <br />
(1 euro)<br />
|-<br />
| HDMI (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/389208/startech-punt-com-hdmiadmm3-zwart.html HDMI cable] <br />
(5 euro)<br />
|-<br />
| (Kanalen)<br />
| colspan="2" style="text-align:center;"| Reserveer ook wat geld voor kanalen, dat raak je niet kwijt, maar is nodig om betalingen mee te doen. Bijvoorbeeld 100 euro.<br />
|}<br />
<br />
== Foutmeldingen ==<br />
<br />
=== No Route-probleem ===<br />
Er zit een aantal voorwaarden voor betalingen:<br />
<br />
# Kent je node alle routes van het netwerk? Je node krijgt via gossip (roddelen) binnen een paar uur/dagen de netwerkinformatie door. Als je node de netwerkinformatie nog niet heeft, kan hij nog geen route berekenen. Op Umbrel kan je op [[Umbrel lightning node#Bekijken hoe veel routes je node kent|deze manier]] controleren hoeveel kanalen je node kent.<br />
# Heb je [[Liquiditeit|uitgaande liquiditeit]]?<br />
#* Je hebt kanalen nodig met lokale balans. Als jij een kanaal hebt geopend staat het balans aan jouw kant (goed).<br />
#* '''Kanaalreserve:''' Er moet altijd ongeveer 1% van de balans aan iedere kant van het kanaal blijven. Ook wordt er een reservering gemaakt voor het geval het kanaal gesloten wordt. Dit betekent dat er altijd een percentage <5% niet-verzendbaar is. Het zorgt dat mensen beide partijen "iets te verliezen" hebben als ze valsspelen. Behalve on-chain fees ben je nog WEL eigenaar van deze sats en krijg je ze gewoon terug bij sluiten.<br />
#* De uitgaande route is mogelijk te duur. Als degenen met wie je kanalen hebt te hoge uitgaande fees hebben, zal jouw wallet niet willen betalen.<br />
#* Zijn je peers online?<br />
'''Als/zodra je 2 dagen een publiek kanaal hebt, dan moeten de meeste problemen verdwijnen'''. Als je meerdere kanalen hebt krijg je sneller netwerkingormatie door en gaat dat sneller.<br />
<br />
<br />
<br />
<comments /></div>Briskhttps://bitcoinwiki.nl/index.php?title=Lightning&diff=1358Lightning2021-03-08T15:18:23Z<p>Brisk: </p>
<hr />
<div>Met Lightning kan je razendsnel goedkope microbetalingen in [[Bitcoin|bitcoin]] doen. Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit. <br />
<br />
'''''Zie [[#Lightning gebruiken]] als je meteen wilt beginnen.'''''<br />
<br />
Bitcoin transacties zijn relatief kostbaar. Dat komt omdat er maar een beperkte ruimte is op de blockchain: zo'n 1500 transacties per blok (per 10 minuten). Oftewel zo'n 9000 transacties per uur. (Credit card firmart Visa kan 10-duizenden transacties ''per seconde'' aan.)<br />
Kortom, Bitcoin is geen snelheidsmonster. Alle mensen die een Bitcoin-transactie aanbieden, concurreren om een plaatsje in een blok op de blockchain. Dit drijft de prijs voor een 'toegangskaartje' ('fee') naar de blockchain op. (Tot wel enige tientallen euro's per transactie in hectische perioden).<br />
Om toch meer transacties mogelijk te maken, is een systeem ontwikkeld dat de transacties (tijdelijk) niet via Bitcoin's blockchain laat lopen. Een analogie ter verduidelijking:<br />
<br />
:Iemand zit aan de bar en bestelt een biertje. De barman (m/v) turft dit af op een kaart. De avond verstrijkt, en er worden nog wat drankjes verorbert. Halverwege de avond blijkt 1 biertje bedorven: de barman streept de bijbehorende 'turf' door op de kaart. Als de klant naar huis gaat, vraagt de barman de klant de rekening te betalen. Er zijn misschien wel 10 drankjes besteld, en er was 1 restitutie, maar er vindt maar 1 geld-transactie plaats. We kunnen de kaart van de barman met een Lightning 'kanaal' vergelijken en de bank-transactie met een on-chain Bitcoin transactie. Ziehier een analogie ter verduidelijking van het Lightning Netwerk.<br />
<br />
Wat als onze bierdrinkende klant weggaat zonder te betalen? Een remedie zou kunnen zijn dat klanten die op de pof bestellen eerst een borg betalen, bijv 50 euro op de bar leggen. Maar wat als de barman zich niet netjes gedraagt en de 50 euro pakt en de zaak sluit voordat ie ook maar één biertje heeft geschonken? Met al dat soort grens-gevallen moet het Lightning Protocol rekening houden en oplossen, wil het een serieus betalingsnetwerk worden.<br />
<br />
''Er is een grote community van Nederlanders met een Lightning node. Je vindt de groep [https://t.me/lightningnl op Telegram].''<br />
<br />
= Concepten =<br />
''Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit.''<br />
<br />
; Peers (nodes)<br />
:De deelnemers aan het Lightning-netwerk. Als je zelf een node hebt dan ben je ook een peer. Als je verbindt met een andere node, dan heb je een '''peer-to-peer'''-connectie gemaakt. Als je enkel een wallet hebt dan wordt dat meestal niet als peer/node gezien; jouw telefoon is niet 24x7 online en helpt niet met het routeren van betalingen.<br />
; Kanalen<br />
:De basis van Lightning zijn kanalen. Simpel gezegd zijn dit afspraken tussen twee '''peers''', bijvoorbeeld Alies en Bob. Alies heeft 0.1 bitcoin (10 miljoen [[Satoshi|sats]]) op haar node gezet, en gaat een kanaal openen van deze 10 miljoen sat. Ze geeft aan een kanaal met Bob te willen openen, en de nodes maken een on-chain Opentransactie transactie met een capaciteit van 10 miljoen sat. Hiermee zetten ze 10 miljoen "vast".<br />
; Capaciteit<br />
:Het aantal satoshi dat wordt vastgezet voor een kanaal is de capaciteit. De capaciteit kan niet veranderen. In het begin staat de capaciteit in principe aan de "kant" van de opener: als het kanaal gesloten wordt dan komen die sats terug naar de opener.<br />
; Opentransactie<br />
:Bij het openen van een kanaal spreken de twee nodes een transactie af. In de basis staat in deze transactie: "Alies krijgt 10 miljoen sats terug bij het sluiten van dit kanaal, Bob krijgt niks". Alies heeft namelijk recht op haar 10 miljoen sats, het waren per slot van rekening haar sats (bitcoin) die ze gebruikte voor het openen. We noemen dit de '''kanaalstatus'''.<br />
; Balans<br />
:De capaciteit van het kanaal is altijd verdeeld tussen de peers. In het voorbeeld staat na openen 10 miljoen sats aan de kant van Alies, en 0 sats aan de kant van Bob. Dit kanaal is overigens "uit balans", en door transacties te doen van Alies naar Bob, zullen de balansen veranderen.<br />
; Lightningtransacties<br />
:Zodra het kanaal open is (3 bevestigingen van de Opentransactie), kunnen er betalingen worden gedaan. Alies kan met dit open kanaal een betaling doen naar Bob, omdat zij sats aan haar kant van het kanaal heeft staan. Bob kan (in dit kanaal) geen betalingen doen naar Alies, er staan namelijk geen sats aan zijn kant om naar Alies te verschuiven. Als Alies een betaling doet, van bijvoorbeeld 100 000 sat, dan zullen de balansen verschuiven. Waar Alies eerst 10 miljoen, en Bob 0 sats had, zijn de balansen na de betaling van 100 000 sat anders: Alies heeft nu nog 9 900 000 sat en Bob heeft nu 100 000 sat. Deze nieuwe '''kanaalstatus''' wordt tussen de peers afgesproken. Ook maken Alies en Bob een sluit-transactie. De sluittransactie zegt: "Van de vastgezette 10 miljoen sats uit de Openingstransactie, krijgt Alies 9 900 000 sats en Bob 100 000 sats". De sluit-transactie wordt door beiden getekend. Deze sluit-transactie publiceren ze NIET op de blockchain. Ze bewaren hem voor als er wat misgaat.<br />
; Valsspelen<br />
:Peers kunnen proberen vals te spelen. Alies zou bijvoorbeeld kunnen proberen 10 miljoen sats (in plaats van haar werkelijke 9 900 000 sats) te claimen door de oude kanaalstatus te publiceren (de transactie van haar schijf op deblockchain publiceren). Gelukkig houdt de node van Bob houdt continu de transacties bij. Als hij ziet dat Alies een oneerlijke claim doet, kan hij dit bewijzen aan het netwerk door de nieuwere status te laten zien, Bob heeft namelijk een sluittransactie met nieuwere status, en die transactie is zelfs getekend door Alies (toen ze de vorige Lightningtransactie deden)! Bob mag nu de gehele capaciteit claimen. Zo blijft Lightning eerlijk.<br />
; [[Liquiditeit|Inkomende liquiditeit]]<br />
:Toen Alies haar kanaal van 10 miljoen sats opende, stonden al die sats "aan haar kant" (zie '''Balans'''). Ze kon 10 miljoen sats overmaken. Ze had hier uitgaande liquiditeit. Het voorbeeldkanaal gaf haar echter geen inkomende liquiditeit. Er stonden geen sats aan de andere kant van dit kanaal, om te kunnen ontvangen. Dat is de basis van inkomende liquiditeit: dat je (als node) kanalen hebt met sats aan de andere kant van het kanaal. Als mensen kanalen naar jou openen krijg je inkomende liquiditeit. En als je betalingen doet, verschuiven sats naar de andere kant van het kanaal, en dat wordt dan ook inkomende liquiditeit.<br />
; Netwerk<br />
:Alle nodes samen maken het netwerk. Het mooie van Lightning is dat Alies in bovenstaand scenario ook naar Charles kan sturen, als Bob een kanaal met Charles heeft. De betaling neemt dan de '''route''' Alies -> Bob -> Charles.<br />
; Invoice<br />
:Een betaalverzoek. Zowel nodes als wallets kunnen deze betaalverzoeken maken. Het is een lang stuk tekst dat begint met lnbc1, en meestal wordt het ook een QR-code. De betaler scant de invoice, zijn wallet of node berekent een route en betaalt.<br />
; Routes<br />
:Betalingen over het Lightningnetwerk nemen routes. In het voorbeeld hierboven hebben Alies en Bob een kanaal, net als Bob en Charles. Alies kan Charles betalen met de route Alies -> Bob -> Charles. Het is hierbij nodig dat: (1) Alle kanalen voldoende capaciteit hebben, (2) De routes niet te duur zijn, en (3) Alle kanalen actief zijn (geen offline peers). <br />
:Als aan deze voorwaarden is voldaan, kan de betaling gebeuren. Als één van deze dingen mist, of Alies weet bijvoorbeeld niet van het kanaal van Bob naar Charles (zie '''roddelen'''), dan zal ze een NO ROUTE-fout krijgen: er is geen route waar de betaling overheen kan.<br />
; Roddelen<br />
:Nodes geven elkaar continu kanaalinformatie door met een proces dat Gossipping (roddelen) heet. Elke node moet alle kanalen (gaan) kennen. Zeker als je net een node bent begonnen, zal je merken dat het 1 of 2 dagen kan duren na het openen van je kanaal, voordat jouw node hoogte krijgt van het hele netwerk. Hoe meer kanalen (peers) je hebt, hoe meer/sneller je kan roddelen, en hoe sneller je kanaalinfo doorkrijgt.<br />
; Sluittransactie<br />
:Als de peers klaar zijn met het kanaal, kunnen ze de sluittransactie publiceren en zo onchain hun "echte bitcoin" terugkrijgen. Ze krijgen de bitcoin terug volgens de laatste status. Als de twee nodes het eens zijn over de status (en (dus) allebei online zijn), dan zal dit een cooperatieve close zijn. Als er één van de twee offline is, zal het een force close zijn, waar de meest recente status wordt gepubliceerd. Deze force closes zijn duurder dan cooperative closes.<br />
<br />
= Lightning gebruiken =<br />
Er zijn grofweg twee manieren om Lightning te gebruiken. <br />
<br />
* Een '''wallet''' is het makkelijkst. Je zet er bitcoin op, zet die bitcoin om naar Lightning-bitcoin en kan Lightning gebruiken. Zie [[BlueWallet]] voor een simpel beginnetje.<br />
* Geavanceerde gebruikers kunnen zelf een node opzetten. Een '''node''' is altijd online, routeert betalingen en heeft wat werk nodig om op te zetten. [[Umbrel lightning node|Umbrel]] is een makkelijker manier om een node op te zetten.<br />
<br />
== Wallet ==<br />
Het makkelijkst is om [[BlueWallet]] op je telefoon te installeren, als je Lightning wil gebruiken. <br />
<br />
== Node ==<br />
Zelf een node draaien is leuk om te doen en je draagt bij aan de Bitcoin [[blockchain]]. Met een Raspberry Pi computer, opslag voor de [[Blockchain]] en Node-software (zoals [[Umbrel]], [https://mynodebtc.com/ MyNode], [https://raspiblitz.org/ RaspiBlitz]) kan je zelf een node draaien.<br />
<br />
=== Umbrel ===<br />
[[Umbrel lightning node|Umbrel]] is één van de gemakkelijkste en gebruiksvriendelijkste manieren om een node te draaien op een Raspberry Pi. Hiermee kan je binnen een aantal stappen zowel een bitcoin node als een lightning network node opzetten.<br />
<br />
=== Alternatieven ===<br />
Momenteel is Umbrel één van de meest gebruikte node softwares in Nederland. Er zijn echter meer aanbieders van dit soort installatiepakketten, bijvoorbeeld: [https://mynodebtc.com/ MyNode] en [https://raspiblitz.org/ RaspiBlitz]. Wil jij jouw node geheel zelfstandig installeren, dan zou je kunnen kijken naar de gebruikshandleiding van [https://docs.theroadtonode.com/ The Road to Node].<br />
<br />
=== Hardware ===<br />
{| class="wikitable" <br />
|- style="font-weight:bold;"<br />
! <br />
! Langzaam <br />
(Ongeveer 150 euro)<br />
! Snel <br />
(Ongeveer 250 euro)<br />
|-<br />
| Computer<br />
| [https://tweakers.net/pricewatch/1414470/raspberry-pi-4-model-b-4gb-ram.html Raspberry Pi 4B (4GB)] <br />
(60 euro)<br />
| [https://tweakers.net/pricewatch/1562568/raspberry-pi-4-model-b-8gb-ram.html Raspberry Pi 4B (8GB)] <br />
(90 euro)<br />
|-<br />
| SD-kaart <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/986595/sandisk-ultra-microsdxc-class-10-uhs-i-a1-uhs-class-1-64gb-+-sd-adapter.html 64GB SD-kaart] <br />
(12 euro)<br />
Om besturingssysteem op te zetten <br />
|-<br />
| Voeding <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/1415202/raspberry-pi-153w-usb-c-power-supply.html 15W USB-C voeding]<br />
(10 euro)<br />
Tip: koop geen andere <br />
|-<br />
| Blockchain opslag<br />
| [https://tweakers.net/pricewatch/339768/wd-elements-portable-usb-30-1tb-zwart.html Harde Schijf] <br />
(50 euro)<br />
Blockchain syncen duurt een paar weken<br />
| [https://tweakers.net/pricewatch/942129/samsung-portable-ssd-t5-1tb-zwart.html SSD] <br />
(125 euro)<br />
Blockchain syncen duurt een paar dagen<br />
|-<br />
| Heatsink <br />
| colspan="2" style="text-align:center;"| [https://www.kiwi-electronics.nl/com-3101?search=Raspberry%20pi&description=true Alu heatsink] of [https://www.sossolutions.nl/raspberry-pi-4-aluminium-koeling-heatsink deze] <br />
(15 euro)<br />
|-<br />
| Netwerk (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/305850/gembird-pp6-15m-cat6-15m-grijs-wit.html 1.5m UTP cable] <br />
(1 euro)<br />
|-<br />
| HDMI (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/389208/startech-punt-com-hdmiadmm3-zwart.html HDMI cable] <br />
(5 euro)<br />
|-<br />
| (Kanalen)<br />
| colspan="2" style="text-align:center;"| Reserveer ook wat geld voor kanalen, dat raak je niet kwijt, maar is nodig om betalingen mee te doen. Bijvoorbeeld 100 euro.<br />
|}<br />
<br />
== Foutmeldingen ==<br />
<br />
=== No Route-probleem ===<br />
Er zit een aantal voorwaarden voor betalingen:<br />
<br />
# Kent je node alle routes van het netwerk? Je node krijgt via gossip (roddelen) binnen een paar uur/dagen de netwerkinformatie door. Als je node de netwerkinformatie nog niet heeft, kan hij nog geen route berekenen. Op Umbrel kan je op [[Umbrel lightning node#Bekijken hoe veel routes je node kent|deze manier]] controleren hoeveel kanalen je node kent.<br />
# Heb je [[Liquiditeit|uitgaande liquiditeit]]?<br />
#* Je hebt kanalen nodig met lokale balans. Als jij een kanaal hebt geopend staat het balans aan jouw kant (goed).<br />
#* '''Kanaalreserve:''' Er moet altijd ongeveer 1% van de balans aan iedere kant van het kanaal blijven. Ook wordt er een reservering gemaakt voor het geval het kanaal gesloten wordt. Dit betekent dat er altijd een percentage <5% niet-verzendbaar is. Het zorgt dat mensen beide partijen "iets te verliezen" hebben als ze valsspelen. Behalve on-chain fees ben je nog WEL eigenaar van deze sats en krijg je ze gewoon terug bij sluiten.<br />
#* De uitgaande route is mogelijk te duur. Als degenen met wie je kanalen hebt te hoge uitgaande fees hebben, zal jouw wallet niet willen betalen.<br />
#* Zijn je peers online?<br />
'''Als/zodra je 2 dagen een publiek kanaal hebt, dan moeten de meeste problemen verdwijnen'''. Als je meerdere kanalen hebt krijg je sneller netwerkingormatie door en gaat dat sneller.<br />
<br />
<br />
<br />
<comments /></div>Briskhttps://bitcoinwiki.nl/index.php?title=Lightning&diff=1357Lightning2021-03-08T14:55:41Z<p>Brisk: /* Umbrel */</p>
<hr />
<div>Met Lightning kan je razendsnel goedkope microbetalingen in [[Bitcoin|bitcoin]] doen. Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit. <br />
<br />
'''''Zie [[#Lightning gebruiken]] als je meteen wilt beginnen.'''''<br />
<br />
Bitcoin transacties zijn relatief kostbaar. Dat komt omdat er maar een beperkte ruimte is op de blockchain: zo'n 1500 transacties per blok (per 10 minuten). Oftewel zo'n 9000 transacties per uur. (Credit card firmart Visa kan 10-duizenden transacties ''per seconde'' aan.)<br />
Kortom, Bitcoin is geen snelheidsmonster. Alle mensen die een Bitcoin-transactie aanbieden, concurreren om een plaatsje in een blok op de blockchain. Dit drijft de prijs voor een 'toegangskaartje' ('fee') naar de blockchain op. (Tot wel enige tientallen euro's per transactie in hectische perioden).<br />
Om toch meer transacties mogelijk te maken, is een systeem ontwikkeld dat de transacties (tijdelijk) niet via Bitcoin's blockchain laat lopen. Een analogie ter verduidelijking:<br />
<br />
:Iemand zit aan de bar en bestelt een biertje. De barman (m/v) turft dit af op een kaart. De avond verstrijkt, en er worden nog wat drankjes verorbert. Halverwege de avond blijkt 1 biertje bedorven: de barman streept de bijbehorende 'turf' door op de kaart. Als de klant naar huis gaat, vraagt de barman de klant de rekening te betalen. Er zijn misschien wel 10 drankjes besteld, en er was 1 restitutie, maar er vindt maar 1 geld-transactie plaats. We kunnen de kaart van de barman met een Lightning 'kanaal' vergelijken en de bank-transactie met een on-chain Bitcoin transactie. Ziehier een analogie ter verduidelijking van het Lightning Netwerk.<br />
<br />
Wat als onze bierdrinkende klant weggaat zonder te betalen? Een remedie zou kunnen zijn dat klanten die op de pof bestellen eerst een borg betalen, bijv 50 euro op de bar leggen. Maar wat als de barman zich niet netjes gedraagt en de 50 euro pakt en de zaak sluit voordat ie ook maar één biertje heeft geschonken? Met al dat soort grens-gevallen moet het Lightning Protocol rekening houden en oplossen, wil het een serieus betalingsnetwerk worden.<br />
<br />
''Er is een grote community van Nederlanders met een Lightning node. Je vindt de groep [https://t.me/lightningnl op Telegram].''<br />
<br />
= Concepten =<br />
''Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit.''<br />
<br />
; Peers (nodes)<br />
:De deelnemers aan het Lightning-netwerk. Als je zelf een node hebt dan ben je ook een peer. Als je verbindt met een andere node, dan heb je een '''peer-to-peer'''-connectie gemaakt. Als je enkel een wallet hebt dan wordt dat meestal niet als peer/node gezien; jouw telefoon is niet 24x7 online en helpt niet met het routeren van betalingen.<br />
; Kanalen<br />
:De basis van Lightning zijn kanalen. Simpel gezegd zijn dit afspraken tussen twee '''peers''', bijvoorbeeld Alies en Bob. Alies heeft 0.1 bitcoin (10 miljoen [[Satoshi|sats]]) op haar node gezet, en gaat een kanaal openen van deze 10 miljoen sat. Ze geeft aan een kanaal met Bob te willen openen, en de nodes maken een on-chain Opentransactie transactie met een capaciteit van 10 miljoen sat. Hiermee zetten ze 10 miljoen "vast".<br />
; Capaciteit<br />
:Het aantal satoshi dat wordt vastgezet voor een kanaal is de capaciteit. De capaciteit kan niet veranderen. In het begin staat de capaciteit in principe aan de "kant" van de opener: als het kanaal gesloten wordt dan komen die sats terug naar de opener.<br />
; Opentransactie<br />
:Bij het openen van een kanaal spreken de twee nodes een transactie af. In de basis staat in deze transactie: "Alies krijgt 10 miljoen sats terug bij het sluiten van dit kanaal, Bob krijgt niks". Alies heeft namelijk recht op haar 10 miljoen sats, het waren per slot van rekening haar sats (bitcoin) die ze gebruikte voor het openen. We noemen dit de '''kanaalstatus'''.<br />
; Balans<br />
:De capaciteit van het kanaal is altijd verdeeld tussen de peers. In het voorbeeld staat na openen 10 miljoen sats aan de kant van Alies, en 0 sats aan de kant van Bob. Dit kanaal is overigens "uit balans", en door transacties te doen van Alies naar Bob, zullen de balansen veranderen.<br />
; Lightningtransacties<br />
:Zodra het kanaal open is (3 bevestigingen van de Opentransactie), kunnen er betalingen worden gedaan. Alies kan met dit open kanaal een betaling doen naar Bob, omdat zij sats aan haar kant van het kanaal heeft staan. Bob kan (in dit kanaal) geen betalingen doen naar Alies, er staan namelijk geen sats aan zijn kant om naar Alies te verschuiven. Als Alies een betaling doet, van bijvoorbeeld 100 000 sat, dan zullen de balansen verschuiven. Waar Alies eerst 10 miljoen, en Bob 0 sats had, zijn de balansen na de betaling van 100 000 sat anders: Alies heeft nu nog 9 900 000 sat en Bob heeft nu 100 000 sat. Deze nieuwe '''kanaalstatus''' wordt tussen de peers afgesproken. Ook maken Alies en Bob een sluit-transactie. De sluittransactie zegt: "Van de vastgezette 10 miljoen sats uit de Openingstransactie, krijgt Alies 9 900 000 sats en Bob 100 000 sats". De sluit-transactie wordt door beiden getekend. Deze sluit-transactie publiceren ze NIET op de blockchain. Ze bewaren hem voor als er wat misgaat.<br />
; Valsspelen<br />
:Peers kunnen proberen vals te spelen. Alies zou bijvoorbeeld kunnen proberen 10 miljoen sats (in plaats van haar werkelijke 9 900 000 sats) te claimen door de oude kanaalstatus te publiceren (de transactie van haar schijf op deblockchain publiceren). Gelukkig houdt de node van Bob houdt continu de transacties bij. Als hij ziet dat Alies een oneerlijke claim doet, kan hij dit bewijzen aan het netwerk door de nieuwere status te laten zien, Bob heeft namelijk een sluittransactie met nieuwere status, en die transactie is zelfs getekend door Alies (toen ze de vorige Lightningtransactie deden)! Bob mag nu de gehele capaciteit claimen. Zo blijft Lightning eerlijk.<br />
; [[Liquiditeit|Inkomende liquiditeit]]<br />
:Toen Alies haar kanaal van 10 miljoen sats opende, stonden al die sats "aan haar kant" (zie '''Balans'''). Ze kon 10 miljoen sats overmaken. Ze had hier uitgaande liquiditeit. Het voorbeeldkanaal gaf haar echter geen inkomende liquiditeit. Er stonden geen sats aan de andere kant van dit kanaal, om te kunnen ontvangen. Dat is de basis van inkomende liquiditeit: dat je (als node) kanalen hebt met sats aan de andere kant van het kanaal. Als mensen kanalen naar jou openen krijg je inkomende liquiditeit. En als je betalingen doet, verschuiven sats naar de andere kant van het kanaal, en dat wordt dan ook inkomende liquiditeit.<br />
; Netwerk<br />
:Alle nodes samen maken het netwerk. Het mooie van Lightning is dat Alies in bovenstaand scenario ook naar Charles kan sturen, als Bob een kanaal met Charles heeft. De betaling neemt dan de '''route''' Alies -> Bob -> Charles.<br />
; Invoice<br />
:Een betaalverzoek. Zowel nodes als wallets kunnen deze betaalverzoeken maken. Het is een lang stuk tekst dat begint met lnbc1, en meestal wordt het ook een QR-code. De betaler scant de invoice, zijn wallet of node berekent een route en betaalt.<br />
; Routes<br />
:Betalingen over het Lightningnetwerk nemen routes. In het voorbeeld hierboven hebben Alies en Bob een kanaal, net als Bob en Charles. Alies kan Charles betalen met de route Alies -> Bob -> Charles. Het is hierbij nodig dat: (1) Alle kanalen voldoende capaciteit hebben, (2) De routes niet te duur zijn, en (3) Alle kanalen actief zijn (geen offline peers). <br />
:Als aan deze voorwaarden is voldaan, kan de betaling gebeuren. Als één van deze dingen mist, of Alies weet bijvoorbeeld niet van het kanaal van Bob naar Charles (zie '''roddelen'''), dan zal ze een NO ROUTE-fout krijgen: er is geen route waar de betaling overheen kan.<br />
; Roddelen<br />
:Nodes geven elkaar continu kanaalinformatie door met een proces dat Gossipping (roddelen) heet. Elke node moet alle kanalen (gaan) kennen. Zeker als je net een node bent begonnen, zal je merken dat het 1 of 2 dagen kan duren na het openen van je kanaal, voordat jouw node hoogte krijgt van het hele netwerk. Hoe meer kanalen (peers) je hebt, hoe meer/sneller je kan roddelen, en hoe sneller je kanaalinfo doorkrijgt.<br />
; Sluittransactie<br />
:Als de peers klaar zijn met het kanaal, kunnen ze de sluittransactie publiceren en zo onchain hun "echte bitcoin" terugkrijgen. Ze krijgen de bitcoin terug volgens de laatste status. Als de twee nodes het eens zijn over de status (en (dus) allebei online zijn), dan zal dit een cooperatieve close zijn. Als er één van de twee offline is, zal het een force close zijn, waar de meest recente status wordt gepubliceerd. Deze force closes zijn duurder dan cooperative closes.<br />
<br />
= Lightning gebruiken =<br />
Er zijn grofweg twee manieren om Lightning te gebruiken. <br />
<br />
* Een '''wallet''' is het makkelijkst. Je zet er bitcoin op, zet die bitcoin om naar Lightning-bitcoin en kan Lightning gebruiken. Zie [[BlueWallet]] voor een simpel beginnetje.<br />
* Geavanceerde gebruikers kunnen zelf een node opzetten. Een '''node''' is altijd online, routeert betalingen en heeft wat werk nodig om op te zetten. [[Umbrel lightning node|Umbrel]] is een makkelijker manier om een node op te zetten.<br />
<br />
== Wallet ==<br />
Het makkelijkst is om [[BlueWallet]] op je telefoon te installeren, als je Lightning wil gebruiken. <br />
<br />
== Node ==<br />
Zelf een node draaien is leuk om te doen en je draagt bij aan de Bitcoin [[blockchain]]. Met een Raspberry Pi computer, opslag voor de [[Blockchain]] en Node-software (zoals [[Umbrel]], [https://mynodebtc.com/ MyNode], [https://raspiblitz.org/ RaspiBlitz]) kan je zelf een node draaien.<br />
<br />
=== Umbrel ===<br />
[[Umbrel lightning node|Umbrel]] is één van de gemakkelijkste en gebruiksvriendelijkste manieren om een node te draaien op een Raspberry Pi. Hiermee kan je binnen een aantal stappen zowel een bitcoin node als een lightning network node opzetten.<br />
<br />
=== Alternatieven ===<br />
Momenteel is Umbrel één van de meest gebruikte node softwares in Nederland. Er zijn echter meer aanbieders van dit soort installatiepakketten, bijvoorbeeld: MyNode en RaspiBlitz. Wil jij jouw node geheel zelfstandig installeren, dan zou je kunnen kijken naar de gebruikshandleiding van [https://docs.theroadtonode.com/ The Road to Node].<br />
<br />
=== Hardware ===<br />
{| class="wikitable" <br />
|- style="font-weight:bold;"<br />
! <br />
! Langzaam <br />
(Ongeveer 150 euro)<br />
! Snel <br />
(Ongeveer 250 euro)<br />
|-<br />
| Computer<br />
| [https://tweakers.net/pricewatch/1414470/raspberry-pi-4-model-b-4gb-ram.html Raspberry Pi 4B (4GB)] <br />
(60 euro)<br />
| [https://tweakers.net/pricewatch/1562568/raspberry-pi-4-model-b-8gb-ram.html Raspberry Pi 4B (8GB)] <br />
(90 euro)<br />
|-<br />
| SD-kaart <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/986595/sandisk-ultra-microsdxc-class-10-uhs-i-a1-uhs-class-1-64gb-+-sd-adapter.html 64GB SD-kaart] <br />
(12 euro)<br />
Om besturingssysteem op te zetten <br />
|-<br />
| Voeding <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/1415202/raspberry-pi-153w-usb-c-power-supply.html 15W USB-C voeding]<br />
(10 euro)<br />
Tip: koop geen andere <br />
|-<br />
| Blockchain opslag<br />
| [https://tweakers.net/pricewatch/339768/wd-elements-portable-usb-30-1tb-zwart.html Harde Schijf] <br />
(50 euro)<br />
Blockchain syncen duurt een paar weken<br />
| [https://tweakers.net/pricewatch/942129/samsung-portable-ssd-t5-1tb-zwart.html SSD] <br />
(125 euro)<br />
Blockchain syncen duurt een paar dagen<br />
|-<br />
| Heatsink <br />
| colspan="2" style="text-align:center;"| [https://www.kiwi-electronics.nl/com-3101?search=Raspberry%20pi&description=true Alu heatsink] of [https://www.sossolutions.nl/raspberry-pi-4-aluminium-koeling-heatsink deze] <br />
(15 euro)<br />
|-<br />
| Netwerk (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/305850/gembird-pp6-15m-cat6-15m-grijs-wit.html 1.5m UTP cable] <br />
(1 euro)<br />
|-<br />
| HDMI (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/389208/startech-punt-com-hdmiadmm3-zwart.html HDMI cable] <br />
(5 euro)<br />
|-<br />
| (Kanalen)<br />
| colspan="2" style="text-align:center;"| Reserveer ook wat geld voor kanalen, dat raak je niet kwijt, maar is nodig om betalingen mee te doen. Bijvoorbeeld 100 euro.<br />
|}<br />
<br />
== Foutmeldingen ==<br />
<br />
=== No Route-probleem ===<br />
Er zit een aantal voorwaarden voor betalingen:<br />
<br />
# Kent je node alle routes van het netwerk? Je node krijgt via gossip (roddelen) binnen een paar uur/dagen de netwerkinformatie door. Als je node de netwerkinformatie nog niet heeft, kan hij nog geen route berekenen. Op Umbrel kan je op [[Umbrel lightning node#Bekijken hoe veel routes je node kent|deze manier]] controleren hoeveel kanalen je node kent.<br />
# Heb je [[Liquiditeit|uitgaande liquiditeit]]?<br />
#* Je hebt kanalen nodig met lokale balans. Als jij een kanaal hebt geopend staat het balans aan jouw kant (goed).<br />
#* '''Kanaalreserve:''' Er moet altijd ongeveer 1% van de balans aan iedere kant van het kanaal blijven. Ook wordt er een reservering gemaakt voor het geval het kanaal gesloten wordt. Dit betekent dat er altijd een percentage <5% niet-verzendbaar is. Het zorgt dat mensen beide partijen "iets te verliezen" hebben als ze valsspelen. Behalve on-chain fees ben je nog WEL eigenaar van deze sats en krijg je ze gewoon terug bij sluiten.<br />
#* De uitgaande route is mogelijk te duur. Als degenen met wie je kanalen hebt te hoge uitgaande fees hebben, zal jouw wallet niet willen betalen.<br />
#* Zijn je peers online?<br />
'''Als/zodra je 2 dagen een publiek kanaal hebt, dan moeten de meeste problemen verdwijnen'''. Als je meerdere kanalen hebt krijg je sneller netwerkingormatie door en gaat dat sneller.<br />
<br />
<br />
<br />
<comments /></div>Briskhttps://bitcoinwiki.nl/index.php?title=Lightning&diff=1351Lightning2021-03-08T13:38:55Z<p>Brisk: /* Node */</p>
<hr />
<div>Met Lightning kan je razendsnel goedkope microbetalingen in [[Bitcoin|bitcoin]] doen. Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit. <br />
<br />
'''''Zie [[#Lightning gebruiken]] als je meteen wilt beginnen.'''''<br />
<br />
Bitcoin transacties zijn relatief kostbaar. Dat komt omdat er maar een beperkte ruimte is op de blockchain: zo'n 1500 transacties per blok (per 10 minuten). Oftewel zo'n 9000 transacties per uur. (Credit card firmart Visa kan 10-duizenden transacties ''per seconde'' aan.)<br />
Kortom, Bitcoin is geen snelheidsmonster. Alle mensen die een Bitcoin-transactie aanbieden, concurreren om een plaatsje in een blok op de blockchain. Dit drijft de prijs voor een 'toegangskaartje' ('fee') naar de blockchain op. (Tot wel enige tientallen euro's per transactie in hectische perioden).<br />
Om toch meer transacties mogelijk te maken, is een systeem ontwikkeld dat de transacties (tijdelijk) niet via Bitcoin's blockchain laat lopen. Een analogie ter verduidelijking:<br />
<br />
:Iemand zit aan de bar en bestelt een biertje. De barman (m/v) turft dit af op een kaart. De avond verstrijkt, en er worden nog wat drankjes verorbert. Halverwege de avond blijkt 1 biertje bedorven: de barman streept de bijbehorende 'turf' door op de kaart. Als de klant naar huis gaat, vraagt de barman de klant de rekening te betalen. Er zijn misschien wel 10 drankjes besteld, en er was 1 restitutie, maar er vindt maar 1 geld-transactie plaats. We kunnen de kaart van de barman met een Lightning 'kanaal' vergelijken en de bank-transactie met een on-chain Bitcoin transactie. Ziehier een analogie ter verduidelijking van het Lightning Netwerk.<br />
<br />
Wat als onze bierdrinkende klant weggaat zonder te betalen? Een remedie zou kunnen zijn dat klanten die op de pof bestellen eerst een borg betalen, bijv 50 euro op de bar leggen. Maar wat als de barman zich niet netjes gedraagt en de 50 euro pakt en de zaak sluit voordat ie ook maar één biertje heeft geschonken? Met al dat soort grens-gevallen moet het Lightning Protocol rekening houden en oplossen, wil het een serieus betalingsnetwerk worden.<br />
<br />
''Er is een grote community van Nederlanders met een Lightning node. Je vindt de groep [https://t.me/lightningnl op Telegram].''<br />
<br />
= Concepten =<br />
''Aflevering 14-18 van de [[Beginnen met Bitcoin]]-podcast leggen de basis uit.''<br />
<br />
; Peers (nodes)<br />
:De deelnemers aan het Lightning-netwerk. Als je zelf een node hebt dan ben je ook een peer. Als je verbindt met een andere node, dan heb je een '''peer-to-peer'''-connectie gemaakt. Als je enkel een wallet hebt dan wordt dat meestal niet als peer/node gezien; jouw telefoon is niet 24x7 online en helpt niet met het routeren van betalingen.<br />
; Kanalen<br />
:De basis van Lightning zijn kanalen. Simpel gezegd zijn dit afspraken tussen twee '''peers''', bijvoorbeeld Alies en Bob. Alies heeft 0.1 bitcoin (10 miljoen [[Satoshi|sats]]) op haar node gezet, en gaat een kanaal openen van deze 10 miljoen sat. Ze geeft aan een kanaal met Bob te willen openen, en de nodes maken een on-chain Opentransactie transactie met een capaciteit van 10 miljoen sat. Hiermee zetten ze 10 miljoen "vast".<br />
; Capaciteit<br />
:Het aantal satoshi dat wordt vastgezet voor een kanaal is de capaciteit. De capaciteit kan niet veranderen. In het begin staat de capaciteit in principe aan de "kant" van de opener: als het kanaal gesloten wordt dan komen die sats terug naar de opener.<br />
; Opentransactie<br />
:Bij het openen van een kanaal spreken de twee nodes een transactie af. In de basis staat in deze transactie: "Alies krijgt 10 miljoen sats terug bij het sluiten van dit kanaal, Bob krijgt niks". Alies heeft namelijk recht op haar 10 miljoen sats, het waren per slot van rekening haar sats (bitcoin) die ze gebruikte voor het openen. We noemen dit de '''kanaalstatus'''.<br />
; Balans<br />
:De capaciteit van het kanaal is altijd verdeeld tussen de peers. In het voorbeeld staat na openen 10 miljoen sats aan de kant van Alies, en 0 sats aan de kant van Bob. Dit kanaal is overigens "uit balans", en door transacties te doen van Alies naar Bob, zullen de balansen veranderen.<br />
; Lightningtransacties<br />
:Zodra het kanaal open is (3 bevestigingen van de Opentransactie), kunnen er betalingen worden gedaan. Alies kan met dit open kanaal een betaling doen naar Bob, omdat zij sats aan haar kant van het kanaal heeft staan. Bob kan (in dit kanaal) geen betalingen doen naar Alies, er staan namelijk geen sats aan zijn kant om naar Alies te verschuiven. Als Alies een betaling doet, van bijvoorbeeld 100 000 sat, dan zullen de balansen verschuiven. Waar Alies eerst 10 miljoen, en Bob 0 sats had, zijn de balansen na de betaling van 100 000 sat anders: Alies heeft nu nog 9 900 000 sat en Bob heeft nu 100 000 sat. Deze nieuwe '''kanaalstatus''' wordt tussen de peers afgesproken. Ook maken Alies en Bob een sluit-transactie. De sluittransactie zegt: "Van de vastgezette 10 miljoen sats uit de Openingstransactie, krijgt Alies 9 900 000 sats en Bob 100 000 sats". De sluit-transactie wordt door beiden getekend. Deze sluit-transactie publiceren ze NIET op de blockchain. Ze bewaren hem voor als er wat misgaat.<br />
; Valsspelen<br />
:Peers kunnen proberen vals te spelen. Alies zou bijvoorbeeld kunnen proberen 10 miljoen sats (in plaats van haar werkelijke 9 900 000 sats) te claimen door de oude kanaalstatus te publiceren (de transactie van haar schijf op deblockchain publiceren). Gelukkig houdt de node van Bob houdt continu de transacties bij. Als hij ziet dat Alies een oneerlijke claim doet, kan hij dit bewijzen aan het netwerk door de nieuwere status te laten zien, Bob heeft namelijk een sluittransactie met nieuwere status, en die transactie is zelfs getekend door Alies (toen ze de vorige Lightningtransactie deden)! Bob mag nu de gehele capaciteit claimen. Zo blijft Lightning eerlijk.<br />
; [[Liquiditeit|Inkomende liquiditeit]]<br />
:Toen Alies haar kanaal van 10 miljoen sats opende, stonden al die sats "aan haar kant" (zie '''Balans'''). Ze kon 10 miljoen sats overmaken. Ze had hier uitgaande liquiditeit. Het voorbeeldkanaal gaf haar echter geen inkomende liquiditeit. Er stonden geen sats aan de andere kant van dit kanaal, om te kunnen ontvangen. Dat is de basis van inkomende liquiditeit: dat je (als node) kanalen hebt met sats aan de andere kant van het kanaal. Als mensen kanalen naar jou openen krijg je inkomende liquiditeit. En als je betalingen doet, verschuiven sats naar de andere kant van het kanaal, en dat wordt dan ook inkomende liquiditeit.<br />
; Netwerk<br />
:Alle nodes samen maken het netwerk. Het mooie van Lightning is dat Alies in bovenstaand scenario ook naar Charles kan sturen, als Bob een kanaal met Charles heeft. De betaling neemt dan de '''route''' Alies -> Bob -> Charles.<br />
; Invoice<br />
:Een betaalverzoek. Zowel nodes als wallets kunnen deze betaalverzoeken maken. Het is een lang stuk tekst dat begint met lnbc1, en meestal wordt het ook een QR-code. De betaler scant de invoice, zijn wallet of node berekent een route en betaalt.<br />
; Routes<br />
:Betalingen over het Lightningnetwerk nemen routes. In het voorbeeld hierboven hebben Alies en Bob een kanaal, net als Bob en Charles. Alies kan Charles betalen met de route Alies -> Bob -> Charles. Het is hierbij nodig dat: (1) Alle kanalen voldoende capaciteit hebben, (2) De routes niet te duur zijn, en (3) Alle kanalen actief zijn (geen offline peers). <br />
:Als aan deze voorwaarden is voldaan, kan de betaling gebeuren. Als één van deze dingen mist, of Alies weet bijvoorbeeld niet van het kanaal van Bob naar Charles (zie '''roddelen'''), dan zal ze een NO ROUTE-fout krijgen: er is geen route waar de betaling overheen kan.<br />
; Roddelen<br />
:Nodes geven elkaar continu kanaalinformatie door met een proces dat Gossipping (roddelen) heet. Elke node moet alle kanalen (gaan) kennen. Zeker als je net een node bent begonnen, zal je merken dat het 1 of 2 dagen kan duren na het openen van je kanaal, voordat jouw node hoogte krijgt van het hele netwerk. Hoe meer kanalen (peers) je hebt, hoe meer/sneller je kan roddelen, en hoe sneller je kanaalinfo doorkrijgt.<br />
; Sluittransactie<br />
:Als de peers klaar zijn met het kanaal, kunnen ze de sluittransactie publiceren en zo onchain hun "echte bitcoin" terugkrijgen. Ze krijgen de bitcoin terug volgens de laatste status. Als de twee nodes het eens zijn over de status (en (dus) allebei online zijn), dan zal dit een cooperatieve close zijn. Als er één van de twee offline is, zal het een force close zijn, waar de meest recente status wordt gepubliceerd. Deze force closes zijn duurder dan cooperative closes.<br />
<br />
= Lightning gebruiken =<br />
Er zijn grofweg twee manieren om Lightning te gebruiken. <br />
<br />
* Een '''wallet''' is het makkelijkst. Je zet er bitcoin op, zet die bitcoin om naar Lightning-bitcoin en kan Lightning gebruiken. Zie [[BlueWallet]] voor een simpel beginnetje.<br />
* Geavanceerde gebruikers kunnen zelf een node opzetten. Een '''node''' is altijd online, routeert betalingen en heeft wat werk nodig om op te zetten. [[Umbrel lightning node|Umbrel]] is een makkelijker manier om een node op te zetten.<br />
<br />
== Wallet ==<br />
Het makkelijkst is om [[BlueWallet]] op je telefoon te installeren, als je Lightning wil gebruiken. <br />
<br />
== Node ==<br />
Zelf een node draaien is leuk om te doen en je draagt bij aan de Bitcoin [[blockchain]]. Met een Raspberry Pi computer, opslag voor de [[Blockchain]] en Node-software (zoals [[Umbrel]], [https://mynodebtc.com/ MyNode], [https://raspiblitz.org/ RaspiBlitz]) kan je zelf een node draaien.<br />
<br />
=== Umbrel ===<br />
[[Umbrel lightning node|Umbrel]] is één van de gemakkelijkste en gebruiksvriendelijkste manier om een node te draaien op een Raspberry Pi.<br />
<br />
=== Hardware ===<br />
{| class="wikitable" <br />
|- style="font-weight:bold;"<br />
! <br />
! Langzaam <br />
(Ongeveer 150 euro)<br />
! Snel <br />
(Ongeveer 250 euro)<br />
|-<br />
| Computer<br />
| [https://tweakers.net/pricewatch/1414470/raspberry-pi-4-model-b-4gb-ram.html Raspberry Pi 4B (4GB)] <br />
(60 euro)<br />
| [https://tweakers.net/pricewatch/1562568/raspberry-pi-4-model-b-8gb-ram.html Raspberry Pi 4B (8GB)] <br />
(90 euro)<br />
|-<br />
| SD-kaart <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/986595/sandisk-ultra-microsdxc-class-10-uhs-i-a1-uhs-class-1-64gb-+-sd-adapter.html 64GB SD-kaart] <br />
(12 euro)<br />
Om besturingssysteem op te zetten <br />
|-<br />
| Voeding <br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/1415202/raspberry-pi-153w-usb-c-power-supply.html 15W USB-C voeding]<br />
(10 euro)<br />
Tip: koop geen andere <br />
|-<br />
| Blockchain opslag<br />
| [https://tweakers.net/pricewatch/339768/wd-elements-portable-usb-30-1tb-zwart.html Harde Schijf] <br />
(50 euro)<br />
Blockchain syncen duurt een paar weken<br />
| [https://tweakers.net/pricewatch/942129/samsung-portable-ssd-t5-1tb-zwart.html SSD] <br />
(125 euro)<br />
Blockchain syncen duurt een paar dagen<br />
|-<br />
| Heatsink <br />
| colspan="2" style="text-align:center;"| [https://www.kiwi-electronics.nl/com-3101?search=Raspberry%20pi&description=true Alu heatsink] of [https://www.sossolutions.nl/raspberry-pi-4-aluminium-koeling-heatsink deze] <br />
(15 euro)<br />
|-<br />
| Netwerk (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/305850/gembird-pp6-15m-cat6-15m-grijs-wit.html 1.5m UTP cable] <br />
(1 euro)<br />
|-<br />
| HDMI (Optioneel)<br />
| colspan="2" style="text-align:center;"| [https://tweakers.net/pricewatch/389208/startech-punt-com-hdmiadmm3-zwart.html HDMI cable] <br />
(5 euro)<br />
|-<br />
| (Kanalen)<br />
| colspan="2" style="text-align:center;"| Reserveer ook wat geld voor kanalen, dat raak je niet kwijt, maar is nodig om betalingen mee te doen. Bijvoorbeeld 100 euro.<br />
|}<br />
<br />
== Foutmeldingen ==<br />
<br />
=== No Route-probleem ===<br />
Er zit een aantal voorwaarden voor betalingen:<br />
<br />
# Kent je node alle routes van het netwerk? Je node krijgt via gossip (roddelen) binnen een paar uur/dagen de netwerkinformatie door. Als je node de netwerkinformatie nog niet heeft, kan hij nog geen route berekenen. Op Umbrel kan je op [[Umbrel lightning node#Bekijken hoe veel routes je node kent|deze manier]] controleren hoeveel kanalen je node kent.<br />
# Heb je [[Liquiditeit|uitgaande liquiditeit]]?<br />
#* Je hebt kanalen nodig met lokale balans. Als jij een kanaal hebt geopend staat het balans aan jouw kant (goed).<br />
#* '''Kanaalreserve:''' Er moet altijd ongeveer 1% van de balans aan iedere kant van het kanaal blijven. Ook wordt er een reservering gemaakt voor het geval het kanaal gesloten wordt. Dit betekent dat er altijd een percentage <5% niet-verzendbaar is. Het zorgt dat mensen beide partijen "iets te verliezen" hebben als ze valsspelen. Behalve on-chain fees ben je nog WEL eigenaar van deze sats en krijg je ze gewoon terug bij sluiten.<br />
#* De uitgaande route is mogelijk te duur. Als degenen met wie je kanalen hebt te hoge uitgaande fees hebben, zal jouw wallet niet willen betalen.<br />
#* Zijn je peers online?<br />
'''Als/zodra je 2 dagen een publiek kanaal hebt, dan moeten de meeste problemen verdwijnen'''. Als je meerdere kanalen hebt krijg je sneller netwerkingormatie door en gaat dat sneller.<br />
<br />
<br />
<br />
<comments /></div>Brisk