Cómo instalar un nodo Core Lightning desde cero con Linux Debian/Ubuntu y que use Tor
Para poder ejecutar un nodo Core Lightning , debes tener instalado y corriendo Bitcoin Core. En caso de que no lo tengas instalado te recomiendo que vayas primero al siguiente tutorial Como instalar un nodo de Bitcoin Core
Instalar dependencias para poder compilar lightningd
$sudo apt-get update
$sudo apt-get install -y \
autoconf automake build-essential git libtool libgmp-dev libsqlite3-dev \
python3 python3-mako python3-pip net-tools zlib1g-dev libsodium-dev gettext
$pip3 install --upgrade pip
Si se quiere usar el plugin cln-grpc o constuir plugins con Rust debes instalar Rust con esta linea:
$sudo apt-get install -y cargo rustfmt
En caso de que estés interesado en desarrollar, debes instalar estas dependencias adicionales:
$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 de c-lightning:
$git clone https://github.com/ElementsProject/lightning.git
$cd lightning
Buscamos la última versión estable:
$git tag
En el momento de actualizar este tutorial es la v23.05 de modo que vamos a ese release:
$git checkout v23.05
Ahora si compilamos y ejecutamos lightning:
$pip3 install --upgrade pip
$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
$sudo nano ~./lightning/config
Y agregamos las siguientes líneas:
network=bitcoin
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:
$lightningd --daemon
Y obtenemos datos del nodo:
$lightning-cli getinfo
Felicitaciones ahora tienes corriendo un nodo core lightning.
Con este comando puedes detener lightningd
$lightning-cli stop
Configurar lightningd para que use Tor y cargue al iniciar el sistema.
Abrimos el archivo de configuración de Tor:
$sudo nano /etc/tor/torrc
y añadimos las siguientes líneas:
HiddenServiceDir /var/lib/tor/lightningd-service_v3/
HiddenServiceVersion 3
HiddenServicePort 9735 127.0.0.1:9735
presiona Ctrl+x , luego presiona ‘s’ y enter para guardar los cambios.
Detenemos Tor:
$sudo systemctl stop tor
Volvemos a lanzar Tor:
$sudo systemctl start tor
Ahora ejecutamos el siguiente comando para obtener la dirección onion que nos asignó Tor.
$sudo cat /var/lib/tor/lightningd-service_v3/hostname
Esta dirección que nos acaba de arrojar es una dirección tor fija para nuestro nodo lightning
Añade esta dirección en el archivo de configuración de lightningd
$sudo nano ~./lightning/config
Copia las siguientes líneas en ese archivo reemplazando la que dice announce-addr por la que hayas obtenido.
announce-addr=huzhaegx5xoeqebmrjeiti6hu7qpg4pavr5lq4vaf52h4bq5rgx4oaid.onion
:9735
proxy=127.0.0.1:9050
always-use-proxy=true
presiona Ctrl+x , luego presiona ‘s’ y enter para guardar los cambios.
Ahora detenemos lightningd con el siguiente comando:
$lightning-cli stop
Ahora regarcamos Tor:
$sudo systemctl restart tor
E iniciamos de nuevo lightningd:
$lightningd –daemon
Para observar que esté funcionando, ejecutamos:
$lightning-cli getinfo
Si no hacemos nada más, cada vez que se reinicie el PC hay que ejecutar este comando para que bitcoind se ejecute. Por eso lo que debemos hacer es crear un servicio para que se ejecute automáticamente al iniciar el pc.
Antes de crear el servicio detengamos de nuevo lightningd para lanzarlo luego como servicio:
$lightning-cli stop
Ahora para crear el servicio vamos a la siguiente ruta:
$cd /etc/systemd/system
Y ejecutamos este comando para obtener el archivo de configuración directamente desde el repositorio de bitcoin
$sudo wget https://raw.githubusercontent.com/ElementsProject/lightning/master/contrib/init/lightningd.service
Ahora tenemos que modificar las rutas donde esta el parámetro ExecStart
$sudo nano lightningd.service
ExecStart=/usr/local/bin/lightningd --daemon /home/admon/.lightning/config --pid-file=/run/lightningd/lightningd.pid
presiona Ctrl+x , luego presiona ‘s’ y enter para guardar los cambios.
Ejecutamos este comando para que inicie el servicio cuando se reinicie el equipo:
$sudo systemctl enable lightningd.service
Y con este comando lo ejecutamos:
$sudo systemctl start lightningd.service
Para mirar el estado del servicio ejecutamos:
$sudo systemctl status lightningd.service
Si deseamos detenerlo usamos:
$sudo systemctl stop lightningd.service
Si has llegado hasta aquí muchas felicitaciones, tienes corriendo un nodo con Bitcoin Core y Core Lightning, ahora tienes tu propio banco y por primer vez en la historia podrás tener soberanía monetaria 🙂
Comentarios recientes