En este articulo vamos a explicar los pasos para montar un nodo Lightning Network. Es importante saber que la red Lightning Network (LN) es experimental y su utilización puede conllevar la perdida de los fondos que depositemos en ella, por ello recomiendo su uso en la red test de Bitcoin.
Contratación de VPS
Lo primero que necesitamos para montar un nodo LN es una maquina sobre la que ejecutarlo. Si no disponemos de dicha maquina podemos contratar un VPS aquí:
El espacio necesario actualmente es de 250 GB para almacenar toda la blockchain de Bitcoin.
Una vez creada la maquina en Ubuntu 18.04 procedemos a ejecutar una serie de comandos para preparar el sistema operativo.
- Aumento de la memoria virtual:
fallocate -l 8G /swapfile chmod 600 /swapfile mkswap /swapfile swapon /swapfile cp /etc/fstab /etc/fstab.bak echo '/swapfile none swap sw 0 0' | tee -a /etc/fstab
- Actualización del Sistema operativo:
apt-get update apt-get upgrade reboot
- Creación de usuario
Crearemos un usuario llamado bitcoin bajo el cual ejecutaremos todos los procesos relacionados con LN.
Adduser bitcoin gpasswd -a bitcoin sudo
Nos situaremos en el home del usuario bitcoin y procederemos a instalar Bitcoin Core ejecutando el ejecutamos el comando:
sudo apt-add-repository ppa:bitcoin/bitcoin
sudo apt-get install bitcoind
bitcoind -daemon
En este ejemplo lo hemos arrancado con el comando bitcoind para ver su salida por pantalla, lo cual condiciona la ejecución del proceso al terminal, en cuanto se cierre el terminal se cerraría el proceso.
Tras unos minutos paramos el nodo con el comando bitcoin-cli stop o CTRL+C y modificaremos el archivo bitcoin.conf (este archivo lo crearemos/editaremos en el directorio “.bitcoin” que a su vez está en el home del usuario bitcoin)
Para crearlo/editarlo:
sudo nano .bitcoin.conf
y añadiremos las siguientes líneas:
server=1 daemon=1 zmqpubrawblock=tcp://127.0.0.1:28332 zmqpubrawtx=tcp://127.0.0.1:28333 rpcuser=UNACLAVECOMPLICADA rpcpassword= UNACLAVECOMPLICADA txindex=1 listen=1 externalip=NuestraIPExterna minrelaytxfee=0.00000000 incrementalrelayfee=0.00000010 disablewallet=1 # Optimizations for limited hardware dbcache=100 maxorphantx=10 maxmempool=50 maxconnections=40 maxuploadtarget=5000
Volvemos a arrancar el nodo y esperaremos hasta que se sincronice con el resto de la red. Este proceso puede tardar días.
Con el comando “bitcoin-cli –getinfo” podremos ver en qué momento se sincroniza el nodo.
Instalación de GO
LN funciona sobre GO, por ello es necesario instalarlo. En este punto podemos encontrarnos problemas con las diferentes versiones. Es importante instalar la última versión de GO.
También puede haber problemas con el PATH de GO, sobre todo cuando se instalan nuevas versiones. Resolver esto requiere un poco de conocimiento de cómo funcionan los enlaces simbólicos y los PATH en linux.
Para instalar GO ejecutaremos los siguientes comandos:
sudo add-apt-repository ppa:longsleep/golang-backports sudo apt-get update sudo apt-get install golang-go
Crearemos un enlace simbólico a la versión de GO que tenemos activa:
sudo ln -s /usr/lib/go-1.11/bin/go /usr/local/bin/go
Dependiendo de las nuevas versiones que aparezcan de GO, es posible que se instale una versión más moderna en cuyo caso deberíamos revisar el directorio /usr/lib/go* para ver que versión es y ejecutar el comando anterior sobre esa versión.
Procedemos a incluir GO en las variables de entorno del perfil del usuario.
echo 'export GOPATH=~/gocode' >> ~/.bashrc echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.bashrc source ~/.bashrc
Comprobaremos que GO está instalado correctamente usando el comando: “go versión”
El cual devolverá algo parecido a: “go version go1.11.5 linux/amd64”.
Por ultimo en este paso, instalaremos dep usando el comando:
go get -u github.com/golang/dep/cmd/dep
Comprobaremos la versión de dep con el comando “dep versión”
Instalación de LightningNetwork Daemon (LND)
Para la instalación de LND ejecutaremos los siguientes comandos:
go get -d github.com/lightningnetwork/lnd cd $GOPATH/src/github.com/lightningnetwork/lnd make
Ejecutaremos el comando:
make install
Este proceso puede llevar 5-10 minutos dependiendo de la potencia de la máquina en la que estamos ejecutando.Una vez finalizado podemos ejecutar el comando lnd –version y nos devolverá algo como:
lnd version 0.5.1-beta commit=v0.5.1-beta-616-gbcc9e303968552d5638feb005c2d6d35bb996a64
Configuración de Lightning Network
Antes de arrancar LND debemos realizar una serie de tareas de configuración. Editaremos/crearemos el fichero que se encuentra en .lnd/lnd.conf
Usando el comando:
nano lnd.conf
Y añadiremos las siguientes líneas:
bitcoin.active=1 bitcoin.mainnet=1 bitcoin.node=bitcoind bitcoind.rpcuser=MISMOQUEPUSIMOSENLACONFDEBITCOID bitcoind.rpcpass= MISMOQUEPUSIMOSENLACONFDEBITCOID bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 externalip=IPEXTERIOR debuglevel=info alias=BTCpiramidal color=#000000 autopilot.active=1
Una vez hecho esto nos queda abrir los puertos en nuestro router/red de proveedor para que las comunicaciones con el resto de nodos de la red tengan éxito.
Estos puertos son : 8333 para bitcoind y 9735 para LND.
Tras estas operaciones todo esta preparado para que podamos arrancar nuestro nodo LN.
Desde una consola ejecutaremos “lnd”
Lncli createSe nos pedirá una password para la wallet:
Input wallet password: Confirm wallet password:Cuando nos pregunte si queremos usar un codigo Mnemónico responderemos que no.
Do you have an existing cipher seed mnemonic you want to use? (Enter y/n): nY cifraremos de Nuevo el wallet.
Your cipher seed can optionally be encrypted. Input your passphrase if you wish to encrypt it (or press enter to proceed without a cipher seed passphrase): Confirm cipher seed passphrase:
Anotaremos en papel las 24 palabras que nos permitirán recuperar la cartera en caso de que se corrompa o se pierda.
Una vez hecho esto generáramos una dirección de BTC con el comando:
lncli newaddress p2wkh
Este comando genera una dirección en la cual podremos depositar fondos de BTC. No es posible hoy en día obtener la clave privada de dicha dirección, por lo que la única manera de recuperar esos fondos es desde la interfaz “lncli”.
Tras estos pasos nuestro nodo se sincronizara con la red, y comenzara (pasado un tiempo) a abrir canales con otros nodos, lo cual podemos comprobar con el comando:
lncli listchannels
Podemos ver las tasas que hemos cobrado en nuestro nodo con el comando:
lncli feereport
Para comprobar el balance de nuestro nodo podemos usar los comandos:
lncli walletbalance lncli channelbalance
El primero comprueba el balance onchain de nuestro nodo, y el segundo comprueba el balance bloqueado en los canales abiertos por nuestro nodo.
Existe una web en la que podemos ver todos los nodos LN y pasado un tiempo podremos encontrar nuestro nodo, bien buscando por alias o por zona geográfica.
Como advertencia final, el cierre del nodo LN deberá hacerse cerrando cada uno de los canales ya que una desconexión forzada puede traer consigo la perdida temporal o definitivamente de los fondos depositados en el nodo.
Si tienes dudas, puedes contactar conmigo para un asesoramiento personalizado en telegram, búscame @PacoBits
1 comentario