From 271eb4901414011aa5d9227582fd0114bb5ed7dd Mon Sep 17 00:00:00 2001 From: nassersaazi Date: Thu, 9 Feb 2023 01:56:49 +0300 Subject: [PATCH] Documentation: change c-lightning to core lightning to reflect recent name change of the implementaion --- 01_0_Introduction.md | 2 +- 01_1_Introducing_Bitcoin.md | 2 +- 19_0_Understanding_Your_Lightning_Setup.md | 8 ++--- 19_1_Verifying_Your_Lightning_Setup.md | 26 +++++++-------- 19_2_Knowing_Your_lightning_Setup.md | 6 ++-- ...rlude_Accessing_a_Second_Lightning_Node.md | 14 ++++---- 19_3_Setting_Up_a_Channel.md | 20 ++++++------ 20_1_Generate_a_Payment_Request.md | 10 +++--- 20_3_Closing_a_Channel.md | 2 +- 20_4_Lightning_Network_Review.md | 10 +++--- README.md | 4 +-- TODO-20.md | 2 +- es/01_0_Introduccion.md | 2 +- es/01_1_Introduciendo_Bitcoin.md | 2 +- ..._Entendiendo_Su_Configuracion_Lightning.md | 8 ++--- ..._Verificando_Su_Configuracion_Lightning.md | 26 +++++++-------- ...2_Conociendo_Su_Configuracion_Lightning.md | 6 ++-- ..._Accediendo_a_un_Segundo_Nodo_Lightning.md | 14 ++++---- es/19_3_Creando_un_Canal_en_Lightning.md | 20 ++++++------ es/20_1_Generando_una_Solicitud_de_Pago.md | 10 +++--- es/20_3_Cerrando_un_Canal_Lightning.md | 2 +- es/20_4_Expandiendo_la_Red_Lightning.md | 10 +++--- es/README.md | 4 +-- pt/01_1_Introducing_Bitcoin.md | 4 +-- pt/19_0_Understanding_Your_Lightning_Setup.md | 10 +++--- pt/19_1_Verifying_Your_Lightning_Setup.md | 32 +++++++++---------- pt/19_2_Knowing_Your_lightning_Setup.md | 10 +++--- ...rlude_Accessing_a_Second_Lightning_Node.md | 14 ++++---- pt/19_3_Setting_Up_a_Channel.md | 22 ++++++------- pt/20_1_Generate_a_Payment_Request.md | 10 +++--- pt/20_3_Closing_a_Channel.md | 4 +-- pt/20_4_Lightning_Network_Review.md | 12 +++---- pt/README.md | 4 +-- 33 files changed, 166 insertions(+), 166 deletions(-) diff --git a/01_0_Introduction.md b/01_0_Introduction.md index ae78733f4..452f9883b 100644 --- a/01_0_Introduction.md +++ b/01_0_Introduction.md @@ -6,7 +6,7 @@ The ways that we make payments for goods and services has been changing dramatic These centralization risks were some of the prime catalysts behind the creation of cryptocurrencies, the first and most successful of which is Bitcoin. Bitcoin offers pseudonymity; it makes it difficult to correlate transactions; and it makes censorship by individual entities all but impossible. These advantages have made it one of the quickest growing currencies in the world. That growth in turn has made Bitcoin into a going concern among entrepreneurs and developers, eager to create new services for the Bitcoin community. -If you're one of those entrepreneurs or developers, then this course is for you, because it's all about learning to program Bitcoin. It's an introductory course that explains all the nuances and features of Bitcoin as it goes. It also takes a very specific tack, by offering lessons in how to work _directly_ with Bitcoin Core and with the c-lightning server using their RPC interfaces. +If you're one of those entrepreneurs or developers, then this course is for you, because it's all about learning to program Bitcoin. It's an introductory course that explains all the nuances and features of Bitcoin as it goes. It also takes a very specific tack, by offering lessons in how to work _directly_ with Bitcoin Core and with the core lightning server using their RPC interfaces. Why not use some of the more fully featured libraries found in various programming languages? Why not create your own from scratch? It's because working with cryptocurrency is dangerous. There are no safety nets. If you accidentally overpay your fees or lose a signing key or create an invalid transaction or make any number of potential mistakes, then your cryptocurrency will be gone forever. Much of that responsibility will, of course, lie with you as a cryptocurrency programmer, but it can be minimized by working with the most robust, secure, and safe cryptocurrency interfaces around, the ones created by the cryptocurrency programming teams themselves: ``bitcoind`` and ``lightningd``. diff --git a/01_1_Introducing_Bitcoin.md b/01_1_Introducing_Bitcoin.md index e8e9bcb0c..88c047171 100644 --- a/01_1_Introducing_Bitcoin.md +++ b/01_1_Introducing_Bitcoin.md @@ -123,7 +123,7 @@ Lightning is a layer-2 protocol that interacts with Bitcoin to allow users to ex Lightning is also the secondary focus of this tutorial. Though it's mostly about interacting directly with Bitcoin (and the `bitcoind`), it pays some attention to Lightning because it's an upcoming technology that is likely to become a popular alternative to Bitcoin in the near future. This book takes the same approach to Lightning as to Bitcoin: it teaches how to interact directly with a trusted Lightning daemon from the command line. -Unlike with Bitcoin, there are actually several variants of Lightning. This tutorial uses the standard-compliant [c-lightning](https://github.com/ElementsProject/lightning) implementation as its trusted Lightning server. +Unlike with Bitcoin, there are actually several variants of Lightning. This tutorial uses the standard-compliant [core lightning](https://github.com/ElementsProject/lightning) implementation as its trusted Lightning server. **_What is a Layer-2 Protocol?_** A layer-2 Bitcoin protocol works on top of Bitcoin. In this case, Lightning works atop Bitcoin, interacting with it through smart contracts. diff --git a/19_0_Understanding_Your_Lightning_Setup.md b/19_0_Understanding_Your_Lightning_Setup.md index ff1891354..0abbbc535 100644 --- a/19_0_Understanding_Your_Lightning_Setup.md +++ b/19_0_Understanding_Your_Lightning_Setup.md @@ -2,13 +2,13 @@ > :information_source: **NOTE:** This is a draft in progress, so that I can get some feedback from early reviewers. It is not yet ready for learning. -The previous chapter concluded our work with Bitcoin proper, through CLI, scripting, and programming languages. However, there are many other utilities within the Bitcoin ecosystem: this chapter and the next cover what may be the biggest and most important: the Lightning Network. Here you'll begin work with the `lightning-cli` command-line interface, understanding a c-lightning setup and its features, including some examples and basic configuration. +The previous chapter concluded our work with Bitcoin proper, through CLI, scripting, and programming languages. However, there are many other utilities within the Bitcoin ecosystem: this chapter and the next cover what may be the biggest and most important: the Lightning Network. Here you'll begin work with the `lightning-cli` command-line interface, understanding a core lightning setup and its features, including some examples and basic configuration. ## Objectives for This Chapter After working through this chapter, a developer will be able to: - * Assess that a c-lightning Node is Installed and Up-to-date + * Assess that a core lightning Node is Installed and Up-to-date * Perform Basic Lightning Wallet Commands * Create a LIghtning Channel @@ -20,7 +20,7 @@ Supporting objectives include the ability to: ## Table of Contents -* [Section One: Verifying Your c-lightning Setup](19_1_Verifying_Your_Lightning_Setup.md) -* [Section Two: Knowing Your c-lightning Setup](19_2_Knowing_Your_lightning_Setup.md) +* [Section One: Verifying Your core lightning Setup](19_1_Verifying_Your_Lightning_Setup.md) +* [Section Two: Knowing Your core lightning Setup](19_2_Knowing_Your_lightning_Setup.md) * [Interlude: Accessing a Second Lightning Node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md) * [Section Three: Creating a Lightning Channel](19_3_Setting_Up_a_Channel.md) diff --git a/19_1_Verifying_Your_Lightning_Setup.md b/19_1_Verifying_Your_Lightning_Setup.md index ab14bf4d6..9fb8c3ea7 100644 --- a/19_1_Verifying_Your_Lightning_Setup.md +++ b/19_1_Verifying_Your_Lightning_Setup.md @@ -1,14 +1,14 @@ -# 19.1: Creating a c-lightning Setup +# 19.1: Creating a core lightning Setup > :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader. -In this section, you'll install and verify c-lightning, your utility for accessing the Lightning Network. +In this section, you'll install and verify core lightning, your utility for accessing the Lightning Network. > :book: ***What is the Lightning Network?*** The Lightning Network is a decentralized network that uses the smart contract functionality of the Bitcoin blockchain to enable instant payments across a network of participants. Lightning is built as a layer-2 protocol that interacts with Bitcoin to allow users to exchange their bitcoins "off-chain". > :book: ***What is a layer-2 protocol?*** Layer 2 refers to a secondary protocol built on top of the Bitcoin blockchain system. The main goal of these protocols is to solve the transaction speed and scaling difficulties that are present in Bitcoin: Bitcoin is not able to process thousands of transactions per second (TPS), so layer-2 protocols have been created to solve the blockchain scalability problem. These solutions are also known as "off-chain" scaling solutions. -## Install C-Lightning +## Install core Lightning If you used the [Bitcoin Standup Scripts](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts), you may have already installed Lightning at the beginning of this course. You can test this by seeing if `lightningd` is running: ``` @@ -27,15 +27,15 @@ standup 32072 0.0 0.0 6208 888 pts/0 S+ 15:50 0:00 grep -i lightni ``` If not, you'll need to install it now. Unfortunately, if you're using Debian you'll need to install it by hand, by compiling the source code — but it should still be pretty simple if you follow these instructions. If you happen to be on a standard Ubuntu system, instead try [Installing from Ubuntu ppa](#variant-install-from-ubuntu-ppa), and you can always attempt [Installing Pre-compiled Binaries](#variant-install-pre-compiled-binaries). -> :book: ***What is c-lightning?*** There are three different implementations of Lightning at present: c-lightning, LND, and Eclair. They should all be functionally compatible, based on the same [BOLT RFCs](https://github.com/lightningnetwork/lightning-rfc/blob/master/00-introduction.md), but their implementation details may be different. We've chosen c-lightning as the basis of our course because it's also part of the same [Elements Project](https://github.com/ElementsProject) that also contains Libwally. +> :book: ***What is core lightning?*** There are three different implementations of Lightning at present: core lightning, LND, and Eclair. They should all be functionally compatible, based on the same [BOLT RFCs](https://github.com/lightningnetwork/lightning-rfc/blob/master/00-introduction.md), but their implementation details may be different. We've chosen core lightning as the basis of our course because it's also part of the same [Elements Project](https://github.com/ElementsProject) that also contains Libwally. -### Compile the c-lightning Source Code +### Compile the core lightning Source Code Installing Lightning from source code should actually be pretty simple if you follow these instructions. You _probably_ want to do this on an unpruned node, as working with pruned nodes on Lightning may cause issues with installation and usage. If you set up your node way back at the start of this course to be pruned, you may wish to replace it with an unpruned node now. (If you're using testnet, you should be able to use the same type of machine as you did for your pruned node.) -> :warning: **WARNING:** You actually can run c-lightning on a pruned node. However, as the [Lightning repo](https://github.com/ElementsProject/lightning#pruning) notes, there may be issues. To make it work you have to ensure that your Lightning node is only ever trying to update info on blocks that your Bitcoin node has not pruned. To do so you must make sure (1) that your Bitcoin node is fully up to date before you start your Lightning node for the first time; and (2) that your Lightning node never falls too far behind your Bitcoin node (for a standard 550-block pruning, it can never be turned off for 4 or more days). So, you can do it, but it does introduce some danger, which isn't a good idea if you're running a production service. +> :warning: **WARNING:** You actually can run core lightning on a pruned node. However, as the [Lightning repo](https://github.com/ElementsProject/lightning#pruning) notes, there may be issues. To make it work you have to ensure that your Lightning node is only ever trying to update info on blocks that your Bitcoin node has not pruned. To do so you must make sure (1) that your Bitcoin node is fully up to date before you start your Lightning node for the first time; and (2) that your Lightning node never falls too far behind your Bitcoin node (for a standard 550-block pruning, it can never be turned off for 4 or more days). So, you can do it, but it does introduce some danger, which isn't a good idea if you're running a production service. With that, you're ready to install Lightning: @@ -95,7 +95,7 @@ A bitcoin lightning daemon (default values shown for network: testnet). You'll begin your exploration of the Lightning network with the `lightning-cli` command. However,`lightningd` _must_ be running to use `lightning-cli`, as `lightning-cli` sends JSON-RPC commands to the `lightningd` (all just as with `bitcoin-cli` and `bitcoind`). -If you installed `c-lightning` by hand, you'll now need to start it: +If you installed `core lightning` by hand, you'll now need to start it: ``` $ nohup lightningd --testnet & ``` @@ -228,12 +228,12 @@ bitcoin-cli -testnet getblock 0000000000000559febee77ab6e0be1b8d0bef0f971c7a4bee ## Create Aliases -We suggest creating some aliases to make it easier to use c-lightning. +We suggest creating some aliases to make it easier to use core lightning. You can do so by putting them in your `.bash_profile`. ``` cat >> ~/.bash_profile < :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader. Before you begin accessing the Lightning Network, you should come to a better understanding of your setup. -## Know Your c-lightning Directory +## Know Your core lightning Directory -When using c-lightning, everything is kept in the `~/.lightning` directory. +When using core lightning, everything is kept in the `~/.lightning` directory. The main directory just contains directories for whichever networks are configured, in this case testnet: ``` diff --git a/19_2__Interlude_Accessing_a_Second_Lightning_Node.md b/19_2__Interlude_Accessing_a_Second_Lightning_Node.md index 8b03a7a3e..9bf997d7e 100644 --- a/19_2__Interlude_Accessing_a_Second_Lightning_Node.md +++ b/19_2__Interlude_Accessing_a_Second_Lightning_Node.md @@ -10,7 +10,7 @@ There are four ways to do so (the first three of which are possible for your fir If someone else already has a Lightning node on the network of your choice, just ask them for their ID. -If they are are running c-lightning, they just need to use the `getinfo` command: +If they are are running core lightning, they just need to use the `getinfo` command: ``` $ lightning-cli getinfo lightning-cli: WARNING: default network changing in 2020: please set network=testnet in config! @@ -50,9 +50,9 @@ lightning-cli: WARNING: default network changing in 2020: please set network=tes ``` They can then tell you their `id` (`03240a4878a9a64aea6c3921a434e573845267b86e89ab19003b0c910a86d17687`). They will also need to tell you their IP address (`74.207.240.32`) and port (`9735`). -## Create a New c-lightning Node +## Create a New core lightning Node -However, for testing purposes, you probably want to have a second node under you own control. The easiest way to do so is to create a second c-lightning node on a new machine, using either Bitcoin Standup, per [§2.1](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md) or compiling it by hand, per [§19.1](19_1_Verifying_Your_Lightning_Setup.md). +However, for testing purposes, you probably want to have a second node under you own control. The easiest way to do so is to create a second core lightning node on a new machine, using either Bitcoin Standup, per [§2.1](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md) or compiling it by hand, per [§19.1](19_1_Verifying_Your_Lightning_Setup.md). Once you have your node running, you can run `getinfo` to retrieve your information, as shown above. @@ -109,7 +109,7 @@ $ sudo cp $GOPATH/bin/lnd $GOPATH/bin/lncli /usr/bin ### Create an LND Config File -Unlike with c-lightning, you will need to create a default config file for LND. +Unlike with core lightning, you will need to create a default config file for LND. However first, you need to enable ZMQ on your Bitcoind, if you didn't already in [§16.3](16_3_Receiving_Bitcoind_Notifications_with_C.md). @@ -212,7 +212,7 @@ $ sudo systemctl start lnd ### Enable Remote Connections -Just as with c-lightning, you're going to need to make LND accessible to other nodes. Here's how to do so if you use `ufw`, as per the Bitcoin Standup setups: +Just as with core lightning, you're going to need to make LND accessible to other nodes. Here's how to do so if you use `ufw`, as per the Bitcoin Standup setups: ``` $ sudo ufw allow 9735 ``` @@ -316,10 +316,10 @@ However, that definitely won't be the case for your first interaction with the L ## Summary: Accessing a Second Lightning Node -You always need two Lightning nodes to form a channel. If you don't have someone else who is testing things out with you, you're going to need to create a second one, either using c-lightning or (as we will in our examples) LND. +You always need two Lightning nodes to form a channel. If you don't have someone else who is testing things out with you, you're going to need to create a second one, either using core lightning or (as we will in our examples) LND. ## What's Next? -Though you've possibly created an LND, c-lightning will remain the heart of our examples until we need to start using both of them, in [Chapter 19](19_0_Understanding_Your_Lightning_Setup.md). +Though you've possibly created an LND, core lightning will remain the heart of our examples until we need to start using both of them, in [Chapter 19](19_0_Understanding_Your_Lightning_Setup.md). Continue "Understanding Your Lightning Setup" with [§19.3: Setting Up_a_Channel](19_3_Setting_Up_a_Channel.md). diff --git a/19_3_Setting_Up_a_Channel.md b/19_3_Setting_Up_a_Channel.md index 19259aae1..b75f44f29 100644 --- a/19_3_Setting_Up_a_Channel.md +++ b/19_3_Setting_Up_a_Channel.md @@ -2,29 +2,29 @@ > :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader. -You now understand the basics of your Lightning setup, and hopefully have either created or been given info on a second Lightning node. You're ready to create your first Lightning Network channel. Of course, you'll need to understand what is, and how it's created using c-lightning. +You now understand the basics of your Lightning setup, and hopefully have either created or been given info on a second Lightning node. You're ready to create your first Lightning Network channel. Of course, you'll need to understand what is, and how it's created using core lightning. > :book: ***What is a Lighting Channel?*** Simply, a lightning channel is a money tube that allows fast, cheap and private transfers of money without sending transactions to the blockchain. More technically a channel is a 2-of-2 multisignature on-chain Bitcoin transaction that establishes a trustless financial relationship between two people or two agents. A certain amount of money is deposited into the channel, when then mantains a local database with bitcoin balance for both parties, keeping track of how much money they each have from the initial amount. The two users can then exchange bitcoins through their Lightning channel without ever writing to the Bitcoin blockchain. Only when they want to close out their channel do they settle their bitcoins to the blockchain, based on the final division of coins. > :book: ***How do Lightning Channels Create a Lightning Network?*** Although a Lightning channel only allows payment between two users, channels can be connected together to form a network that allows payments between members that doesn't have a direct channel between them. This creates a network among multiple people built from pairwise connections. -In this section, we will continue using our c-lightning setup as our primary node. +In this section, we will continue using our core lightning setup as our primary node. ## Create a Channel Creating a Lightning channel requires the following steps: -* Fund your c-lightning wallet with some satoshis. +* Fund your core lightning wallet with some satoshis. * Connect to a remote node as a peer. * Open a channel. -### Fund Your c-lightning Wallet +### Fund Your core lightning Wallet -In order to move funds to a Lightning channel first requires funding your c-lightning wallet. +In order to move funds to a Lightning channel first requires funding your core lightning wallet. -> :book: ***What is a c-lightning wallet?*** C-lightning's standard implementation comes with a integrated Bitcoin wallet that allows you send and receive on-chain bitcoin transactions. This wallet will be used to create new channels. +> :book: ***What is a core lightning wallet?*** core lightning's standard implementation comes with a integrated Bitcoin wallet that allows you send and receive on-chain bitcoin transactions. This wallet will be used to create new channels. -The first thing you need to do is send some satoshis to your c-lightning wallet. You can create a new address using `lightning-cli newaddr` command. This generates a new address that can subsequently be used to fund channels managed by the c-lightning node. You can specify the type of address wanted; if not specified, the address generated will be a bech32. +The first thing you need to do is send some satoshis to your core lightning wallet. You can create a new address using `lightning-cli newaddr` command. This generates a new address that can subsequently be used to fund channels managed by the core lightning node. You can specify the type of address wanted; if not specified, the address generated will be a bech32. ``` $ lightning-cli --testnet newaddr @@ -74,15 +74,15 @@ Note that the value is listed in satoshis or microsatoshis, not Bitcoin! > :book: ***What are satoshis and msat?*** You already met satoshis way back in [§3.4](03_4_Receiving_a_Transaction.md). One satoshi is one hundred millionth of a bitcoin, so 300,000 satoshi = 0.003 BTC. A satoshi is the smallest unit of currency on the Bitcoin network. But, the Lightning network can go smaller, so 1,000 msat, or millisatoshis, equal one satoshi. That means that 1 msat is one hundred billionth of a bitcoin, and 300,000,000 msat = 0.003 BTC. -Now that you have funded your c-lightning wallet you will need information about a remote node to start creating channel process. +Now that you have funded your core lightning wallet you will need information about a remote node to start creating channel process. ### Connect to a Remote Node The next thing you need to do is connect your node to a peer. This is done with the `lightning-cli connect` command. Remember that if you want more information on this command, you should type `lightning-cli help connect`. -To connect your node to a remote peer you need its id, which represents the target node’s public key. As a convenience, `id` may be of the form `id@host` or `id@host:port`. You may have retrieved this with `lightning-cli getinfo` (on c-lightning) or `lncli --network=testnet getinfo` (on LND) as discussed in the [previous interlude](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). +To connect your node to a remote peer you need its id, which represents the target node’s public key. As a convenience, `id` may be of the form `id@host` or `id@host:port`. You may have retrieved this with `lightning-cli getinfo` (on core lightning) or `lncli --network=testnet getinfo` (on LND) as discussed in the [previous interlude](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). -We've selected the LND node, `032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543`, which is located at IP address `45.33.35.151`, which we're going to connect to from our c-lightning node: +We've selected the LND node, `032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543`, which is located at IP address `45.33.35.151`, which we're going to connect to from our core lightning node: ``` $ lightning-cli --network=testnet connect 032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543@45.33.35.151 diff --git a/20_1_Generate_a_Payment_Request.md b/20_1_Generate_a_Payment_Request.md index 8047bd0fb..3ae67a3e3 100644 --- a/20_1_Generate_a_Payment_Request.md +++ b/20_1_Generate_a_Payment_Request.md @@ -2,15 +2,15 @@ > :information_source: **NOTE:** This section has been recently added to the course and is an early draft that may still be awaiting review. Caveat reader. -This section describes how payments work on the Lightning Network, how to create a payment request (or _invoice_), and finally how to make sense of it. Issuing invoices depends on your having a second Lightning node, as described in [Accessing a Second Lightning Node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). These examples will use an LND node as their secondary node, to further demonstrate the possibilities of the Lightning Network. To differentiate between the nodes in these examples, the prompts will be shown as `c$` for the c-lightning node and `lnd$` as the LND node. If you want to reproduce this steps, you should [install your own secondary LND node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md#creating-a-new-lnd-node). +This section describes how payments work on the Lightning Network, how to create a payment request (or _invoice_), and finally how to make sense of it. Issuing invoices depends on your having a second Lightning node, as described in [Accessing a Second Lightning Node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). These examples will use an LND node as their secondary node, to further demonstrate the possibilities of the Lightning Network. To differentiate between the nodes in these examples, the prompts will be shown as `c$` for the core lightning node and `lnd$` as the LND node. If you want to reproduce this steps, you should [install your own secondary LND node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md#creating-a-new-lnd-node). > :book: ***What is an Invoice?** 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 variety of means to the paying user. All payment requests are single use. Lightning invoices use bech32 encoding, which is already used by Segregated Witness for Bitcoin. ## Create an Invoice -To create a new invoice on c-lightning you would use the `lightning-cli --testnet invoice` command. +To create a new invoice on core lightning you would use the `lightning-cli --testnet invoice` command. -Here's how it would work with c-lightning, using arguments of an amount (in millisatoshis), a label, and a description. +Here's how it would work with core lightning, using arguments of an amount (in millisatoshis), a label, and a description. ``` c$ lightning-cli --testnet invoice 100000 joe-payment "The money you owe me for dinner" { @@ -21,7 +21,7 @@ c$ lightning-cli --testnet invoice 100000 joe-payment "The money you owe me for "warning_mpp_capacity": "The total incoming capacity is still insufficient even if the payer had MPP capability." } ``` -However, for this example we're going to instead generate an invoice on an LND node, and then pay it on the c-lightning node. This requires LND's slightly different `addinvoice` command. You can use `--amt` argument to indicate amount to be paid (in millisatoshis) and add a description using the `--memo` argument. +However, for this example we're going to instead generate an invoice on an LND node, and then pay it on the core lightning node. This requires LND's slightly different `addinvoice` command. You can use `--amt` argument to indicate amount to be paid (in millisatoshis) and add a description using the `--memo` argument. ``` lnd$ lncli -n testnet addinvoice --amt 10000 --memo "First LN Payment - Learning Bitcoin and Lightning from the Command line." @@ -63,7 +63,7 @@ The human readable part is `ln` + `tb` + `100u`. ### Read the Data Invoice Part -The rest of the invoice (`1p0cwnqtpp5djkdahy4hz0wc909y39ap9tm3rq2kk9320hw2jtntwv4x39uz6asdr5ge5hyum5ypxyugzsv9uk6etwwssz6gzvv4shymnfdenjqsnfw33k76twypskuepqf35kw6r5de5kueeqveex7mfqw35x2gzrdakk6ctwvssxc6twv5hqcqzpgsp5a9ryqw7t23myn9psd36ra5alzvp6lzhxua58609teslwqmdljpxs9qy9qsq9ee7h500jazef6c306psr0ncru469zgyr2m2h32c6ser28vrvh5j4q23c073xsvmjwgv9wtk2q7j6pj09fn53v2vkrdkgsjv7njh9aqqtjn3vd`) contains a timestamp, specifically tagged data, and a signature. You obviously can't read it yourself, but you can ask c-lightning's `lightning-cli` to do so with the `decodepay` command: +The rest of the invoice (`1p0cwnqtpp5djkdahy4hz0wc909y39ap9tm3rq2kk9320hw2jtntwv4x39uz6asdr5ge5hyum5ypxyugzsv9uk6etwwssz6gzvv4shymnfdenjqsnfw33k76twypskuepqf35kw6r5de5kueeqveex7mfqw35x2gzrdakk6ctwvssxc6twv5hqcqzpgsp5a9ryqw7t23myn9psd36ra5alzvp6lzhxua58609teslwqmdljpxs9qy9qsq9ee7h500jazef6c306psr0ncru469zgyr2m2h32c6ser28vrvh5j4q23c073xsvmjwgv9wtk2q7j6pj09fn53v2vkrdkgsjv7njh9aqqtjn3vd`) contains a timestamp, specifically tagged data, and a signature. You obviously can't read it yourself, but you can ask core lightning's `lightning-cli` to do so with the `decodepay` command: ``` c$ lightning-cli --testnet decodepay lntb100u1p0cwnqtpp5djkdahy4hz0wc909y39ap9tm3rq2kk9320hw2jtntwv4x39uz6asdr5ge5hyum5ypxyugzsv9uk6etwwssz6gzvv4shymnfdenjqsnfw33k76twypskuepqf35kw6r5de5kueeqveex7mfqw35x2gzrdakk6ctwvssxc6twv5hqcqzpgsp5a9ryqw7t23myn9psd36ra5alzvp6lzhxua58609teslwqmdljpxs9qy9qsq9ee7h500jazef6c306psr0ncru469zgyr2m2h32c6ser28vrvh5j4q23c073xsvmjwgv9wtk2q7j6pj09fn53v2vkrdkgsjv7njh9aqqtjn3vd { diff --git a/20_3_Closing_a_Channel.md b/20_3_Closing_a_Channel.md index cda0cd39e..9361b796b 100644 --- a/20_3_Closing_a_Channel.md +++ b/20_3_Closing_a_Channel.md @@ -179,7 +179,7 @@ $ bitcoin-cli --named getrawtransaction txid=f68de52d80a1076e36c677ef640539c50e3 "blocktime": 1602713519 } ``` -The input of the transaction is `66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d`, which was the funding transaction in [§19.3](19_3_Setting_Up_a_Channel.md). The transaction then has two outputs, one for the remote node and the other for the local c-lightning wallet. The output on index 0 corresponds to the remote node with a value of 0.00010012 BTC; and the output on index 1 corresponds to the local node with a value of 0.00089804 BTC. +The input of the transaction is `66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d`, which was the funding transaction in [§19.3](19_3_Setting_Up_a_Channel.md). The transaction then has two outputs, one for the remote node and the other for the local core lightning wallet. The output on index 0 corresponds to the remote node with a value of 0.00010012 BTC; and the output on index 1 corresponds to the local node with a value of 0.00089804 BTC. Lightning will similarly show 89804 satoshis returned as a new UTXO in its wallet: ``` diff --git a/20_4_Lightning_Network_Review.md b/20_4_Lightning_Network_Review.md index c6f4d2792..46c956cc5 100644 --- a/20_4_Lightning_Network_Review.md +++ b/20_4_Lightning_Network_Review.md @@ -4,9 +4,9 @@ These two chapters have covered just a few of the most important activities with Lightning. There's lots more that can be done, and lots of variety possible. What follows are some pointers forward. -## Use c-lightning Plugins +## Use core lightning Plugins -c-lightning is a lightweight, highly customizable, and standard compliant implementation of the Lightning Network protocol. It extends it functionality using Plugins. Mainly, these are subprocesses that are initiated by the `lightningd` daemon and can interact with `lightningd` in a variety of ways: +core lightning is a lightweight, highly customizable, and standard compliant implementation of the Lightning Network protocol. It extends it functionality using Plugins. Mainly, these are subprocesses that are initiated by the `lightningd` daemon and can interact with `lightningd` in a variety of ways: * Command line options allow plugins to register their own command line arguments, which are then exposed through `lightningd`. * JSON-RPC command passthrough allows plugins to add their own commands to the JSON-RPC interface. @@ -19,19 +19,19 @@ The `lightningd` GitHub repo maintains a updated list of [plugins](https://githu ## Use Mobile Wallets -We currently know of two mobile lightning wallets that support the c-lightning implementation. +We currently know of two mobile lightning wallets that support the core lightning implementation. For iOS devices FullyNoded is an open-source iOS Bitcoin wallet that connects via Tor V3 authenticated service to your own full node. FullyNoded functionality is currently under active development and in early beta testing phase. * [FullyNoded](https://github.com/Fonta1n3/FullyNoded/blob/master/Docs/Lightning.md) -SparkWallet is a minimalistic wallet GUI for c-lightning, accessible over the web or through mobile and desktop apps for Android. +SparkWallet is a minimalistic wallet GUI for core lightning, accessible over the web or through mobile and desktop apps for Android. * [SparkWallet](https://github.com/shesek/spark-wallet) ## Use Different Lightning Implementations -c-lightning isn't your only option. Today there are three widely used implementations of the Lightning Network. All of them follow the [Basis of Lightning Technology (BOLT) documents](https://github.com/lightningnetwork/lightning-rfc), which describe a layer-2 protocol for off-chain bitcoin transfers. The specifications are currently a work-in-progress that is still being drafted. +core lightning isn't your only option. Today there are three widely used implementations of the Lightning Network. All of them follow the [Basis of Lightning Technology (BOLT) documents](https://github.com/lightningnetwork/lightning-rfc), which describe a layer-2 protocol for off-chain bitcoin transfers. The specifications are currently a work-in-progress that is still being drafted. | Name | Description | BitcoinStandup | Language | Repository | | ------------- | ------------- | :---: | ------------- | ------------- | diff --git a/README.md b/README.md index 8a3ce99ce..a9a2f2653 100644 --- a/README.md +++ b/README.md @@ -134,8 +134,8 @@ If you'd like to make your own translation, please see [Contributing](https://gi **Status:** Finished. * [19.0: Understanding Your Lightning Setup](19_0_Understanding_Your_Lightning_Setup.md) - * [19.1: Verifying Your c-lightning Setup](19_1_Verifying_Your_Lightning_Setup.md) - * [19.2: Knowing Your c-lightning Setup](19_2_Knowing_Your_lightning_Setup.md) + * [19.1: Verifying Your core lightning Setup](19_1_Verifying_Your_Lightning_Setup.md) + * [19.2: Knowing Your core lightning Setup](19_2_Knowing_Your_lightning_Setup.md) * [Interlude: Accessing a Second Lightning Node](19_2__Interlude_Accessing_a_Second_Lightning_Node.md) * [19.3: Creating a Lightning Channel](19_3_Setting_Up_a_Channel.md) * [20.0: Using Lightning](20_0_Using_Lightning.md) diff --git a/TODO-20.md b/TODO-20.md index fdc8847e5..29b6a6240 100644 --- a/TODO-20.md +++ b/TODO-20.md @@ -121,7 +121,7 @@ Add and document the following new concepts: * Edit & Integrate A2: Compiling **7/27** * Edit & Integrate A3: RegTest **8/4** 20. Edit & Integrate Lightning Chapters **10/13**, **10/14** - * Figure out how/if to set up a pruned c-lightning **10/13** + * Figure out how/if to set up a pruned core lightning **10/13** ## 6. Finalize Book diff --git a/es/01_0_Introduccion.md b/es/01_0_Introduccion.md index aacb863cd..bc53bf823 100644 --- a/es/01_0_Introduccion.md +++ b/es/01_0_Introduccion.md @@ -6,7 +6,7 @@ La forma en que realizamos pagos por bienes y servicios ha cambiado drásticamen Estos riesgos de centralización fueron algunos de los principales catalizadores detrás de la creación de las criptomonedas, el primero y más exitoso proyecto es Bitcoin. Bitcoin ofrece seudoanonimato; dificulta la correlación de transacciones y hace que la censura por parte de entidades individuales sea casi imposible. Estas ventajas la han convertido en una de las monedas de más rápido crecimiento en el mundo. Ese crecimiento, a su vez, ha convertido a Bitcoin en una empresa en marcha entre empresarios y desarrolladores, ansiosos por crear nuevos servicios para la comunidad de Bitcoin. -Si eres uno de esos emprendedores o desarrolladores, este curso es para ti, porque se trata de aprender a programar Bitcoin. Es un curso introductorio que explica todos los matices y características de Bitcoin a medida que avanza. También toma un rumbo muy específico, al ofrecer lecciones sobre cómo trabajar directamente con Bitcoin Core y con el servidor c-lightning usando sus interfaces RPC. +Si eres uno de esos emprendedores o desarrolladores, este curso es para ti, porque se trata de aprender a programar Bitcoin. Es un curso introductorio que explica todos los matices y características de Bitcoin a medida que avanza. También toma un rumbo muy específico, al ofrecer lecciones sobre cómo trabajar directamente con Bitcoin Core y con el servidor core lightning usando sus interfaces RPC. ¿Por qué no utilizar algunas de las bibliotecas más completas que se encuentran en varios lenguajes de programación? ¿Por qué no crear el tuyo propio desde cero? Porque empezar a trabajar con criptomonedas puede ser peligroso. No hay redes de seguridad. Si accidentalmente paga de más en sus tarifas o pierde una llave de firma o crea una transacción no válida o comete una cantidad de errores potenciales, entonces sus monedas desaparecerán para siempre. Gran parte de esa responsabilidad, por supuesto, recaerá en usted como programador de criptomonedas, aunque puede minimizarse el riesgo trabajando con las interfaces de criptomonedas más sólidas, seguras y probadas, las creadas por los propios equipos de programación de criptomonedas: bitcoind y lightningd. diff --git a/es/01_1_Introduciendo_Bitcoin.md b/es/01_1_Introduciendo_Bitcoin.md index 1bdde4740..69f7295a2 100644 --- a/es/01_1_Introduciendo_Bitcoin.md +++ b/es/01_1_Introduciendo_Bitcoin.md @@ -123,7 +123,7 @@ Lightning es un protocolo de capa 2 que interactúa con Bitcoin para permitir a Lightning Network también es el enfoque secundario de este tutorial. Aunque se trata principalmente de interactuar directamente con Bitcoin (y el `bitcoind`), presta algo de atención a Lightning porque es una tecnología de próxima aparición que probablemente se convierta en una alternativa popular a Bitcoin en un futuro próximo. Este libro adopta el mismo enfoque para Lightning que para Bitcoin: enseña cómo interactuar directamente con un demonio Lightning confiable desde la línea de comandos. -A diferencia de Bitcoin, en realidad existen varias variantes de Lightning. Este tutorial utiliza la implementación de [c-lightning](https://github.com/ElementsProject/lightning) compatible con el estándar como su servidor Lightning de confianza. +A diferencia de Bitcoin, en realidad existen varias variantes de Lightning. Este tutorial utiliza la implementación de [core lightning](https://github.com/ElementsProject/lightning) compatible con el estándar como su servidor Lightning de confianza. **_Qué es un protocolo de capa 2?_** Un protocolo de Bitcoin de capa 2 funciona sobre Bitcoin. En este caso, Lightning funciona sobre Bitcoin, interactuando con este a través de contratos inteligentes. diff --git a/es/19_0_Entendiendo_Su_Configuracion_Lightning.md b/es/19_0_Entendiendo_Su_Configuracion_Lightning.md index c9b96af4e..2120a0ae1 100644 --- a/es/19_0_Entendiendo_Su_Configuracion_Lightning.md +++ b/es/19_0_Entendiendo_Su_Configuracion_Lightning.md @@ -4,13 +4,13 @@ El capítulo anterior concluyó nuestro trabajo con Bitcoin propiamente dicho, a través de CLI, scripting y lenguajes de programación. Sin embargo, hay muchas otras utilidades dentro del ecosistema de Bitcoin: este capítulo y el siguiente cubren lo que puede ser el más grande e importante: Lightning Network. -Aquí comenzará a trabajar con la interfaz de línea de comandos `lightning-cli`, entendiendo la configuración de c-lightning y sus características, incluidos algunos ejemplos y la configuración básica. +Aquí comenzará a trabajar con la interfaz de línea de comandos `lightning-cli`, entendiendo la configuración de core lightning y sus características, incluidos algunos ejemplos y la configuración básica. ## Objetivos de este capítulo Después de trabajar en este capítulo, un desarrollador podrá: -* Evaluar que un nodo c-lightning está instalado y actualizado +* Evaluar que un nodo core lightning está instalado y actualizado * Realizar comandos básicos de billetera Lightning * Crea un canal de Lightning @@ -22,8 +22,8 @@ Los objetivos de apoyo incluyen la capacidad de: ## Tabla de contenido -* [Sección uno: Verificación de la configuración de c-lightning](19_1_Verificando_Su_Configuracion_Lightning.md) -* [Sección dos: Conozca su configuración de c-lightning](19_2_Conociendo_Su_Configuracion_Lightning.md) +* [Sección uno: Verificación de la configuración de core lightning](19_1_Verificando_Su_Configuracion_Lightning.md) +* [Sección dos: Conozca su configuración de core lightning](19_2_Conociendo_Su_Configuracion_Lightning.md) * [Interludio: Acceso a un segundo nodo Lightning](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md) * [Sección tres: Creación de un canal Lightning](19_3_Creando_un_Canal_en_Lightning.md) diff --git a/es/19_1_Verificando_Su_Configuracion_Lightning.md b/es/19_1_Verificando_Su_Configuracion_Lightning.md index 32307b372..546d7b446 100644 --- a/es/19_1_Verificando_Su_Configuracion_Lightning.md +++ b/es/19_1_Verificando_Su_Configuracion_Lightning.md @@ -1,14 +1,14 @@ -# 19.1: Creación de una configuración de c-lightning +# 19.1: Creación de una configuración de core lightning > :information_source: **NOTA :** Esta sección se agregó recientemente al curso y es un borrador inicial que aún puede estar pendiente de revisión. Lectura con advertencias. -En esta sección, instalará y verificará c-lightning, su utilidad para acceder a Lightning Network. +En esta sección, instalará y verificará core lightning, su utilidad para acceder a Lightning Network. > :book: ***¿Qué es Lightning Network?*** Lightning Network es una red descentralizada que utiliza la funcionalidad de contrato inteligente de la cadena de bloques de Bitcoin para permitir pagos instantáneos a través de una red de participantes. Lightning está construido como un protocolo de capa 2 que interactúa con Bitcoin para permitir a los usuarios intercambiar sus bitcoins "fuera de la cadena". > :book: ***¿Qué es un protocolo de capa 2?*** La capa 2 se refiere a un protocolo secundario construido sobre el sistema de cadena de bloques de Bitcoin. El objetivo principal de estos protocolos es resolver la velocidad de transacción y las dificultades de escalado que están presentes en Bitcoin: Bitcoin no es capaz de procesar miles de transacciones por segundo (TPS), por lo que se han creado protocolos de capa 2 para resolver el problema de escalabilidad de blockchain. Estas soluciones también se conocen como soluciones de escalado "fuera de la cadena". -## Instalar C-Lightning +## Instalar Core Lightning Si utilizó [Bitcoin Standup Scripts](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts), es posible que ya haya instalado Lightning al comienzo de este curso. Puede probar esto viendo si `lightningd` se está ejecutando: @@ -29,15 +29,15 @@ standup 32072 0.0 0.0 6208 888 pts/0 S+ 15:50 0:00 grep -i lightni Si no es así, deberá instalarlo ahora. Desafortunadamente, si está utilizando Debian, deberá instalarlo a mano, compilando el código fuente, pero aún así debería ser bastante simple si sigue estas instrucciones. Si se encuentra en un sistema Ubuntu estándar, intente [Instalar desde Ubuntu ppa](#variant-install-from-ubuntu-ppa), y siempre puede intentar [Instalar binarios precompilados](#variant-install-binarios precompilados). -> :book: ***¿Qué es c-lightning?*** Hay tres implementaciones diferentes de Lightning en la actualidad: c-lightning, LND y Eclair. Todos deben ser funcionalmente compatibles, basados ​​en las mismas [RFC de BOLT](https://github.com/lightningnetwork/lightning-rfc/blob/master/00-introduction.md), pero sus detalles de implementación pueden ser diferentes. Hemos elegido c-lightning como base de nuestro curso porque también es parte del mismo [Elements Project](https://github.com/ElementsProject) que también contiene Libwally. +> :book: ***¿Qué es core lightning?*** Hay tres implementaciones diferentes de Lightning en la actualidad: core lightning, LND y Eclair. Todos deben ser funcionalmente compatibles, basados ​​en las mismas [RFC de BOLT](https://github.com/lightningnetwork/lightning-rfc/blob/master/00-introduction.md), pero sus detalles de implementación pueden ser diferentes. Hemos elegido core lightning como base de nuestro curso porque también es parte del mismo [Elements Project](https://github.com/ElementsProject) que también contiene Libwally. -### Compilar el código fuente de c-lightning +### Compilar el código fuente de core lightning La instalación de Lightning desde el código fuente debería ser bastante simple si sigue estas instrucciones. _Probablemente_ desea hacer esto en un nodo sin podar, ya que trabajar con nodos podados en Lightning puede causar problemas con la instalación y el uso. Si configuró su nodo al principio de este curso para podarlo, es posible que desee reemplazarlo con un nodo sin podar ahora. (Si está usando testnet, debería poder usar el mismo tipo de máquina que usó para su nodo podado). -> :warning:**ADVERTENCIA:** En realidad, puede ejecutar c-lightning en un nodo podado. Sin embargo, como señala el [repositorio Lightning](https://github.com/ElementsProject/lightning#pruning), puede haber problemas. Para que funcione, debe asegurarse de que su nodo Lightning solo intente actualizar la información de los bloques que su nodo Bitcoin no ha eliminado. Para hacerlo, debe asegurarse de (1) que su nodo Bitcoin esté completamente actualizado antes de iniciar su nodo Lightning por primera vez; y (2) que su nodo Lightning nunca se quede muy atrás de su nodo Bitcoin (para una poda estándar de 550 bloques, nunca se puede apagar durante 4 o más días). Entonces, puede hacerlo, pero presenta cierto peligro, lo cual no es una buena idea si está ejecutando un servicio de producción. +> :warning:**ADVERTENCIA:** En realidad, puede ejecutar core lightning en un nodo podado. Sin embargo, como señala el [repositorio Lightning](https://github.com/ElementsProject/lightning#pruning), puede haber problemas. Para que funcione, debe asegurarse de que su nodo Lightning solo intente actualizar la información de los bloques que su nodo Bitcoin no ha eliminado. Para hacerlo, debe asegurarse de (1) que su nodo Bitcoin esté completamente actualizado antes de iniciar su nodo Lightning por primera vez; y (2) que su nodo Lightning nunca se quede muy atrás de su nodo Bitcoin (para una poda estándar de 550 bloques, nunca se puede apagar durante 4 o más días). Entonces, puede hacerlo, pero presenta cierto peligro, lo cual no es una buena idea si está ejecutando un servicio de producción. Con eso, está listo para instalar Lightning: @@ -87,7 +87,7 @@ Puede confirmar que ha instalado lightningd correctamente usando el parámetro ` Comenzará su exploración de la red Lightning con el comando `lightning-cli`. Sin embargo, `lightningd` _ debe_ estar ejecutándose para usar` lightning-cli`, ya que `lightning-cli` envía comandos JSON-RPC al` lightningd` (todo igual que con `bitcoin-cli` y` bitcoind`). -Si instaló `c-lightning` a mano, ahora deberá iniciarlo: +Si instaló `core lightning` a mano, ahora deberá iniciarlo: ``` $ nohup lightningd --testnet & @@ -199,13 +199,13 @@ bitcoin-cli -testnet getblock 0000000000000559febee77ab6e0be1b8d0bef0f971c7a4bee ## Crear alias -Sugerimos crear algunos alias para facilitar el uso de c-lightning. +Sugerimos crear algunos alias para facilitar el uso de core lightning. Puede hacerlo colocándolos en su `.bash_profile`. ``` cat >> ~/.bash_profile < :information_source: **NOTA:** Esta sección se ha agregado recientemente al curso y es un borrador inicial que aún puede estar pendiente de revisión. Lector de advertencias. Antes de comenzar a acceder a Lightning Network, debe comprender mejor su configuración. -## Conozca su directorio de c-lightning +## Conozca su directorio de core lightning -Cuando se usa c-lightning, todo se guarda en el directorio `~/.lightning`. +Cuando se usa core lightning, todo se guarda en el directorio `~/.lightning`. El directorio principal solo contiene directorios para las redes que estén configuradas, en este caso testnet: ``` diff --git a/es/19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md b/es/19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md index ccb841382..fd5acda8e 100644 --- a/es/19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md +++ b/es/19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md @@ -10,7 +10,7 @@ Hay cuatro maneras de hacerlo (las tres primeras son posibles para su primera co Si alguien más ya tiene un nodo Lightning en la red de su elección, simplemente pídale su ID. -Si están ejecutando c-lightning, solo necesitan usar el comando `getinfo`: +Si están ejecutando core lightning, solo necesitan usar el comando `getinfo`: ``` $ lightning-cli getinfo @@ -51,9 +51,9 @@ lightning-cli: WARNING: default network changing in 2020: please set network=tes ``` A continuación, pueden decirle su `id` (`03240a4878a9a64aea6c3921a434e573845267b86e89ab19003b0c910a86d17687`). También tendrán que indicarle su dirección IP (`74.207.240.32`) y su puerto (`9735`). -## Crear un nuevo nodo c-lightning +## Crear un nuevo nodo core lightning -Sin embargo, para fines de prueba, es probable que desee tener un segundo nodo bajo su propio control. La forma más fácil de hacerlo es crear un segundo nodo c-lightning en una máquina nueva, usando Bitcoin Standup, por [§2.1](02_1_Configurando_un_Bitcoin-Core_VPS_con_StackScript.md) o compilándolo a mano, por [§19.1](19_1_Verificando_Su_Configuracion_Lightning.md). +Sin embargo, para fines de prueba, es probable que desee tener un segundo nodo bajo su propio control. La forma más fácil de hacerlo es crear un segundo nodo core lightning en una máquina nueva, usando Bitcoin Standup, por [§2.1](02_1_Configurando_un_Bitcoin-Core_VPS_con_StackScript.md) o compilándolo a mano, por [§19.1](19_1_Verificando_Su_Configuracion_Lightning.md). Una vez que tenga su nodo en ejecución, puede ejecutar `getinfo` para recuperar su información, como se muestra arriba. @@ -109,7 +109,7 @@ $ sudo cp $GOPATH/bin/lnd $GOPATH/bin/lncli /usr/bin ``` ### Crear un archivo de configuración de LND -A diferencia de c-lightning, necesitará crear un archivo de configuración predeterminado para LND. +A diferencia de core lightning, necesitará crear un archivo de configuración predeterminado para LND. Sin embargo, usted primero necesita habilitar ZMQ en su Bitcoind, si no lo hizo ya en [§16.3](16_3_Recibiendo_Notificaciones_de_Bitcoind_en_C_con_las_Bibliotecas_ZMQ.md). @@ -211,7 +211,7 @@ $ sudo systemctl start lnd ### Habilitar conexiones remotas -Al igual que con c-lightning, va a tener que hacer LND accesible a otros nodos. He aquí cómo hacerlo si utiliza `ufw`, según las configuraciones de Bitcoin Standup: +Al igual que con core lightning, va a tener que hacer LND accesible a otros nodos. He aquí cómo hacerlo si utiliza `ufw`, según las configuraciones de Bitcoin Standup: ``` $ sudo ufw allow 9735 ``` @@ -315,10 +315,10 @@ Sin embargo, eso definitivamente no será el caso para su primera interacción c ## Resumen: Acceso a un segundo nodo de rayos -Siempre necesitará dos nodos Lightning para formar un canal. Si no tiene a alguien más que esté probando las cosas con usted, va a necesitar crear un segundo nodo, ya sea usando c-lightning o (como haremos en nuestros ejemplos) LND. +Siempre necesitará dos nodos Lightning para formar un canal. Si no tiene a alguien más que esté probando las cosas con usted, va a necesitar crear un segundo nodo, ya sea usando core lightning o (como haremos en nuestros ejemplos) LND. ## ¿Qué es lo siguiente? -Aunque posiblemente haya creado un LND, c-lightning seguirá siendo el corazón de nuestros ejemplos hasta que necesitemos empezar a usar ambos, en el [Capítulo 19](19_0_Entendiendo_Su_Configuracion_Lightning.md). +Aunque posiblemente haya creado un LND, core lightning seguirá siendo el corazón de nuestros ejemplos hasta que necesitemos empezar a usar ambos, en el [Capítulo 19](19_0_Entendiendo_Su_Configuracion_Lightning.md). Continuar "Comprender la configuración de nodo Lightning" con [§19.3: Creando un Canal en Lightning](19_3_Creando_un_Canal_en_Lightning.md). diff --git a/es/19_3_Creando_un_Canal_en_Lightning.md b/es/19_3_Creando_un_Canal_en_Lightning.md index 23992d8da..f97dca72e 100644 --- a/es/19_3_Creando_un_Canal_en_Lightning.md +++ b/es/19_3_Creando_un_Canal_en_Lightning.md @@ -2,29 +2,29 @@ > :information_source: **NOTA:** Esta sección se agregó recientemente al curso y es un borrador inicial que aún puede estar pendiente de revisión. Lector de advertencias. -Ahora comprende los conceptos básicos de su configuración Lightning y, con suerte, ha creado o recibido información sobre un segundo nodo Lightning. Está listo para crear su primer canal Lightning Network. Por supuesto, deberá comprender qué es y cómo se crea utilizando c-lightning. +Ahora comprende los conceptos básicos de su configuración Lightning y, con suerte, ha creado o recibido información sobre un segundo nodo Lightning. Está listo para crear su primer canal Lightning Network. Por supuesto, deberá comprender qué es y cómo se crea utilizando core lightning. > :book: ***¿Qué es un canal de lightning?*** Simplemente, un canal de iluminación es un tubo de dinero que permite transferencias de dinero rápidas, baratas y privadas sin enviar transacciones a la cadena de bloques. Más técnicamente, un canal es una transacción de Bitcoin en cadena con firmas múltiples 2 de 2 que establece una relación financiera sin confianza entre dos personas o dos agentes. Se deposita una cierta cantidad de dinero en el canal, cuando luego se mantiene una base de datos local con saldo de bitcoins para ambas partes, haciendo un seguimiento de cuánto dinero tiene cada uno de la cantidad inicial. Los dos usuarios pueden intercambiar bitcoins a través de su canal Lightning sin tener que escribir en la cadena de bloques de Bitcoin. Solo cuando quieren cerrar su canal, liquidan sus bitcoins en la cadena de bloques, en función de la división final de monedas. > :book: ***¿Cómo crean los canales Lightning una red Lightning?*** Aunque un canal Lightning solo permite el pago entre dos usuarios, los canales se pueden conectar entre sí para formar una red que permite pagos entre miembros que no tienen canal directo entre ellos. Esto crea una red entre varias personas construida a partir de conexiones por pares. -En esta sección, continuaremos usando nuestra configuración de c-lightning como nuestro nodo principal. +En esta sección, continuaremos usando nuestra configuración de core lightning como nuestro nodo principal. ## Crear un canal La creación de un canal Lightning requiere los siguientes pasos: -* Financie su billetera c-lightning con algunos satoshis. +* Financie su billetera core lightning con algunos satoshis. * Conéctese a un nodo remoto como un par. * Abre un canal. -### Financiar su billetera c-lightning +### Financiar su billetera core lightning -Para mover fondos a un canal Lightning, primero se requiere financiar su billetera c-lightning. +Para mover fondos a un canal Lightning, primero se requiere financiar su billetera core lightning. -> :book: ***¿Qué es una billetera c-lightning?*** La implementación estándar de C-lightning viene con una billetera Bitcoin integrada que le permite enviar y recibir transacciones bitcoin en cadena. Esta billetera se utilizará para crear nuevos canales. +> :book: ***¿Qué es una billetera core lightning?*** La implementación estándar de core lightning viene con una billetera Bitcoin integrada que le permite enviar y recibir transacciones bitcoin en cadena. Esta billetera se utilizará para crear nuevos canales. -Lo primero que debe hacer es enviar algunos satoshis a su billetera c-lightning. Puede crear una nueva dirección usando el comando `lightning-cli newaddr`. Esto genera una nueva dirección que posteriormente se puede utilizar para financiar canales gestionados por el nodo c-lightning. Puede especificar el tipo de dirección deseada; si no se especifica, la dirección generada será un bech32. +Lo primero que debe hacer es enviar algunos satoshis a su billetera core lightning. Puede crear una nueva dirección usando el comando `lightning-cli newaddr`. Esto genera una nueva dirección que posteriormente se puede utilizar para financiar canales gestionados por el nodo core lightning. Puede especificar el tipo de dirección deseada; si no se especifica, la dirección generada será un bech32. ``` $ lightning-cli --testnet newaddr @@ -76,15 +76,15 @@ Tenga en cuenta que el valor aparece en satoshis o microsatoshis, ¡no en Bitcoi > :book: ***¿Qué son los satoshis y msat?*** Ya conoció los satoshis en [§3.4](03_4_Recibiendo_una_Transaccion.md). Un satoshi es la cien millonésima parte de un bitcoin, por lo que 300.000 satoshi = 0,003 BTC. Un satoshi es la unidad monetaria más pequeña de la red Bitcoin. Pero, la red Lightning puede ser más pequeña, por lo que 1000 msat, o milisatoshis, equivalen a un satoshi. Eso significa que 1 msat es la cien mil millonésima parte de un bitcoin y 300.000.000 msat = 0,003 BTC. -Ahora que ha financiado su billetera c-lightning, necesitará información sobre un nodo remoto para comenzar a crear el proceso de canal. +Ahora que ha financiado su billetera core lightning, necesitará información sobre un nodo remoto para comenzar a crear el proceso de canal. ### Conectarse a un nodo remoto Lo siguiente que debe hacer es conectar su nodo a un par. Esto se hace con el comando `lightning-cli connect`. Recuerde que si desea obtener más información sobre este comando, debe escribir `lightning-cli help connect`. -Para conectar su nodo a un par remoto, necesita su ID, que representa la clave pública del nodo de destino. Para su comodidad, `id` puede tener el formato `id@host` o `id@host:port`. Es posible que haya recuperado esto con `lightning-cli getinfo` (en c-lightning) o `lncli --network=testnet getinfo` (en LND) como se discutió en el [interludio anterior](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md). +Para conectar su nodo a un par remoto, necesita su ID, que representa la clave pública del nodo de destino. Para su comodidad, `id` puede tener el formato `id@host` o `id@host:port`. Es posible que haya recuperado esto con `lightning-cli getinfo` (en core lightning) o `lncli --network=testnet getinfo` (en LND) como se discutió en el [interludio anterior](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md). -Hemos seleccionado el nodo LND, `032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543`, que se encuentra en la dirección IP `45.33.35.151`, a la que nos vamos a conectar desde nuestro nodo c-lightning: +Hemos seleccionado el nodo LND, `032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543`, que se encuentra en la dirección IP `45.33.35.151`, a la que nos vamos a conectar desde nuestro nodo core lightning: ``` $ lightning-cli --network=testnet connect 032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543@45.33.35.151 diff --git a/es/20_1_Generando_una_Solicitud_de_Pago.md b/es/20_1_Generando_una_Solicitud_de_Pago.md index 6e778740d..e96d57f7e 100644 --- a/es/20_1_Generando_una_Solicitud_de_Pago.md +++ b/es/20_1_Generando_una_Solicitud_de_Pago.md @@ -3,15 +3,15 @@ > :information_source: **NOTA:** Esta sección se ha agregado recientemente al curso y es un borrador inicial que aún puede estar pendiente de revisión. Lector de advertencias. -Esta sección describe cómo funcionan los pagos en Lightning Network, cómo crear una solicitud de pago (o _factura_), y, finalmente, cómo entenderla. Le emisión de facturas depende de que tenga un segundo nodo Lightning, como se describe en [Acceso a un Segundo Nodo Lightning](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md). Estos ejemplos usarán un nodo LND como su nodo secundario, para demostrar aún más las posibilidades de Lightning Network. Para diferenciar entre los nodos en estos ejemplos, las solicitudes se mostrarán como `c$` para el nodo c-lightning y `lnd$` como el nodo LND. Si desea reproducir estos pasos, debe [instalar su propio nodo LND secundario](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md#Crear-un-nuevo-nodo-LND). +Esta sección describe cómo funcionan los pagos en Lightning Network, cómo crear una solicitud de pago (o _factura_), y, finalmente, cómo entenderla. Le emisión de facturas depende de que tenga un segundo nodo Lightning, como se describe en [Acceso a un Segundo Nodo Lightning](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md). Estos ejemplos usarán un nodo LND como su nodo secundario, para demostrar aún más las posibilidades de Lightning Network. Para diferenciar entre los nodos en estos ejemplos, las solicitudes se mostrarán como `c$` para el nodo core lightning y `lnd$` como el nodo LND. Si desea reproducir estos pasos, debe [instalar su propio nodo LND secundario](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md#Crear-un-nuevo-nodo-LND). > :book: ***¿Qué es una Factura?** Casi todos los pagos realizados en Lightning Network requieren una factura, que no es más que una **solicitud de pago** realizada por el destinatario del dinero y enviada por una variedad de medios al usario que paga. Todas las solicitudes de pago son de un solo uso. Las facturas Lightning utilizan la codificación bech32, que ya utiliza Segregated Witness para Bitcoin. ## Crear una Factura -Para crear una nueva factura en c-lightning, usaría el comando `lightning-cli --testnet invoice`. +Para crear una nueva factura en core lightning, usaría el comando `lightning-cli --testnet invoice`. -Así es como funcionaría con c-lightning, usando argumentos de una cantidad (en millisatoshis), una etiqueta y una descripción. +Así es como funcionaría con core lightning, usando argumentos de una cantidad (en millisatoshis), una etiqueta y una descripción. ``` c$ lightning-cli --testnet invoice 100000 joe-payment "The money you owe me for dinner" { @@ -22,7 +22,7 @@ c$ lightning-cli --testnet invoice 100000 joe-payment "The money you owe me for "warning_mpp_capacity": "The total incoming capacity is still insufficient even if the payer had MPP capability." } ``` -Sin embargo, para este ejemplo, vamos a generar una factura en un nodo LND y luego pagarla en el nodo c-lightning. Esto requiere el comando `addinvoice` ligeramente diferente de LND. Puede usar el argumento `--amt` para indicar la cantidad a pagar (en millisatoshis) y agregar una descripción usando el argumento `--memo`. +Sin embargo, para este ejemplo, vamos a generar una factura en un nodo LND y luego pagarla en el nodo core lightning. Esto requiere el comando `addinvoice` ligeramente diferente de LND. Puede usar el argumento `--amt` para indicar la cantidad a pagar (en millisatoshis) y agregar una descripción usando el argumento `--memo`. ``` lnd$ lncli -n testnet addinvoice --amt 10000 --memo "First LN Payment - Learning Bitcoin and Lightning from the Command line." @@ -64,7 +64,7 @@ La parte legible por humanos `ln` + `tb` + `100u`. ### Leer la Parte de la Factura de Datos -El resto de la factura (`1p0cwnqtpp5djkdahy4hz0wc909y39ap9tm3rq2kk9320hw2jtntwv4x39uz6asdr5ge5hyum5ypxyugzsv9uk6etwwssz6gzvv4shymnfdenjqsnfw33k76twypskuepqf35kw6r5de5kueeqveex7mfqw35x2gzrdakk6ctwvssxc6twv5hqcqzpgsp5a9ryqw7t23myn9psd36ra5alzvp6lzhxua58609teslwqmdljpxs9qy9qsq9ee7h500jazef6c306psr0ncru469zgyr2m2h32c6ser28vrvh5j4q23c073xsvmjwgv9wtk2q7j6pj09fn53v2vkrdkgsjv7njh9aqqtjn3vd`) contiene una marca de tiempo, datos etiquetados específicamente y una firma. Obviamente, no puede leerlo usted mismo, pero puede pedirle a `lightning-cli` de c-lightning que lo haga con el comando `decodepay`: +El resto de la factura (`1p0cwnqtpp5djkdahy4hz0wc909y39ap9tm3rq2kk9320hw2jtntwv4x39uz6asdr5ge5hyum5ypxyugzsv9uk6etwwssz6gzvv4shymnfdenjqsnfw33k76twypskuepqf35kw6r5de5kueeqveex7mfqw35x2gzrdakk6ctwvssxc6twv5hqcqzpgsp5a9ryqw7t23myn9psd36ra5alzvp6lzhxua58609teslwqmdljpxs9qy9qsq9ee7h500jazef6c306psr0ncru469zgyr2m2h32c6ser28vrvh5j4q23c073xsvmjwgv9wtk2q7j6pj09fn53v2vkrdkgsjv7njh9aqqtjn3vd`) contiene una marca de tiempo, datos etiquetados específicamente y una firma. Obviamente, no puede leerlo usted mismo, pero puede pedirle a `lightning-cli` de core lightning que lo haga con el comando `decodepay`: ``` c$ lightning-cli --testnet decodepay lntb100u1p0cwnqtpp5djkdahy4hz0wc909y39ap9tm3rq2kk9320hw2jtntwv4x39uz6asdr5ge5hyum5ypxyugzsv9uk6etwwssz6gzvv4shymnfdenjqsnfw33k76twypskuepqf35kw6r5de5kueeqveex7mfqw35x2gzrdakk6ctwvssxc6twv5hqcqzpgsp5a9ryqw7t23myn9psd36ra5alzvp6lzhxua58609teslwqmdljpxs9qy9qsq9ee7h500jazef6c306psr0ncru469zgyr2m2h32c6ser28vrvh5j4q23c073xsvmjwgv9wtk2q7j6pj09fn53v2vkrdkgsjv7njh9aqqtjn3vd { diff --git a/es/20_3_Cerrando_un_Canal_Lightning.md b/es/20_3_Cerrando_un_Canal_Lightning.md index 926ab5c6f..f407ba9a4 100644 --- a/es/20_3_Cerrando_un_Canal_Lightning.md +++ b/es/20_3_Cerrando_un_Canal_Lightning.md @@ -178,7 +178,7 @@ $ bitcoin-cli --named getrawtransaction txid=f68de52d80a1076e36c677ef640539c50e3 "blocktime": 1602713519 } ``` -La entrada de la transacción es `66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d`, que era la transacción de financiación en [§19.3](19_3_Creando_un_Canal_en_Lightning.md). La transacción tiene dos salidas, una para el nodo remoto y la otra para la billetera c-lightning local. La salida en el índice 0 corresponde al nodo remoto con un valor de 0.00010012 BTC; y la salida en el índice 1 corresponde al nodo local con un valor de 0.00089804 BTC. +La entrada de la transacción es `66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d`, que era la transacción de financiación en [§19.3](19_3_Creando_un_Canal_en_Lightning.md). La transacción tiene dos salidas, una para el nodo remoto y la otra para la billetera core lightning local. La salida en el índice 0 corresponde al nodo remoto con un valor de 0.00010012 BTC; y la salida en el índice 1 corresponde al nodo local con un valor de 0.00089804 BTC. Lightning mostrará de manera similar 89804 satoshis devueltos como un nuevo UTXO en su billetera: ``` diff --git a/es/20_4_Expandiendo_la_Red_Lightning.md b/es/20_4_Expandiendo_la_Red_Lightning.md index 1fd125c28..84396d0bd 100644 --- a/es/20_4_Expandiendo_la_Red_Lightning.md +++ b/es/20_4_Expandiendo_la_Red_Lightning.md @@ -4,9 +4,9 @@ Estos dos capítulos han cubierto solo algunas de las actividades más importantes con Lightning. Se puede hacer mucho más y es posible una gran variedad. Lo que sigue son algunos consejos a seguir. -## Usar Complementos de c-lightning +## Usar Complementos de core lightning -c-lightning es una implementación ligera, altamente pseronalizable y compatible con el estándar del protocolo de la Red Lightning. Extiende su funcionalidad usando complementos. Principalmente, estos son subprocesos que son inciados por el demonio `lightningd` y pueden interactuar con `lightningd` en una variedad de formas: +core lightning es una implementación ligera, altamente pseronalizable y compatible con el estándar del protocolo de la Red Lightning. Extiende su funcionalidad usando complementos. Principalmente, estos son subprocesos que son inciados por el demonio `lightningd` y pueden interactuar con `lightningd` en una variedad de formas: * Las opciones de la línea de comandos permiten que los complementos registren sus propios argumentos de línea de comandos, que luego se exponen a través de `lightningd`. * El paso de comandos JSON-RPC permite que los complementos agreguen sus propios comandos a la interfaz JSON-RPC. @@ -19,19 +19,19 @@ El repositorio de GitHub `lightningd` mantiene una lista actualizada de [complem ## Usar Carteras Móviles -Actualmente conocemos dos billeteras Lightning móviles que admiten la implementación de c-lightning. +Actualmente conocemos dos billeteras Lightning móviles que admiten la implementación de core lightning. Para dispositivos iOS, FullyNoded es una billetera de Bitcoin para iOS de código abierto que se conecta a través del servicio autenticado Tor V3 a su propio nodo completo. La funcionalidad FullyNoded se encuentra actualmente en desarrolo activo y en la fase de prueba beta inicial. * [FullyNoded](https://github.com/Fonta1n3/FullyNoded/blob/master/Docs/Lightning.md) -SparkWallet es una GUI de billetera minimalista para c-lightning, accesible a través de la web o mediante aplicaciones móviles y de escritorio para Android. +SparkWallet es una GUI de billetera minimalista para core lightning, accesible a través de la web o mediante aplicaciones móviles y de escritorio para Android. * [SparkWallet](https://github.com/shesek/spark-wallet) ## Usar Differentes Implementaciones Lightning -c-lightning no es su única opción. Hoy en día existen tres implementaciones ampliamente utilizadas de la Red Network. Todos siguen los [documentos Basis of Lightning Technology (BOLT)](https://github.com/lightningnetwork/lightning-rfc), (la base de la tecnología lightning) que describen un protocolo de layer-2 para transferencias de bitcoins fuera de la cadena. Las especificaciones son actualmente un trabajo en progreso que aún se está redactando. +core lightning no es su única opción. Hoy en día existen tres implementaciones ampliamente utilizadas de la Red Network. Todos siguen los [documentos Basis of Lightning Technology (BOLT)](https://github.com/lightningnetwork/lightning-rfc), (la base de la tecnología lightning) que describen un protocolo de layer-2 para transferencias de bitcoins fuera de la cadena. Las especificaciones son actualmente un trabajo en progreso que aún se está redactando. | Nombre | Descripción | BitcoinStandup | Lenguaje | Repositorio | | ------------- | ------------- | :---: | ------------- | ------------- | diff --git a/es/README.md b/es/README.md index ae755fce7..044e5572d 100644 --- a/es/README.md +++ b/es/README.md @@ -135,8 +135,8 @@ Si le gustaría hacer su propia traducción, por favor, vea [Contribuyendo](#con **Estado:** Finalizado. * [19.0: Entendiendo Su Configuración Lightning](19_0_Entendiendo_Su_Configuracion_Lightning.md) - * [19.1: Verificando Su Configuración c-lightning](19_1_Verificando_Su_Configuracion_Lightning.md) - * [19.2: Conociendo Su Configuración c-lightning](19_2_Conociendo_Su_Configuracion_Lightning.md) + * [19.1: Verificando Su Configuración core lightning](19_1_Verificando_Su_Configuracion_Lightning.md) + * [19.2: Conociendo Su Configuración core lightning](19_2_Conociendo_Su_Configuracion_Lightning.md) * [Interludio: Accediendo a un Segundo Nodo Lightning](19_2_Interludio_Accediendo_a_un_Segundo_Nodo_Lightning.md) * [19.3: Creando un Canal en Lightning](19_3_Creando_un_Canal_en_Lightning.md) * [20.0: Usando Lightning](20_0_Usando_Lightning.md) diff --git a/pt/01_1_Introducing_Bitcoin.md b/pt/01_1_Introducing_Bitcoin.md index 94fc13625..5321b1c45 100644 --- a/pt/01_1_Introducing_Bitcoin.md +++ b/pt/01_1_Introducing_Bitcoin.md @@ -124,7 +124,7 @@ A Lightning é um protocolo de segunda camada que interage com o Bitcoin para pe A Lightning também é um dos focos deste tutorial. Embora o ponto principal seja sobre a interação direta com o Bitcoin (e o `bitcoind`), vamos falar um pouco sobre a Lightning e o porque é uma tecnologia que está prestes a se tornar uma alternativa popular ao Bitcoin, em um futuro próximo. Este livro tem a mesma abordagem para a Lightning e para o Bitcoin: Ele ensina como interagir diretamente com a Lightning de maneira confiável à partir da linha de comando. -Ao contrário do Bitcoin, existem várias variantes da Lightning. Este tutorial usa a implementação compatível do padrão [c-lightning](https://github.com/ElementsProject/lightning) como sendo seu servidor Lightning confiável. +Ao contrário do Bitcoin, existem várias variantes da Lightning. Este tutorial usa a implementação compatível do padrão [core lightning](https://github.com/ElementsProject/lightning) como sendo seu servidor Lightning confiável. **_O que é um protocolo de segunda camada?_** Um protocolo de segunda camada no Bitcoin funciona tendo como base o Bitcoin. Nesse caso, a Lightning trabalha em cima do Bitcoin, interagindo com ele por meio de contratos inteligentes. @@ -146,4 +146,4 @@ O Bitcoin é um sistema _peer-to-peer_ que permite a transferência de fundos po ## O Que Vem Depois? -Vamos avançar em "Se Prepararando para o Bitcoin" com o [Capítulo Dois: Configurando um Bitcoin-Core VPS](02_0_Setting_Up_a_Bitcoin-Core_VPS.md). \ No newline at end of file +Vamos avançar em "Se Prepararando para o Bitcoin" com o [Capítulo Dois: Configurando um Bitcoin-Core VPS](02_0_Setting_Up_a_Bitcoin-Core_VPS.md). diff --git a/pt/19_0_Understanding_Your_Lightning_Setup.md b/pt/19_0_Understanding_Your_Lightning_Setup.md index 4edcb98be..41fcb1ab2 100644 --- a/pt/19_0_Understanding_Your_Lightning_Setup.md +++ b/pt/19_0_Understanding_Your_Lightning_Setup.md @@ -2,13 +2,13 @@ > :information_source: **NOTA:** Este é um rascunho que está em andamento. Seu objetivo é que possa obter alguns comentários dos revisores iniciais. Ainda não está pronto para ser produzido. -O capítulo anterior concluiu nosso trabalho com o Bitcoin propriamente dito, por meio do CLI, scripts e linguagens de programação. No entanto, existem muitos outros utilitários dentro do ecossistema Bitcoin. Neste capítulo e no próximo, iremos cobrir o que pode ser o maior e mais importante deles, a Lightning Network. Aqui, começaremos a trabalhar com a interface de linha de comando `lightning-cli`, entendendo a configuração do c-lightning e dos seus recursos, incluindo alguns exemplos e configuração básica. +O capítulo anterior concluiu nosso trabalho com o Bitcoin propriamente dito, por meio do CLI, scripts e linguagens de programação. No entanto, existem muitos outros utilitários dentro do ecossistema Bitcoin. Neste capítulo e no próximo, iremos cobrir o que pode ser o maior e mais importante deles, a Lightning Network. Aqui, começaremos a trabalhar com a interface de linha de comando `lightning-cli`, entendendo a configuração do core lightning e dos seus recursos, incluindo alguns exemplos e configuração básica. ## Objetivos Deste Capítulo Depois de trabalhar neste capítulo, um desenvolvedor será capaz de: - * Avaliar se um node c-lightning está instalado e atualizado; + * Avaliar se um node core lightning está instalado e atualizado; * Executar comandos básicos de uma carteira Lightning; * Criar um canal na Lightning. @@ -20,7 +20,7 @@ Os objetivos secundários do capítulo incluem a capacidade de: ## Tabela de Conteúdo -* [Seção 1: Verificando Nossa Configuração da c-lightning](19_1_Verifying_Your_Lightning_Setup.md) -* [Seção 2: Conhecendo Nossa Configuração da c-lightning](19_2_Knowing_Your_lightning_Setup.md) +* [Seção 1: Verificando Nossa Configuração da core lightning](19_1_Verifying_Your_Lightning_Setup.md) +* [Seção 2: Conhecendo Nossa Configuração da core lightning](19_2_Knowing_Your_lightning_Setup.md) * [Adendo: Acessando um Segundo Node Lightning](19_2__Interlude_Accessing_a_Second_Lightning_Node.md) -* [Seção 3: Criando um Canal Lightning](19_3_Setting_Up_a_Channel.md) \ No newline at end of file +* [Seção 3: Criando um Canal Lightning](19_3_Setting_Up_a_Channel.md) diff --git a/pt/19_1_Verifying_Your_Lightning_Setup.md b/pt/19_1_Verifying_Your_Lightning_Setup.md index 1fb81ba32..38e27f95d 100644 --- a/pt/19_1_Verifying_Your_Lightning_Setup.md +++ b/pt/19_1_Verifying_Your_Lightning_Setup.md @@ -1,14 +1,14 @@ -# 19.1: Verificando Nossa Configuração da c-lightning +# 19.1: Verificando Nossa Configuração da core lightning >: information_source: **NOTA:** Esta seção foi adicionada recentemente ao curso e é um rascunho inicial que ainda pode estar aguardando revisão. -Nesta seção, instalaremos e verificaremos a c-lightning, nosso utilitário para acessar a Lightning Network. +Nesta seção, instalaremos e verificaremos a core lightning, nosso utilitário para acessar a Lightning Network. > :book: ***O que é a Lightning Network?*** A Rede Lightning é uma rede descentralizada que usa a funcionalidade de contrato inteligente da blockchain do Bitcoin para permitir pagamentos instantâneos em uma rede de participantes. A Lightning é construída como um protocolo de segunda camada que interage com o Bitcoin para permitir que os usuários troquem seus bitcoins "fora da blockchain" (ou o jargão em inglês, "off-chain"). > :book: ***O que é um protocolo de segunda camada?*** A segunda camada refere-se a um protocolo secundário criado em cima do sistema de blockchain do Bitcoin. O objetivo principal desses protocolos é resolver a velocidade de transação e as dificuldades de escala que estão presentes no Bitcoin. O Bitcoin não é capaz de processar milhares de transações por segundo (TPS), então protocolos de segunda camada foram criados para resolver o problema de escalabilidade da blockchain. Essas soluções também são conhecidas como soluções de dimensionamento "off-chain". -## Instalando a c-lightning +## Instalando a core lightning Se já usamos os [Bitcoin Standup Scripts](https://github.com/BlockchainCommons/Bitcoin-Standup-Scripts), talvez já o tenhamos instalado no início deste curso. Podemos testar isto verificando se o `lightningd` está em execução: ``` @@ -27,15 +27,15 @@ standup 32072 0.0 0.0 6208 888 pts/0 S+ 15:50 0:00 grep -i lightni ``` Caso contrário, precisaremos instalá-lo agora. Infelizmente, se estivermos usando o Debian, precisaremos instalá-lo manualmente, compilando o código-fonte, mas ainda assim deve ser muito simples se seguirmos estas instruções. Se acontecer de estarmos em um sistema Ubuntu padrão, podemos tentar [Instalar a partir do Ubuntu ppa](#variant-install-from-ubuntu-ppa), e sempre podemos tentar [Instalar os binários pré-compilados](#variant-install-pre-compiled-binaries). -> :book: ***O que é a c-lightning?*** Existem três implementações diferentes da Lightning no momento: C-lightning, LND e Eclair. Todos devem ser funcionalmente compatíveis, com base nas mesmas [RFCs do BOLT](https://github.com/lightningnetwork/lightning-rfc/blob/master/00-introduction.md), mas os detalhes de implementação podem ser diferentes. Escolhemos a c-lightning como base do curso porque ela também faz parte do [projeto Elements](https://github.com/ElementsProject), que contém a Libwally. +> :book: ***O que é a core lightning?*** Existem três implementações diferentes da Lightning no momento: core lightning, LND e Eclair. Todos devem ser funcionalmente compatíveis, com base nas mesmas [RFCs do BOLT](https://github.com/lightningnetwork/lightning-rfc/blob/master/00-introduction.md), mas os detalhes de implementação podem ser diferentes. Escolhemos a core lightning como base do curso porque ela também faz parte do [projeto Elements](https://github.com/ElementsProject), que contém a Libwally. -### Compilando o Código-Fonte da c-lightning +### Compilando o Código-Fonte da core lightning A instalação da Lightning a partir do código-fonte deve ser bem simples se seguirmos estas instruções. _Provavelmente_ desejaremos fazer isso em um node não prunado, pois trabalhar com nodes prunados na Lightning pode causar problemas de instalação e uso. Se, no início deste curso, configuramos nosso node para ser prunado, podemos querer substituí-lo por um full node agora. Se estivermos usando a testnet, provavelmente conseguiremos usar o mesmo tipo de máquina que usamos para o node prunado. -> :warning: **AVISO:** Realmente podemos executar a c-lightning em um node prunado. No entanto, conforme observamos no [repositório Lightning](https://github.com/ElementsProject/lightning#pruning), pode haver uma série de problemas. Para fazer isso funcionar, devemos garantir que o node da Lightning sempre tente atualizar informações sobre os blocos que o node do Bitcoin não excluiu. Para fazermos isso, devemos nos certificar de que (1) nosso node de Bitcoin está totalmente atualizado antes de iniciar nosso node da Lightning pela primeira vez e; (2) nosso node Lightning nunca fique defasado do node do Bitcoin (para um node prunado em 550 blocos padrão, ele nunca pode ser desligado por 4 dias ou mais). Portanto, podemos usar o node assim, mas apresenta algum perigo, o que não é uma boa ideia se estivermos executando um serviço em produção. +> :warning: **AVISO:** Realmente podemos executar a core lightning em um node prunado. No entanto, conforme observamos no [repositório Lightning](https://github.com/ElementsProject/lightning#pruning), pode haver uma série de problemas. Para fazer isso funcionar, devemos garantir que o node da Lightning sempre tente atualizar informações sobre os blocos que o node do Bitcoin não excluiu. Para fazermos isso, devemos nos certificar de que (1) nosso node de Bitcoin está totalmente atualizado antes de iniciar nosso node da Lightning pela primeira vez e; (2) nosso node Lightning nunca fique defasado do node do Bitcoin (para um node prunado em 550 blocos padrão, ele nunca pode ser desligado por 4 dias ou mais). Portanto, podemos usar o node assim, mas apresenta algum perigo, o que não é uma boa ideia se estivermos executando um serviço em produção. Dito isso, estamos prontos para instalar a Lightning: @@ -94,7 +94,7 @@ A bitcoin lightning daemon (default values shown for network: testnet). Começaremos a explorar a Lightning Network com o comando `lightning-cli`. No entanto, `lightningd` _deve_ estar rodando para podermos usar o `lightning-cli`, já que `lightning-cli` envia comandos JSON-RPC para o `lightningd` (tudo exatamente como o `bitcoin-cli` e o `bitcoind`). -Se instalamos a `c-lightning` manualmente, precisaremos iniciá-la: +Se instalamos a `core lightning` manualmente, precisaremos iniciá-la: ``` $ nohup lightningd --testnet & ``` @@ -227,12 +227,12 @@ bitcoin-cli -testnet getblock 0000000000000559febee77ab6e0be1b8d0bef0f971c7a4bee ## Criando Aliases -Sugerimos a criação de alguns aliases (apelidos de comandos) para facilitar o uso da c-lightning. +Sugerimos a criação de alguns aliases (apelidos de comandos) para facilitar o uso da core lightning. Podemos fazer isso colocando-os em nosso arquivo `.bash_profile`. ``` cat >> ~/.bash_profile < :information_source: **NOTA:** Esta seção foi adicionada recentemente ao curso e é um rascunho inicial que ainda pode estar aguardando revisão. Antes de começar a acessar a Lightning Network, devemos compreender melhor a nossa configuração. -## Conhecendo o Diretório da c-lightning +## Conhecendo o Diretório da core lightning -Ao usar a c-lightning, tudo será mantindo dentro do diretório `~/.lightning`. +Ao usar a core lightning, tudo será mantindo dentro do diretório `~/.lightning`. O diretório principal contém apenas os diretórios para as redes configuradas, neste caso da Testnet: ``` @@ -329,7 +329,7 @@ c$ lightning-cli --testnet listconfigs } ``` -## Resumo: Conhecendo Nossa Configuração da c-lightning +## Resumo: Conhecendo Nossa Configuração da core lightning O diretório `~/.lightning` contém todos os arquivos, enquanto o comando `lightning-cli help` mostra uma variedade de informações dos comandos que podem ser usados para obter mais informações sobre a configuração e o funcionamento da Lightning Network. @@ -337,4 +337,4 @@ O diretório `~/.lightning` contém todos os arquivos, enquanto o comando `light Precisaremos de um segundo node para testar o pagamento dos invoices. Se precisarmos de suporte para configurar um, podemos ler o [Prefácio: Acessando um Segundo Node Lightning](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). -Caso contrário, vamos continuar "Compreendendo a Configuração da Lightning" na seção [§19.3: Criando um Canal na Lightning](19_3_Setting_Up_a_Channel.md). \ No newline at end of file +Caso contrário, vamos continuar "Compreendendo a Configuração da Lightning" na seção [§19.3: Criando um Canal na Lightning](19_3_Setting_Up_a_Channel.md). diff --git a/pt/19_2__Interlude_Accessing_a_Second_Lightning_Node.md b/pt/19_2__Interlude_Accessing_a_Second_Lightning_Node.md index a0c9af22b..f138c3468 100644 --- a/pt/19_2__Interlude_Accessing_a_Second_Lightning_Node.md +++ b/pt/19_2__Interlude_Accessing_a_Second_Lightning_Node.md @@ -10,7 +10,7 @@ Existem quatro maneiras de fazermos isso (das quais as três primeiras são poss Se outra pessoa já tiver um node da Lightning Network na rede que escolhemos, podemos pedir o ID dele. -Se estiverem executando a c-lightning, eles só precisam usar o comando `getinfo`: +Se estiverem executando a core lightning, eles só precisam usar o comando `getinfo`: ``` $ lightning-cli getinfo lightning-cli: WARNING: default network changing in 2020: please set network=testnet in config! @@ -50,9 +50,9 @@ lightning-cli: WARNING: default network changing in 2020: please set network=tes ``` Eles poderão então nos dizer o `ID` deles (`03240a4878a9a64aea6c3921a434e573845267b86e89ab19003b0c910a86d17687`). Eles também precisarão informar o endereço IP (`74.207.240.32`) e porta (`9735`). -## Criando um Novo Node c-lightning +## Criando um Novo Node core lightning -No entanto, para fins de teste, provavelmente iremos desejar ter um segundo node sob nosso próprio controle. A maneira mais fácil de fazer isso é criar um segundo node c-lightning em uma nova máquina, usando Bitcoin Standup, de acordo com a seção [§2.1](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md) ou compilando-o manualmente, de acordo com a seção [§19.1](19_1_Verifying_Your_Lightning_Setup.md). +No entanto, para fins de teste, provavelmente iremos desejar ter um segundo node sob nosso próprio controle. A maneira mais fácil de fazer isso é criar um segundo node core lightning em uma nova máquina, usando Bitcoin Standup, de acordo com a seção [§2.1](02_1_Setting_Up_a_Bitcoin-Core_VPS_with_StackScript.md) ou compilando-o manualmente, de acordo com a seção [§19.1](19_1_Verifying_Your_Lightning_Setup.md). Depois de ter nosso node em execução, podemos executar o `getinfo` para recuperar nossas informações, como mostrado acima. @@ -109,7 +109,7 @@ $ sudo cp $GOPATH/bin/lnd $GOPATH/bin/lncli /usr/bin ### Criando um Arquivo de Configuração do LND -Ao contrário da c-lightning, precisaremos criar um arquivo de configuração padrão para o LND. +Ao contrário da core lightning, precisaremos criar um arquivo de configuração padrão para o LND. No entanto, primeiro, iremos precisar habilitar o ZMQ em nosso Bitcoind, se ainda não o fizemos na seção [§16.3](16_3_Receiving_Bitcoind_Notifications_with_C.md). @@ -213,7 +213,7 @@ $ sudo systemctl start lnd ### Habilitando Conexões Remotas -Assim como na c-lightning, precisaremos tornar o LND acessível a outros nodes. Veja como fazer isso se usarmos o `ufw`, de acordo com as configurações do Bitcoin Standup: +Assim como na core lightning, precisaremos tornar o LND acessível a outros nodes. Veja como fazer isso se usarmos o `ufw`, de acordo com as configurações do Bitcoin Standup: ``` $ sudo ufw allow 9735 ``` @@ -317,10 +317,10 @@ No entanto, este definitivamente não será o caso na nossa primeira interação ## Resumo: Prefácio: Acessando um Segundo Node Lightning -Sempre precisaremos de dois nodes Lightning para formar um canal. Se não tivermos outra pessoa que está testando as coisas conosco, precisaremos criar um segundo node, usanda c-lightning ou (como faremos em nossos exemplos) usando a LND. +Sempre precisaremos de dois nodes Lightning para formar um canal. Se não tivermos outra pessoa que está testando as coisas conosco, precisaremos criar um segundo node, usanda core lightning ou (como faremos em nossos exemplos) usando a LND. ## O Que Vem Depois? -Embora possivelmente tenhamos criado um LND, a c-lightning permanecerá no centro dos nossos exemplos até que precisemos começar a usar os dois, no [Capítulo 20](20_0_Using_Lightning.md). +Embora possivelmente tenhamos criado um LND, a core lightning permanecerá no centro dos nossos exemplos até que precisemos começar a usar os dois, no [Capítulo 20](20_0_Using_Lightning.md). Vamos continuar "Compreendendo Nossa Configuração da Lightning" na seção [§19.3: Criando um Canal Lightning](19_3_Setting_Up_a_Channel.md). diff --git a/pt/19_3_Setting_Up_a_Channel.md b/pt/19_3_Setting_Up_a_Channel.md index 3acb9312f..eb25f7c7b 100644 --- a/pt/19_3_Setting_Up_a_Channel.md +++ b/pt/19_3_Setting_Up_a_Channel.md @@ -2,29 +2,29 @@ > :information_source: **NOTA:** Esta seção foi adicionada recentemente ao curso e é um rascunho inicial que ainda pode estar aguardando revisão. -Agora que entendemos o básico da configuração da Lightning e, com sorte, já criamos ou recebemos informações sobre um segundo node Lightning, estamos prontos para criar nosso primeiro canal na Lightning Network. Claro, precisaremos entender o que ele é e como é criado usando a c-lightning. +Agora que entendemos o básico da configuração da Lightning e, com sorte, já criamos ou recebemos informações sobre um segundo node Lightning, estamos prontos para criar nosso primeiro canal na Lightning Network. Claro, precisaremos entender o que ele é e como é criado usando a core lightning. > :book: ***O que é um canal Lightning?*** De maneira simples, um canal Lightning é um tubo de dinheiro que permite transferências rápidas, baratas e privadas sem enviar transações para a blockchain. Mais tecnicamente, um canal é uma transação multisig 2-de-2 no Bitcoin que estabelece um relacionamento financeiro sem confiança entre duas pessoas ou dois agentes. Uma certa quantia de dinheiro é depositada no canal, quando então se mantém um banco de dados local com saldo em bitcoins para ambas as partes, mantendo o registro de qual é o saldo de cada parte. Os dois usuários podem então trocar bitcoins por meio do canal Lightning sem nunca escrever na blockchain do Bitcoin. Somente quando desejam fechar o canal é que eles dividem os bitcoins na blockchain, com base na divisão final das moedas para cada um. > :book: ***Como os canais Lightning criam uma rede Lightning?*** Embora um canal Lightning só permita o pagamento entre dois usuários, os canais podem ser conectados para formar uma rede que permite pagamentos entre membros que não têm um canal direto entre eles. Isso cria uma rede entre várias pessoas, construída a partir de conexões em pares. -Nesta seção, continuaremos usando nossa configuraçãa c-lightning como nosso node principal. +Nesta seção, continuaremos usando nossa configuraçãa core lightning como nosso node principal. ## Criando um Canal A criação de um canal Lightning requer as seguintes etapas: -* Financiar nossa carteira c-lightning com alguns satoshis; +* Financiar nossa carteira core lightning com alguns satoshis; * Conectar-se a um node remoto como um par; * Abrir um canal. -### Financiando Nossa Carteira c-lightning +### Financiando Nossa Carteira core lightning -Para mover fundos para um canal Lightning, primeiro é necessário financiar nossa carteira c-lightning. +Para mover fundos para um canal Lightning, primeiro é necessário financiar nossa carteira core lightning. -> :book: ***O que é uma carteira c-lightning?*** A implementação padrão da c-lightning vem com uma carteira Bitcoin integrada que permite enviar e receber transações de bitcoin na blockchain. Esta carteira será usada para criar novos canais. +> :book: ***O que é uma carteira core lightning?*** A implementação padrão da core lightning vem com uma carteira Bitcoin integrada que permite enviar e receber transações de bitcoin na blockchain. Esta carteira será usada para criar novos canais. -A primeira coisa que precisamos fazer é enviar alguns satoshis para nossa carteira c-lightning. Podemos criar um novo endereço usando o comando `lightning-cli newaddr`. Isto gera um novo endereço que pode ser subsequentemente usado para financiar canais gerenciados pelo node c-lightning. Podemos especificar o tipo de endereço desejado; se não for especificado, o endereço gerado será um bech32. +A primeira coisa que precisamos fazer é enviar alguns satoshis para nossa carteira core lightning. Podemos criar um novo endereço usando o comando `lightning-cli newaddr`. Isto gera um novo endereço que pode ser subsequentemente usado para financiar canais gerenciados pelo node core lightning. Podemos especificar o tipo de endereço desejado; se não for especificado, o endereço gerado será um bech32. ``` $ lightning-cli --testnet newaddr @@ -74,15 +74,15 @@ Observe que o valor está listado em satoshis ou microsatoshis, não em Bitcoin! > :book: ***O que são satoshis e msats?*** Já conhecemos os satoshis na seção [§3.4](03_4_Receiving_a_Transaction.md). Um satoshi é o centésimo milionésimo de um bitcoin, então 300.000 satoshis equivalem a 0,003 BTC. Um satoshi é a menor unidade monetária na rede Bitcoin. Mas, a rede Lightning pode ser menor, então 1.000 msat, ou milisatoshis, equivalem a um satoshi. Isso significa que 1 msat é o centésimo bilionésimo de um bitcoin e 300.000.000 msat equivalem a 0,003 BTC. -Agora que financiamos nossa carteira c-lightning, precisaremos de informações sobre um node remoto para começar a criar o processo do canal. +Agora que financiamos nossa carteira core lightning, precisaremos de informações sobre um node remoto para começar a criar o processo do canal. ### Conectando a um Node Remoto A próxima coisa que precisaremos fazer é conectar nosso node a um par. Isso é feito com o comando `lightning-cli connect`. Lembre-se que se quisermos mais informações sobre este comando, devemos digitar `lightning-cli help connect`. -Para conectar nosso node a um par remoto, precisaremos do nosso id, que representa a chave pública do node de destino. Por conveniência, o `ID` pode ter a forma `id@host` ou `id@host:port`. Podemos já ter pego esta informação com o `lightning-cli getinfo` (na c-lightning) ou `lncli --network=testnet getinfo` (no LND) conforme discutido no [adendo anterior](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). +Para conectar nosso node a um par remoto, precisaremos do nosso id, que representa a chave pública do node de destino. Por conveniência, o `ID` pode ter a forma `id@host` ou `id@host:port`. Podemos já ter pego esta informação com o `lightning-cli getinfo` (na core lightning) ou `lncli --network=testnet getinfo` (no LND) conforme discutido no [adendo anterior](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). -Selecionamos o node LND, `032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543`, que está localizado no endereço IP `45.33.35.151`, ao qual vamos nos conectar a partir de nosso node c-lightning: +Selecionamos o node LND, `032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543`, que está localizado no endereço IP `45.33.35.151`, ao qual vamos nos conectar a partir de nosso node core lightning: ``` $ lightning-cli --network=testnet connect 032a7572dc013b6382cde391d79f292ced27305aa4162ec3906279fc4334602543@45.33.35.151 @@ -182,4 +182,4 @@ Precisaremos criar um canal com um node remoto para poder receber e enviar dinhe ## O Que Vem Depois? -Você está pronto para passar para o [Capítulo 20: Usando a Lightning](20_0_Using_Lightning.md). \ No newline at end of file +Você está pronto para passar para o [Capítulo 20: Usando a Lightning](20_0_Using_Lightning.md). diff --git a/pt/20_1_Generate_a_Payment_Request.md b/pt/20_1_Generate_a_Payment_Request.md index 312e00863..f1a58faec 100644 --- a/pt/20_1_Generate_a_Payment_Request.md +++ b/pt/20_1_Generate_a_Payment_Request.md @@ -2,15 +2,15 @@ > :information_source: **NOTA:** Esta seção foi adicionada recentemente ao curso e é um rascunho inicial que ainda pode estar aguardando revisão. -Esta seção descreve como os pagamentos funcionam na Lightning Network, como criar uma solicitação de pagamento (ou _invoice_) e, finalmente, como entendê-la. A emissão de invoices depende de termos um segundo node Lightning, conforme descrito na seção [Acessando um Segundo Node Lightning](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). Esses exemplos usarão um node LND como nosso node secundário, para demonstrar ainda mais as possibilidades da Lightning Network. Para diferenciar entre os nodes nestes exemplos, os prompts serão mostrados como `c $` para o node c-lightning e `lnd $` para o node LND. Se quisermos reproduzir essas etapas, devemos [instalar nosso próprio node LND secundário](19_2__Interlude_Accessing_a_Second_Lightning_Node.md#Creating-a-new-lnd-node). +Esta seção descreve como os pagamentos funcionam na Lightning Network, como criar uma solicitação de pagamento (ou _invoice_) e, finalmente, como entendê-la. A emissão de invoices depende de termos um segundo node Lightning, conforme descrito na seção [Acessando um Segundo Node Lightning](19_2__Interlude_Accessing_a_Second_Lightning_Node.md). Esses exemplos usarão um node LND como nosso node secundário, para demonstrar ainda mais as possibilidades da Lightning Network. Para diferenciar entre os nodes nestes exemplos, os prompts serão mostrados como `c $` para o node core lightning e `lnd $` para o node LND. Se quisermos reproduzir essas etapas, devemos [instalar nosso próprio node LND secundário](19_2__Interlude_Accessing_a_Second_Lightning_Node.md#Creating-a-new-lnd-node). > :book: ***O que é um invoice?*** Quase todos os pagamentos feitos na Lightning Network exigem um invoice, que nada mais é do que um **pedido de pagamento** feito pelo destinatário do dinheiro e enviado por qualquer meio para o usuário que irá pagar. Todos os invoices são de uso único. Os invoices da Lightning usam a codificação bech32, que já é usada pela Segregated Witness para Bitcoin. ## Criando um Invoice -Para criar um novo invoice na c-lightning, usaríamos o comando `lightning-cli --testnet invoice`. +Para criar um novo invoice na core lightning, usaríamos o comando `lightning-cli --testnet invoice`. -Vamos ver como funcionaria com o c-lightning, usando argumentos de um valor (em milisats), um rótulo e uma descrição. +Vamos ver como funcionaria com o core lightning, usando argumentos de um valor (em milisats), um rótulo e uma descrição. ``` c$ lightning-cli --testnet invoice 100000 joe-payment "The money you owe me for dinner" { @@ -21,7 +21,7 @@ c$ lightning-cli --testnet invoice 100000 joe-payment "The money you owe me for "warning_mpp_capacity": "The total incoming capacity is still insufficient even if the payer had MPP capability." } ``` -No entanto, para este exemplo, vamos gerar um invoice em um node LND e, em seguida, pagá-lo no node c-lightning. Isso requer o comando `addinvoice` ligeiramente diferente na LND. Podemos usar o argumento `--amt` para indicar a quantia a ser paga (em milisats) e adicionar uma descrição usando o argumento `--memo`. +No entanto, para este exemplo, vamos gerar um invoice em um node LND e, em seguida, pagá-lo no node core lightning. Isso requer o comando `addinvoice` ligeiramente diferente na LND. Podemos usar o argumento `--amt` para indicar a quantia a ser paga (em milisats) e adicionar uma descrição usando o argumento `--memo`. ``` lnd$ lncli -n testnet addinvoice --amt 10000 --memo "First LN Payment - Learning Bitcoin and Lightning from the Command line." @@ -181,4 +181,4 @@ Na maioria dos casos, precisamos receber um invoice para usar os pagamentos da L ## O Que Vem Depois? -Vamos continuar "Usando a Lightning" na seção [§20.2: Pagando um Invoice](20_2_Paying_a_Invoice.md). \ No newline at end of file +Vamos continuar "Usando a Lightning" na seção [§20.2: Pagando um Invoice](20_2_Paying_a_Invoice.md). diff --git a/pt/20_3_Closing_a_Channel.md b/pt/20_3_Closing_a_Channel.md index 5f66157b0..50e417b4a 100644 --- a/pt/20_3_Closing_a_Channel.md +++ b/pt/20_3_Closing_a_Channel.md @@ -177,7 +177,7 @@ $ bitcoin-cli --named getrawtransaction txid=f68de52d80a1076e36c677ef640539c50e3 "blocktime": 1602713519 } ``` -A entrada da transação é `66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d`, que foi a transação de financiamento feita na seção [§19.3](19_3_Setting_Up_a_Channel.md). A transação tem duas saídas, uma para o node remoto e outra para a carteira local da c-lightning. A saída no índice 0 corresponde ao node remoto com um valor de 0,00010012 BTC e, a saída no índice 1 corresponde ao node local com um valor de 0,00089804 BTC. +A entrada da transação é `66694d23ca15efe379e5f4a71d9be1a2d65e383b89ee3abe126ee36a12f23c1d`, que foi a transação de financiamento feita na seção [§19.3](19_3_Setting_Up_a_Channel.md). A transação tem duas saídas, uma para o node remoto e outra para a carteira local da core lightning. A saída no índice 0 corresponde ao node remoto com um valor de 0,00010012 BTC e, a saída no índice 1 corresponde ao node local com um valor de 0,00089804 BTC. A Lightning mostrará da mesma forma 89.804 satoshis retornados como um novo UTXO em nossa carteira: @@ -256,4 +256,4 @@ Ao fechar um canal, realizamos uma transação na blockchain encerrando nosso re ## O Que Vem Depois? -Vamos continuar "Usando a Lightning" na seção [§20.4: Expandindo a Lightning Network](20_4_Lightning_Network_Review.md). \ No newline at end of file +Vamos continuar "Usando a Lightning" na seção [§20.4: Expandindo a Lightning Network](20_4_Lightning_Network_Review.md). diff --git a/pt/20_4_Lightning_Network_Review.md b/pt/20_4_Lightning_Network_Review.md index bed52ba1d..4724b7ed9 100644 --- a/pt/20_4_Lightning_Network_Review.md +++ b/pt/20_4_Lightning_Network_Review.md @@ -4,9 +4,9 @@ Esses dois capítulos cobriram apenas algumas das atividades mais importantes da Lightning. Há muito mais que pode ser feito e muitas variedades possíveis. A seguir, daremos algumas dicas importantes. -## Usando Plugins c-lightning +## Usando Plugins core lightning -O c-lightning é uma implementação leve, altamente personalizável e compatível com o padrão do protocolo Lightning Network. Ele estende a funcionalidade usando plugins. Principalmente, esses são subprocessos que são iniciados pelo daemon `lightningd` e podem interagir com o `lightningd` de várias maneiras: +O core lightning é uma implementação leve, altamente personalizável e compatível com o padrão do protocolo Lightning Network. Ele estende a funcionalidade usando plugins. Principalmente, esses são subprocessos que são iniciados pelo daemon `lightningd` e podem interagir com o `lightningd` de várias maneiras: * As opções de linha de comando permitem que os plugins registrem os próprios argumentos usando a linha de comando, que são então expostos por meio do `lightningd`; * A passagem de comando JSON-RPC permite que os plugins adicionem os próprios comandos à interface JSON-RPC; @@ -19,19 +19,19 @@ O repositório `lightningd` GitHub mantém uma lista atualizada de [plugins](htt ## Usando Carteiras Mobile -Atualmente, sabemos de duas carteiras de dispositivos móveis da Lightning que suportam a implementação do c-lightning. +Atualmente, sabemos de duas carteiras de dispositivos móveis da Lightning que suportam a implementação do core lightning. Para dispositivos iOS, o FullyNoded é uma carteira de Bitcoin iOS open source que se conecta através do serviço autenticado Tor V3 ao nosso próprio full node. A funcionalidade FullyNoded está atualmente em desenvolvimento ativo e na fase beta inicial de testes. * [FullyNoded](https://github.com/Fonta1n3/FullyNoded/blob/master/Docs/Lightning.md) -O SparkWallet é uma carteira GUI minimalista para a c-lightning, acessível pela web ou por meio de aplicativos móveis e de desktop para Android. +O SparkWallet é uma carteira GUI minimalista para a core lightning, acessível pela web ou por meio de aplicativos móveis e de desktop para Android. * [SparkWallet](https://github.com/shesek/spark-wallet) ## Usando Diferentes Implementações da Lightning -O c-lightning não é a nossa única opção. Hoje, existem três implementações amplamente utilizadas para a Lightning Network. Todos seguem as [Documentações Base para a Tecnologia Lightning (BOLT)](https://github.com/lightningnetwork/lightning-rfc), que descrevem um protocolo de segunda camada para transferências de bitcoins off-chain. As especificações são atualmente um trabalho em andamento que ainda está sendo elaborado. +O core lightning não é a nossa única opção. Hoje, existem três implementações amplamente utilizadas para a Lightning Network. Todos seguem as [Documentações Base para a Tecnologia Lightning (BOLT)](https://github.com/lightningnetwork/lightning-rfc), que descrevem um protocolo de segunda camada para transferências de bitcoins off-chain. As especificações são atualmente um trabalho em andamento que ainda está sendo elaborado. | Nome | Descrição | BitcoinStandup | Linguagem | Repositório | | ------------- | ------------- | :---: | ------------- | ------------- | @@ -57,4 +57,4 @@ Caso contrário, nós o encorajamos a ingressar nas comunidades de desenvolvedor Você também pode nos ajudar aqui na Blockchain Commons com issues ou PRs para Aprendendo Bitcoin ou para qualquer um de nossos outros repositórios, ou pode até mesmo se tornar um [patrocinador](https://github.com/sponsors/BlockchainCommons). Também pode ajudar divulgando o trabalho, contando às pessoas nas redes sociais sobre o curso e o que aprendeu com ele! -Agora vá lá e faça da comunidade do Bitcoin um lugar melhor! \ No newline at end of file +Agora vá lá e faça da comunidade do Bitcoin um lugar melhor! diff --git a/pt/README.md b/pt/README.md index 3e81ca03d..87393c11b 100644 --- a/pt/README.md +++ b/pt/README.md @@ -134,8 +134,8 @@ Se você gostaria de fazer a sua própria tradução, por favor veja [Contribuin **Estado:** Finalizado. * [19.0: Compreendendo Nossa Configuração da Lightning](19_0_Understanding_Your_Lightning_Setup.md) - * [19.1: Verificando Nossa Configuração da c-lightning](19_1_Verifying_Your_Lightning_Setup.md) - * [19.2: Conhecendo Nossa Configuração da c-lightning](19_2_Knowing_Your_lightning_Setup.md) + * [19.1: Verificando Nossa Configuração da core lightning](19_1_Verifying_Your_Lightning_Setup.md) + * [19.2: Conhecendo Nossa Configuração da core lightning](19_2_Knowing_Your_lightning_Setup.md) * [Prefácio: Acessando um Segundo Node Lightning](19_2__Interlude_Accessing_a_Second_Lightning_Node.md) * [19.3: Criando um Canal Lightning](19_3_Setting_Up_a_Channel.md) * [20.0: Usando a Lightning](20_0_Using_Lightning.md)