Este es un tutorial para instalar la implementación de Blockstream de la Lightning Network llamada inicialmente *c-lightning* y renombrada actualmente a *Core Lightning (CLN)*.
**Tabla de contenido**
[TOC]
## Autor
Twitter para correcciones, comentarios o sugerencias: [@bitao36](https://twitter.com/bitao36)
El presente tutorial fue elaborado para el [Seminario socrático de Mastering Lightning](https://libreriadesatoshi.com/) a través de [@libreriadesatoshi](https://twitter.com/libdesatoshi).
## Requerimentos :information_source:
:::info
* Tener instalada una distribución de Linux basada en Debian, preferiblemente Ubuntu.
* Tener instalado un nodo de Bitcoin Core
:::
Para poder ejecutar un nodo core lightning en testnet, debes tener instalado y corriendo Bitcoin Core.
## Instalar dependencias para poder compilar lightningd
```shell
sudo apt update
sudo apt upgrade
sudo apt install -y autoconf automake build-essential \
git libtool libsqlite3-dev python3 python3-mako python3-pip \
net-tools zlib1g-dev libsodium-dev gettext libgmp-dev
pip3 install --upgrade pip
```
Si se quiere usar el plugin cln-grpc o construir plugins con Rust debes instalar Rust con esta linea:
```shell
sudo apt-get install -y cargo rustfmt protobuf-compiler
```
Para que al momento de compilar los protobuffer no te generen un error debes chequear la siguiente guía para garantizar que tengas la última versión de [protoc](https://www.estebansuarez.com/como-instalar-la-ultima-version-de-protoc-en-ubuntu/).
En caso de que estés interesado en desarrollar, debes instalar estas dependencias adicionales:
```shell
sudo apt-get install -y valgrind libpq-dev shellcheck cppcheck \
libsecp256k1-dev jq
```
## Compilar e instalar lightningd
Clonamos el repositorio donde está el código fuente :
```shell
git clone https://github.com/ElementsProject/lightning.git
cd lightning
```
Buscamos la última versión estable:
```shell
git tag
```
En el momento de actualizar este tutorial es la v23.05 de modo que vamos a ese release:
```shell
git checkout v23.05
```
Ahora si compilamos y ejecutamos lightning:
```shell
pip3 install mako
./configure
make -j$(nproc)
sudo make install
```
Antes de ejecutar lightningd debemos crear el directorio `.lightning` y dentro de ese directorio vamos a crear el archivo `config`.
```shell
mkdir .lightning
cd .lightning
nano config
```
Y agregamos las siguientes líneas:
```=
network=testnet
log-level=debug
log-file=lightningd.log
addr=0.0.0.0:9735
```
Antes de lanzar lightningd ya debe estar corriendo bitcoind.
Ahora si lanzamos lightningd como demonio:
```shell
lightningd --daemon
```
Y obtenemos datos del nodo:
```shell
lightning-cli getinfo
```
Con este comando puedes detener lightningd
```shell
lightning-cli stop
```
Si has llegado hasta aquí muchas felicitaciones, tienes corriendo un nodo con Bitcoin Core y Core Lightning :-)
## :zap: Donaciones
:::success
Si te fue útil este material puedes agradecer a @bitao36, enviándole un aporte vía Lightning Address:
bitao36@getalby.com
:::