mirror of
https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
synced 2026-02-16 14:12:48 +00:00
235 lines
10 KiB
Markdown
235 lines
10 KiB
Markdown
# 20.2: Pagare una Fattura
|
|
|
|
> :information_source: **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](20_1_Generare_una_Richiesta_di_Pagamento.md) 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!
|
|
|
|
> :book: ***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](20_3_Chiudere_un_Canale_Lightning.md).
|
|
|