Configurar un Watchtower y un Cliente en la red Lightning
Last updated
Was this helpful?
Last updated
Was this helpful?
Un watchtower monitorea la blockchain de bitcoin para detectar transacciones que intenten robarle cerrando un canal con un estado anterior inválido. Si se encuentra una infracción el watchtower transmite inmediatamente una transacción de castigo que mueve todos los fondos del canal a una billetera on-chain.
Si hay dos nodos bajo su control desde lnd v0.7.0, puede configurarlos para que se vigilen entre sÃ. Es mejor hacerlo con nodos en dos ubicaciones fÃsicas separadas para reducir el riesgo de pérdida de conexión.
Ver para obtener la última versión y sus notas correspondientes. Actualice o use un para actualizar lnd en un RaspiBlitz o un sistema compatible.
Ejecute los siguientes comandos en la terminal del nodo
#
significa $ sudo
Edite el lnd.conf:
# nano /mnt/hdd/lnd/lnd.conf
inserte las siguientes lÃneas al final del archivo:
de forma predeterminada el watchtower escucha en el puerto 9911 pero se puede configurar en cualquier otro utilizando watchtower.listen = 0.0.0.0: PORT
en el archivo de configuración.
La dirección IP 0.0.0.0
se usa para aceptar conexiones desde cualquier lugar (configuración predeterminada)
habilite el puerto a través del firewall: # ufw allow 9911 comment "watchtower"
# ufw enable
reinicie lnd # systemctl restart lnd
redireccione el puerto 9911 en el router
Verifique en el log si el servicio está funcionando:
# tail -n 10000 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log
Ejemplo del log:
Filtre los mensajes relevantes con (presione CTRL+C para salir):
# tail -f -n 10000 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log | grep WTWR
Consulte el pubkey
con:
$ lncli tower info
El pubkey del watchtower es distinto del pubkey del nodo lnd.
[LND v0.8.0+] Registre uno o mas watchtower(s):
Edite lnd.conf:
# nano /mnt/hdd/lnd/lnd.conf
inserte las siguientes lÃneas al final del archivo:
Agregue un watchtower desde la consola (puede agregar varios, uno por uno):
Use el watchtower-pubkey
anotado anteriormente con $ lncli tower info
.
Para un cliente clearnet, el host
debe ser la IP clearnet (o dynamicDNS) del watchtower, incluso si este se ejecuta a través de Tor.
Reinicie lnd # systemctl restart lnd
Verifique en el log si el servicio está funcionando:
# tail -n 100 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log
Ejemplo del log:
Filtre los mensajes relevantes con: (presione CTRL+C para salir):
# tail -f -n 10000 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log | grep WTCL
Para tener más información en el log, agregue la siguiente lÃnea al archivo lnd.conf:
o ejecute el siguiente comando:
lncli debuglevel --level=WTWR=debug,WTCL=debug
Ejemplo del log:
¡Siéntese y disfrute que ahora no hay forma de engañar a su nodo incluso cuando está desconectado!
Ambos nodos (el watchtower y el cliente lnd) deben usar Tor para poder comunicarse.
Edite lnd.conf:
# nano /mnt/hdd/lnd/lnd.conf
inserte las siguientes lÃneas al final del archivo:
Edite el archivo de configuración de Tor del watchtower:
# nano /etc/tor/torrc
agregue las siguientes lÃneas:
reinicie Tor y lnd con systemctl: # systemctl restart tor
y # systemctl restart lnd
Consulte la dirección onion del watchtower ejecutando: # cat /mnt/hdd/tor/lndWT9911/hostname
Consulte el pubkey del watchtower (watchtower-pubkey
) con $ lncli tower info
Filtre los mensajes relevantes con (CTRL+C para salir):
# tail -f -n 10000 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log | grep WTWR
Ejemplo del log del watchtower:
[LND v0.8.0+] Registre uno o mas watchtower(s):
Edite lnd.conf:
# nano /mnt/hdd/lnd/lnd.conf
inserte las siguientes lÃneas al final del archivo:
Agregue un watchtower desde la consola (puede agregar varios, uno por uno):
Los detalles de un nodo de prueba están precargados. Recibe conexiones pero no hay garantÃa de que este servicio permanezca conectado.
Utilice el watchtower-pubkey
que se indicó anteriormente de $ lncli tower info
.
El host es la dirección .onion del watchtower anotada anteriormente de: # cat /mnt/hdd/tor/lndWT9911/hostname
reinicie lnd con systemctl: # systemctl restart lnd
Verifique qué watchtowers están escuchando:
$ lncli wtclient towers
Ejemplo:
Filtre los mensajes relevantes con (CTRL+C para salir):
# tail -f -n 10000 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log | grep WTCL
Ejemplo del log del cliente:
Últimas notas del release de lnd:
Will O`Beirne muestra en este artÃculo (y el repositorio de GitHub) cómo demostrar una infracción y las acciones de un watchtower en una red simulada:
SLP83 Conner Fromknecht – Bitcoin Lightning Watchtowers in depth podcast: transcripción:
Busque algunos watchtowers altruistas y comparta los suyos: