DumBitcoin

DumBitcoin– Blockchain Review

Blog

Como montar un nodo Lightning Network de Bitcoin.

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
Instalación de bitcoin core
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
Una vez instalado ejecutaremos el core de bitcoin lo cual creará los archivos y directorios que necesitaremos modificar. Para ello usaremos el comando:
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

En este ejemplo se usó la versión GO 1.10 , pero se recomienda que se utilice la última versión de GO

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”

 

En otra consola crearemos la cartera usando el comando:
Lncli create
Se 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): n
Y 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

Artículos relacionados

Nuevo Ledger Nano Limited Edition

Visitas: 1.663 (Actualizado 20/08/2019, Este modelo de dispositivo ya no esta disponible,podéis comprar el Ledger Nano X ) En estos días se cumplen 10 años de la publicación del Whitepaper de  Satoshi Nakamoto el cual llamo […]

Leer más

How to access to your LTO node from the outside with a reverse proxy

Visitas: 3.993 LTO Network nodes have a cool web interface where you can check info about your node, network and even sign and send transaccions. It also serves as a Rest Api with its own […]

Leer más

Cómo montar un nodo de LTO network y recibir recompensas

Visitas: 6.163 En este tutorial se explicarán los pasos a seguir para montar un nodo de LTO (Legal Things One) Network en un equipo Linux, en concreto para Ubuntu y derivados. Puesto que es un […]

Leer más

1 comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.