Este artículo fue escrito por un invitado y entusiasta de Lightning, @notgrubles, y fue publicado originalmente en su blog.
Actualización: A partir de los comentarios que recibí de la comunidad y aprecié mucho, decidí resaltar en la publicación el siguiente mensaje, que es de gran importancia:
Antes de comenzar, tenga en cuenta que este software es experimental y que podría contener errores de programación que provoquen la pérdida de fondos. Utilice solamente pequeños montos de bitcoin que pueda permitirse perder.
Tutorial rápido en texto y video
Bitcoin es una red descentralizada de pagos entre pares (P2P) que se utiliza en todo el planeta para realizar transacciones que no dependen de la confianza. Al exigir a los mineros que incluyan las transacciones en bloques criptográficamente vinculados entre sí, el sistema hace posibles las transacciones independientes de la confianza. No obstante, eso implica que las confirmaciones de las transacciones llevan tiempo, y no todos pueden darse el lujo de esperar. La respuesta a este inconveniente son los canales de pago, que Satoshi Nakamoto describió como una manera de posibilitar “transacciones muy frecuentes” entre socios de un canal, en lugar de tener que esperar aproximadamente 10 minutos para obtener una confirmación. Lightning toma esa idea y la implementa a gran escala. En lugar de poder pagarle solamente a su socio del canal, puede pagarle instantáneamente a cualquiera que forme parte de Lightning Network, una red de canales de pago.
Hace poco, Blockstream lanzó una página de ventas por e-commerce llamada Tienda Blockstream, que emplea el nuevo complemento de e-commerce para WordPress de la empresa, construido mediante Lightning Charge. Lo más emocionante es que los artículos de la Tienda Blockstream solo se pueden comprar mediante un pago de Lightning Network en la red principal de Bitcoin. Este tutorial explica cómo armar su propio nodo de Lightning a fin de realizar compras o recibir pagos por Lightning mediante c-lightning, la implementación de Lightning de Blockstream.
Requisitos
● Linux (para esta guía se utilizó Ubuntu 17.10).
● Almacenamiento suficiente para la blockchain de Bitcoin
● Conocimientos básicos a intermedios de línea de comandos
● Un nodo de Bitcoin totalmente sincronizado y con SegWit
● Algunos bitcoins
Paso 0: Instalar los recursos de desarrollo y las dependencias
El primer paso consiste en instalar los recursos necesarios mediante APT:
sudo apt-get install -y autoconf automake build-essential git libtool libgmp-dev libsqlite3-dev python python3 net-tools tmux
Paso 1: Instalar bitcoind a partir del PPA de Bitcoin
Construya bitcoind desde la fuente, descárguelo y verifique el binario con bitcoin.org (método preferido), o bien instálelo del PPA de Bitcoin:
sudo apt-get install software-properties-common sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install -y bitcoind
Paso 2: Clonar el repositorio lightningd y desarrollar
Ahora, tome el código de c-lightning y desarróllelo:
mkdir builds && cd builds git clone https://github.com/ElementsProject/lightning.git cd lightning make
Use make -jn para acelerar la compilación. n es el número de hilos dedicados al desarrollo. Ejemplo: make -j10 para un procesador de 10 o más hilos (como el Xeon).
Paso 3: Ejecutar bitcoind, lightningd y lightning-cli para confirmar que la instalación se realizó correctamente
Inicie bitcoind, después lightningd y por último lightning-cli para corroborar que todo se haya instalado correctamente:
Para ordenar el proceso, puede utilizar tmux y así asegurarse de tener todo prolijo y ordenado en la misma terminal:
tmux
Inicie bitcoind y supervise su arranque desde el registro; después, póngalo a prueba con bitcoin-cli:
bitcoind tail -f ~/.bitcoin/debug.log bitcoin-cli getinfo
Del mismo modo, inicie lightningd y póngalo a prueba con lightning-cli:
./lightningd/lightningd --network bitcoin --log-level debug ./cli/lightning-cli help
Paso 4: Conectarse a un par de Lightning remoto
Después de haber desarrollado exitosamente lightningd y lightning-cli, conéctese con un par y sincronice el gráfico del canal. El par empleado es de Blockstream:
/cli/lightning-cli connect 02f6725f9c1c40333b67faea92fd211c183050f28df32cac3f9d69685fe9665432 104.198.32.198 9735
El gráfico se sincroniza automáticamente (output del registro de lightningd).
Paso 5: Crear una dirección y financiarla a fin de abrir un canal
Abrir un canal de pagos por Lightning requiere que existan fondos en el UTXO. Con lightning-cli, genere una dirección de Bitcoin adonde pueda enviar algunos bitcoins.
./cli/lightning-cli newaddr
Envíe algunos bitcoins a esa dirección, pero recuerde que este software es experimental.
Paso 6: Confirmar que recibimos los BTC
Utilice lightning-cli para corroborar que la dirección tenga los fondos:
./cli/lightning-cli listfunds
Paso 7: Abrir un canal con el par al que nos conectamos antes
A fin de abrir un canal de pago, encuentre la clave pública (pubkey) o el ID del nodo (los de Blockstream, en este caso) y a continuación, use lightning-cli para iniciar la apertura del canal:
Para imprimir el ID del nodo del par:
./cli/lightning-cli listpeers
Copie el ID y financie el canal con algunos satoshis:
./cli/lightning-cli fundchannel 02f6725f9c1c40333b67faea92fd211c183050f28df32cac3f9d69685fe9665432 amount_in_satoshis
Paso 8: Supervisar los registros de lightningd para detectar las confirmaciones de las transacciones de financiamiento
Como alternativa, vuelva a la ventana de lightningd con tmux y espere a que se confirme su transacción de financiamiento.
Paso 9: Confirmar la apertura del canal
Para abrir un canal se necesitan tres confirmaciones. Una vez que la transacción de financiamiento reciba tres confirmaciones, utilice lightning-cli para publicar su nuevo canal de pago.
./cli/lightning-cli listchannels | grep your_nodes_pubkey
¡Felicitaciones! ¡Abrió su primer canal de pago de Lightning Network!
¡Ahora puede enviar facturas a otros y recibir pagos instantáneos, o bien pagar una factura que le hayan enviado a usted!
./cli/lightning-cli invoice amount_in_millisatoshis label description
o
./cli/lightning-cli pay bolt11_string
La documentación de instalación de c-lightning se puede consultar aquí y aquí.
¡Gracias por su atención!
– grubles