mirror of
				https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line.git
				synced 2025-10-31 02:17:24 +00:00 
			
		
		
		
	Merge pull request #171 from javiervargas/patch-9
Update 19_1_Generate_a_Payment_Request.md
This commit is contained in:
		
						commit
						d393217432
					
				| @ -10,12 +10,19 @@ For this example we've created a second lightning node using LND implementation | |||||||
| 
 | 
 | ||||||
| Almost all payments made on the Lightning Network require an invoice, which is nothing more than a **request for payment** made by the recipient of the money and sent by different means to the user who will pay.  The format for a Lightning invoice uses bech32 encoding, which is already used for Bitcoin Segregated Witness and all payment requests are single use. | Almost all payments made on the Lightning Network require an invoice, which is nothing more than a **request for payment** made by the recipient of the money and sent by different means to the user who will pay.  The format for a Lightning invoice uses bech32 encoding, which is already used for Bitcoin Segregated Witness and all payment requests are single use. | ||||||
| 
 | 
 | ||||||
| An invoice is made up of two parts,  one is human readable and other is  | An invoice is made up of two parts,  one is human readable and other is data part. | ||||||
| 
 | 
 | ||||||
| - Human readable part: `ln` + (`lnbc` for Bitcoin mainnet, `lntb` for Bitcoin testnet, and `lnbcrt` for Bitcoin regtest) + data amount | - Human readable part: `ln` + (`lnbc` for Bitcoin mainnet, `lntb` for Bitcoin testnet, and `lnbcrt` for Bitcoin regtest) + data amount | ||||||
|        |        | ||||||
| - Data part : UNIX Timestamp + tagged parts include a payment hash, the pubkey of the payee node, an optional description of the payment, an expiration time, and some extra routing information. | - Data part : UNIX Timestamp + tagged parts include a payment hash, the pubkey of the payee node, an optional description of the payment, an expiration time, and some extra routing information. | ||||||
| 
 | 
 | ||||||
|  | 1. Destination: The public key of the person receiving the LN payment. | ||||||
|  | 2. payment_hash: The hash of the preimage that is used to lock the payment. You can only redeem a locked payment with the corresponding preimage to the payment hash. This enables routing on the Lightning Network without trusted third parties creating a conditional payment to be filled. | ||||||
|  | 3. num_satoshis: The amount of satoshis to be paid. | ||||||
|  | 4. expiry: Time when your node marks the invoice as invalid. Default is 1 hour or 3600 seconds. | ||||||
|  | 5. timestamp: Time when the invoice was created.  This is measured in seconds since 1970. | ||||||
|  | 6. cltv_expiry: Delta to use for time-lock of CLTV extended to the final hop. | ||||||
|  | 
 | ||||||
| > :book: ***Conditional payments. | > :book: ***Conditional payments. | ||||||
| 
 | 
 | ||||||
| As we said in Setting a channel chapter and although the channels are created between two participants, the channels can be connected to each other forming a payment network to allow payments between all the network participants without having a direct channel between them using an smart contract called **Hashed Time Locked Contract**. | As we said in Setting a channel chapter and although the channels are created between two participants, the channels can be connected to each other forming a payment network to allow payments between all the network participants without having a direct channel between them using an smart contract called **Hashed Time Locked Contract**. | ||||||
| @ -105,7 +112,20 @@ lnd$ lncli -n testnet getinfo | |||||||
| 
 | 
 | ||||||
| ### Generate a Payment request. | ### Generate a Payment request. | ||||||
| 
 | 
 | ||||||
| Now you can create a payment request using `lnd$lncli -n testnet addinvoice` command.    You can use --amt argument to indicate amount to be payed and add a description using --memo argument. | To create a new invoice on c-lightning you should use invoice `lightning-cli --network=testnet invoice` command. | ||||||
|  | It receives amount expresed on milisatoshis and description invoices texts. | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | c$ lightning-cli --network=testnet invoice 100000 test22 test22 | ||||||
|  | { | ||||||
|  |    "payment_hash": "743487bca87bb39a8f07314864e80d02f7686d97693ada32c69ee3a5e06132f7", | ||||||
|  |    "expires_at": 1600684714, | ||||||
|  |    "bolt11": "lntb1u1p047jp2pp5ws6g009g0wee4rc8x9yxf6qdqtmksmvhdyad5vkxnm36tcrpxtmsdq2w3jhxapjxgxqyjw5qcqp2sp5s3pyvvknhnaej6ukssvxlwc4sdqpcc2prrwue8jreke587ms68qq9qy9qsqhf5uhxk0mfw3sl87ukx8e5d757pkla6zlyu07p0wc666juzm5unhlaxeqmnl8f7v7vs3wz2thme9szs3f7whzr9uewz0kexqkl9jxgsq5r752l", | ||||||
|  |    "warning_offline": "No channel with a peer that is currently connected has sufficient incoming capacity" | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | For this example we'll create a payment request using `lnd$lncli -n testnet addinvoice` command.    You can use --amt argument to indicate amount to be payed and add a description using --memo argument. | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| lnd$ lncli -n testnet addinvoice --amt 100000 --memo "First LN Payment - Learning Bitcoin and Lightning from the Command line." | lnd$ lncli -n testnet addinvoice --amt 100000 --memo "First LN Payment - Learning Bitcoin and Lightning from the Command line." | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user