Learning-Bitcoin-from-the-C.../it/20_2_Pagare_una_Fattura.md
Lutxo 80377bfbba Uploading italian transtlation to it directory
Uploading italian transtlation to "it" directory
2024-08-08 11:54:13 +02:00

10 KiB
Raw Permalink Blame History

20.2: Pagare una Fattura

NOTE: Questa sezione è stata recentemente aggiunta al corso ed è una bozza iniziale che potrebbe essere ancora in attesa di revisione. Attenzione lettore.

In questo capitolo imparerai come pagare una fattura utilizzando il comando lightning-cli pay. Si presume che tu abbia già esaminato la fattura, come descritto nel Capitolo 20.1 e determinato che fosse valida.

Controlla il tuo Saldo

Ovviamente, la prima cosa che devi fare è assicurarti di avere abbastanza fondi per pagare una fattura. In questo caso, il canale configurato in precedenza con 032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543 contiene 100.000 satoshi. Questo sarà il canale utilizzato per pagare la fattura.

c$ lightning-cli --testnet listfunds
{
   "outputs": [
      {
         "txid": "66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d",
         "output": 1,
         "value": 99847,
         "amount_msat": "99847000msat",
         "scriptpubkey": "00142fe02e5be9283e8c5bcb93ae61421baf8cb64f9c",
         "address": "tb1q9lszuklf9qlgck7tjwhxzssm47xtvnuu4jslf8",
         "status": "confirmed",
         "blockheight": 1862856,
         "reserved": false
      }
   ],
   "channels": [
      {
         "peer_id": "032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "short_channel_id": "1862856x29x0",
         "channel_sat": 100000,
         "our_amount_msat": "100000000msat",
         "channel_total_sat": 100000,
         "amount_msat": "100000000msat",
         "funding_txid": "66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d",
         "funding_output": 0
      }
   ]
}

Se non avessi abbastanza fondi, dovresti creare un nuovo canale.

Paga la tua Fattura

Usi il comando lightning-cli pay per pagare una fattura. Tenterà di trovare un percorso verso la destinazione indicata e inviare i fondi richiesti. Qui è molto semplice perché c'è un canale diretto tra il pagatore e il destinatario:

c$ lightning-cli --testnet pay lntb100u1p0cwnqtpp5djkdahy4hz0wc909y39ap9tm3rq2kk9320hw2jtntwv4x39uz6asdr5ge5hyum5ypxyugzsv9uk6etwwssz6gzvv4shymnfdenjqsnfw33k76twypskuepqf35kw6r5de5kueeqveex7mfqw35x2gzrdakk6ctwvssxc6twv5hqcqzpgsp5a9ryqw7t23myn9psd36ra5alzvp6lzhxua58609teslwqmdljpxs9qy9qsq9ee7h500jazef6c306psr0ncru469zgyr2m2h32c6ser28vrvh5j4q23c073xsvmjwgv9wtk2q7j6pj09fn53v2vkrdkgsjv7njh9aqqtjn3vd
{
   "destination": "032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543",
   "payment_hash": "6cacdedc95b89eec15e5244bd0957b88c0ab58b153eee549735b995344bc16bb",
   "created_at": 1602704828.948,
   "parts": 1,
   "msatoshi": 10000000,
   "amount_msat": "10000000msat",
   "msatoshi_sent": 10000000,
   "amount_sent_msat": "10000000msat",
   "payment_preimage": "1af4a9bb830e49b6bc8f0bef980630e189e3794ad1705f06ad1b9c71571dce0c",
   "status": "complete"
}

Nota che qui tutti gli importi sono in msat, non sat!

Paga la tua Fattura Attraverso la Rete

Tuttavia, non è necessario avere un canale con un nodo per pagarlo. Deve solo esserci un percorso ragionevole attraverso la rete Lightning.

Immagina di aver ricevuto questa piccola richiesta di pagamento per 11.111 msat:

c$ lightning-cli --testnet decodepay lntb111110p1p0cw43ppp5u0ngjytlw6ywec3x784jale4xd7h058g9u4mthcaf9rl2f7g8zxsdp2t9hh2gr0wajjqmt9ypnx7u3qv35kumn9wgs8gmm0yyxqyjw5qcqp2sp5kj4xhrthmfgcgyl84zaqpl9vvdjwm5x368kr09fu5nym74setw4s9qy9qsq8hxjr73ee77vat0ay603e4w9aa8ag9sa2n55xznk5lsfrjffxxdj2k0wznvcfa98l4a57s80j7dhg0cc03vwqdwehkujlzxgm0xyynqqslwhvl
{
   "currency": "tb",
   "created_at": 1602704929,
   "expiry": 604800,
   "payee": "02f3d74746934494fa378235e5bc44cfdbb5b8779d839263fb7f9218be032f6f61",
   "msatoshi": 11111,
   "amount_msat": "11111msat",
   "description": "You owe me for dinner too!",
   "min_final_cltv_expiry": 10,
   "payment_secret": "b4aa6b8d77da518413e7a8ba00fcac6364edd0d1d1ec37953ca4c9bf56195bab",
   "features": "028200",
   "payment_hash": "e3e689117f7688ece226f1eb2eff35337d77d0e82f2bb5df1d4947f527c8388d",
   "signature": "304402203dcd21fa39cfbcceadfd269f1cd5c5ef4fd4161d54e9430a76a7e091c929319b02202559ee14d984f4a7fd7b4f40ef979b743f187c58e035d9bdb92f88c8dbcc424c"
}

Se provassi a pagarlo e non avessi un percorso verso il destinatario attraverso la rete Lightning, potresti aspettarti un errore come questo:

c$ lightning-cli --testnet pay lntb111110p1p0cw43ppp5u0ngjytlw6ywec3x784jale4xd7h058g9u4mthcaf9rl2f7g8zxsdp2t9hh2gr0wajjqmt9ypnx7u3qv35kumn9wgs8gmm0yyxqyjw5qcqp2sp5kj4xhrthmfgcgyl84zaqpl9vvdjwm5x368kr09fu5nym74setw4s9qy9qsq8hxjr73ee77vat0ay603e4w9aa8ag9sa2n55xznk5lsfrjffxxdj2k0wznvcfa98l4a57s80j7dhg0cc03vwqdwehkujlzxgm0xyynqqslwhvl
{
   "code": 210,
   "message": "Ran out of routes to try after 11 attempts: see `paystatus`",
   "attempts": [
      {
         "status": "failed",
         "failreason": "Error computing a route to 02f3d74746934494fa378235e5bc44cfdbb5b8779d839263fb7f9218be032f6f61: \"Could not find a route\" (205)",
         "partid": 1,
         "amount": "11111msat"
      },
...

Ma cosa succederebbe se un host con cui avevi un canale aprisse un canale con il destinatario previsto?

In tal caso, quando vai a pagare la fattura, funzionerà automaticamente!

c$ lightning-cli --testnet pay lntb111110p1p0cw43ppp5u0ngjytlw6ywec3x784jale4xd7h058g9u4mthcaf9rl2f7g8zxsdp2t9hh2gr0wajjqmt9ypnx7u3qv35kumn9wgs8gmm0yyxqyjw5qcqp2sp5kj4xhrthmfgcgyl84zaqpl9vvdjwm5x368kr09fu5nym74setw4s9qy9qsq8hxjr73ee77vat0ay603e4w9aa8ag9sa2n55xznk5lsfrjffxxdj2k0wznvcfa98l4a57s80j7dhg0cc03vwqdwehkujlzxgm0xyynqqslwhvl
{
   "destination": "02f3d74746934494fa378235e5bc44cfdbb5b8779d839263fb7f9218be032f6f61",
   "payment_hash": "e3e689117f7688ece226f1eb2eff35337d77d0e82f2bb5df1d4947f527c8388d",
   "created_at": 1602709081.324,
   "parts": 1,
   "msatoshi": 11111,
   "amount_msat": "11111msat",
   "msatoshi_sent": 12111,
   "amount_sent_msat": "12111msat",
   "payment_preimage": "ec7d1b28a7b877cd92b83be396899e8bfc3ecb0b4f944f65afb4be7d0ee72617",
   "status": "complete"
}

Questa è la vera bellezza della rete Lightning: senza alcuno sforzo da parte dei partecipanti peer-to-peer, i loro singoli canali diventano una rete!

📖 Come Funzionano i Pagamenti sulla Rete? Supponiamo che il nodo A abbia un canale aperto con il nodo B, il nodo B abbia un canale aperto con il nodo C e il nodo A riceva una fattura dal nodo C per 11.111 msat. Il nodo A paga al nodo B i 11.111 msat, più una piccola commissione, e poi il nodo B paga i 11.111 msat al nodo C. Abbastanza facile. Tranne ricordare che tutti i canali sono in realtà solo record di chi possiede quanto della transazione di finanziamento. Quindi, ciò che realmente accade è che 11.111 msat della transazione di finanziamento sul canale A-B passa da A a B, e poi 11.111 msat della transazione di finanziamento sul canale B-C passa da B a C. Ciò significa che sono richieste due cose affinché questo pagamento funzioni: in primo luogo, ogni canale deve avere una capacità sufficiente per il pagamento; e in secondo luogo, il pagatore su ogni canale deve possedere abbastanza capacità per effettuare il pagamento.

Nota che in questo esempio sono stati inviati 12.111 msat per pagare una fattura di 11.111 msat: l'extra è una piccola commissione, molto ridotta, (non una percentuale) che è stata pagata all'intermediario.

Controlla il tuo Saldo

Dopo aver effettuato un pagamento, dovresti vedere che i tuoi fondi sono cambiati di conseguenza.

Ecco come apparivano i fondi per il nodo pagatore dopo il pagamento iniziale di 10.000 satoshi:

c$ lightning-cli --testnet listfunds
{
   "outputs": [
      {
         "txid": "66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d",
         "output": 1,
         "value": 99847,
         "amount_msat": "99847000msat",
         "scriptpubkey": "00142fe02e5be9283e8c5bcb93ae61421baf8cb64f9c",
         "address": "tb1q9lszuklf9qlgck7tjwhxzssm47xtvnuu4jslf8",
         "status": "confirmed",
         "blockheight": 1862856,
         "reserved": false
      }
   ],
   "channels": [
      {
         "peer_id": "032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "short_channel_id": "1862856x29x0",
         "channel_sat": 90000,
         "our_amount_msat": "90000000msat",
         "channel_total_sat": 100000,
         "amount_msat": "100000000msat",
         "funding_txid": "66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d",
         "funding_output": 0
      }
   ]
}

Nota che la capacità del canale rimane a 100.000 satoshi (non cambia mai!), ma che our_amount è ora solo 90.000 satoshi (o 90.000.000 msat).

Dopo aver pagato la seconda fattura, per 11.111 msat, i fondi cambiano di conseguenza:

$ lightning-cli --testnet listfunds
{
   "outputs": [
      {
         "txid": "66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d",
         "output": 1,
         "value": 99847,
         "amount_msat": "99847000msat",
         "scriptpubkey": "00142fe02e5be9283e8c5bcb93ae61421baf8cb64f9c",
         "address": "tb1q9lszuklf9qlgck7tjwhxzssm47xtvnuu4jslf8",
         "status": "confirmed",
         "blockheight": 1862856,
         "reserved": false
      }
   ],
   "channels": [
      {
         "peer_id": "032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "short_channel_id": "1862856x29x0",
         "channel_sat": 89987,
         "our_amount_msat": "89987000msat",
         "channel_total_sat": 100000,
         "amount_msat": "100000000msat",
         "funding_txid": "66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d",
         "funding_output": 0
      }
   ]
}

our_amount è ora solo 89.987 satoshi, avendo pagato 11.111 msat più una commissione di 1.000 msat.

Sommario: Pagare una Fattura

Una volta che hai una fattura, è abbastanza facile pagarla con un solo comando in Lightning. Anche se non hai un canale con un destinatario, il pagamento è così semplice, a condizione che ci sia un percorso tra te e il nodo di destinazione.

Cosa Succede Dopo?

Continua a "Usare Lighting" col Capitolo 20.3: Chiudere un Canale Lightning.