Cómo crear un nodo Lightning de Bitcoin en Linux

Uno de los mayores puntos débiles al usar Bitcoin son los largos tiempos de transacción. Esto puede ser frustrante para los nuevos usuarios que recién ingresan a esta moneda digital. Una de las formas más fáciles de mejorar esto es usar una capa de pago secundaria como Bitcoin Lightning.

Bitcoin Lightning es un sistema que utiliza transacciones personalizadas de Bitcoin para mover activos rápidamente fuera del proceso normal de la cadena de bloques. En este sentido, Lightning es similar a Tor Network, donde utiliza TCP/IP como columna vertebral cuando enruta conexiones anónimas.

Bitcoin le permite intercambiar dinero fácilmente a través de Internet sin una autoridad central. Cada transacción que realiza es directa al beneficiario y la distribuye en toda la red.

¿Por qué Bitcoin es lento?

Bitcoin Lightning Node 03 Visualización de bloques de Bitcoin

Como resultado, cualquier pago que realice dentro de Bitcoin lleva tiempo completarlo y confirmarlo. Por ejemplo, una transacción regular de Bitcoin normalmente tarda entre 10 y 30 minutos en completarse.

¿Cómo funciona la red Lightning?

En esencia, Lightning funciona mediante la creación de un pago «en cadena» que deposita una cantidad de Bitcoin en su nodo. Luego, Lightning usa su Bitcoin estacionado para crear un canal entre otros nodos Lightning.

Bitcoin Lightning Node 04 Gráfico de red Lightning

Esto le permite crear pagos adicionales «fuera de la cadena» a través de Lightning que no necesitan borrarse en la cadena de bloques, lo que reduce significativamente el tiempo de pago entre dos usuarios. Por ejemplo, una transacción Lightning normal solo tarda alrededor de un segundo en completarse.

Configuración de su propio nodo Lightning de Bitcoin

Para comenzar con Lightning, es bueno tener su propio nodo personal. Similar a la configuración de un nodo Bitcoin, un nodo Lightning le permite tener control total sobre sus transacciones en su red.

Para comenzar la instalación, debe tener una serie de recursos disponibles y listos:

  • Máquina con una cantidad decente de almacenamiento y memoria. En mi caso, estoy usando una vieja computadora de escritorio Dell Optiplex con 1 TB de almacenamiento y 2 GB de RAM.
  • Conexión constante a Internet, ya que un nodo Lightning necesita comunicarse regularmente con otros nodos para mantener su estado.
  • Pequeña cantidad de Bitcoin que puede usar para «financiar» su nodo Lightning.

Conociendo estos factores, este tutorial se enfoca en instalar c-relámpago a una máquina Ubuntu 22.04.1 LTS.

Obteniendo las Dependencias

El primer paso para instalar c-lightning es crear una nueva cuenta de usuario para asegurarse de que todos los archivos y configuraciones para su nodo se separen de su usuario principal:

sudo useradd -s /bin/bash -d /home/lightning -m -G sudo lightning
sudo passwd lightning
Bitcoin Lightning Node 05 Crear nuevo usuario

Cambie a este nuevo usuario ejecutando: su lightningluego agregue un repositorio de terceros que contendrá todos los programas para que c-lightning funcione:

sudo add-apt-repository -u ppa:lightningnetwork/ppa

Instale las dependencias del nodo:

sudo apt install software-properties-common lightningd snapd
Dependencias de instalación de Bitcoin Lightning Node 06

Configuración de un nodo Bitcoin simple

Desde aquí, debe instalar y configurar un nodo de Bitcoin simple. Como se discutió anteriormente, Lightning es una red superpuesta que funciona mediante el uso de transacciones de Bitcoin personalizadas para crear «canales de fondos».

Para crear estos canales, su nodo Lightning debe ejecutarse junto con un nodo Bitcoin simple que se puede instalar ejecutando el siguiente comando:

sudo snap install bitcoin-core
Bitcoin Lightning Node 07 Instalación rápida de Bitcoin

Cree un enlace simbólico entre su directorio raíz «snap» y la carpeta «bin»:

sudo ln -s /snap/bitcoin-core/current/bin/bitcoind,-cli /usr/local/bin/

Inicie la descarga del bloque inicial para su nodo de Bitcoin:

Este comando enviará el nodo al fondo para descargar y verificar toda la cadena de bloques de Bitcoin. Puede verificar su progreso ejecutando el siguiente comando:

tail -f /home/$USER/.bitcoin/debug.log
Registro de descarga de Bitcoin Lightning Node 08

Es importante tener en cuenta que este proceso puede tardar entre unas horas y unos días. Por ejemplo, mi computadora de escritorio Dell Optiplex tardó 5 días en sincronizarse completamente con la red Bitcoin.

Configuración de su nodo Bitcoin simple

Una vez que su nodo esté sincronizado con la red, asegúrese de que sea compatible con Lightning deteniendo primero el nodo de Bitcoin:

Edite su archivo de configuración en “/etc/bitcoin.conf”:

nano /home/$USER/.bitcoin/bitcoin.conf
Archivo de configuración de nodo Bitcoin Lightning Node 09

Deshabilitar dos opciones: walletbroadcast y prune. La primera opción le dice a su nodo de Bitcoin que solo use sus datos con Lightning, y la segunda opción le asegura que está guardando toda la cadena de bloques en su disco duro.

walletbroadcast=0
prune=0

Reinicie su nodo Bitcoin ejecutando el siguiente comando:

Puesta en marcha de su nodo Bitcoin Lightning

Inicie su nodo Lightning ejecutando el siguiente comando:

lightningd --network=bitcoin --log-level=debug --daemon
Bitcoin Lightning Node 11 Inicializar Lightning Node

Este comando enviará el nodo al fondo y creará sus archivos de configuración en «/home/$USER/.lightning». Pruebe si su nodo Lightning funciona correctamente con este comando:

lightning-cli --lightning-dir=$HOME/.lightning getinfo
Bitcoin Lightning Node 12 Verifique el nodo de información

Finalización de su nodo Lightning de Bitcoin

Con c-lightning en ejecución, puede finalizar su nodo creando los «canales de fondos» entre diferentes compañeros de Lightning. Como se discutió anteriormente, un «canal de fondos» es una transacción de Bitcoin personalizada que le permite mover su Bitcoin sin comprometerse con la cadena de bloques.

Para crear esto, primero «deposite» Bitcoin en su nodo Lightning generando una dirección de recepción para su nodo con el siguiente comando:

Bitcoin Lightning Node 13 Generar dirección de Bitcoin

Vaya a una billetera externa y envíe Bitcoin a esa dirección de recepción. En mi caso, enviaré 0.00050000 BTC usando mi billetera Bitcoin Core.

Bitcoin Lightning Node 14 Monedero externo Enviar fondos 1

Una vez que la transacción esté en la cadena de bloques, su nodo Lightning actualizará automáticamente su saldo de fondos. Vea esto ejecutando el siguiente comando:

Intercambio de tráfico con nodos Lightning remotos de Bitcoin

Comience a conectar su nodo a sus pares en la red para permitirle enviar y recibir Bitcoin a través de Lightning.

Para comenzar, encuentre tanto su clave pública como su dirección IP. Similar al uso de PGP Encryption, esto le permite conectarse y verificar la autenticidad de un nodo a través de la criptografía de clave pública.

Una de las herramientas más comunes para hacer esto es 1ML: un sitio web que enumera todos los nodos Lightning activos en la red.

Bitcoin Lightning Node 15 1ml Lista de nodos

Una vez que tenga un nodo activo, use el lightning-connect Comando para establecer una solicitud de pares. Por ejemplo, este comando emparejará mi nodo con ACINQ:

lightning-cli connect 1 03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f 3.33.236.230
  • El primer valor indica el número de ranura que desea asignar al compañero actual. Para este nodo, estoy usando la ranura 1.
  • El segundo valor es la clave pública del nodo remoto. En este caso, estoy usando la clave pública de ACINQ.
  • El tercer valor es la dirección IP pública del nodo remoto.

Para finalizar la solicitud, envíe parte del saldo de Bitcoin de su nodo al nodo remoto para crear un «canal de fondos» entre usted y un nodo de emparejamiento.

Por ejemplo, este comando creará un «canal de fondos» por 0.00030000 BTC para el primer par en mi lista:

lightning-cli fundchannel 1 30000
Canal de fondos Bitcoin Lightning Node 16

Envío y recepción de pagos relámpago

Con un «canal de fondos» activo en ejecución, use su nodo para enviar y recibir pagos. De manera predeterminada, Lightning usa el formato BOLT11 que comienza con «lnbc» para diferenciarlo de Bitcoin.

Para enviar Bitcoin a través de Lightning, debe conocer la dirección BOLT11 de su destinatario. Por ejemplo, el siguiente comando envía 0.00005000 BTC a una dirección remota:

lightning-cli pay lnbc20m1[...]qdhhwkj 50000
Bitcoin Lightning Nodo 18 Enviar Bitcoin Lightning

También puede recibir Bitcoin a través de Lightning usando el invoice comando y especifique la cantidad exacta de Bitcoin que desea recibir. Por ejemplo, este comando crea una factura por 0.00010000 BTC:

lightning-cli invoice 100000
Bitcoin Lightning Nodo 19 Obtener Bitcoin Lightning

Preguntas frecuentes

Estoy usando Dojo como mi nodo Bitcoin. ¿Es posible usarlo con c-lightning?

No. De forma predeterminada, Dojo es un programa que utiliza contenedores Docker para ejecutar una instancia de Bitcoin Core en un espacio aislado. Un nodo Dojo Bitcoin no podrá comunicarse con ningún programa fuera de su contenedor sandbox.

Mi billetera no admite una dirección «bc1». ¿Todavía es posible depositar en mi nodo Lightning?

¡Sí! Si bien c-lightning genera de forma nativa un formato de dirección «bc1», es posible transferir Bitcoin a un nodo Lightning utilizando el formato P2SH más antiguo. Para hacer esto, ejecute el siguiente comando: lightning-cli newaddr p2sh-segwit.

Mi pago Lightning falla ocasionalmente. ¿Mi nodo está roto?

¡No! Lo más probable es que este problema se deba a la falta de conexiones de nodo entre usted y el destinatario. La red Lightning, por diseño, depende de que cada nodo se comunique de manera constante y directa entre sí.

Una forma de solucionar este problema es aumentar la cantidad de pares y «canales de fondos» a los que se conecta su nodo local. Por ejemplo, tener al menos dos o tres pares activos le permitirá conectarse a casi cualquier usuario de Lightning.

Credito de imagen: Unsplash y Wikimedia Commons. Todas las alteraciones y capturas de pantalla por Ramces Red.

¿Es útil este artículo?

¡Suscríbete a nuestro boletín!

Nuestros últimos tutoriales enviados directamente a su bandeja de entrada

Compártelo con alguien que le pueda resultar de ayuda

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Ver más

  • Responsable: David Martínez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Banahosting que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.