Configurar un Watchtower y un Cliente en la red Lightning
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.
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:
[Watchtower]
watchtower.active=1
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:
2019-06-21 09:08:58.544 [INF] WTWR: Starting watchtower
2019-06-21 09:08:58.544 [INF] WTWR: Starting lookout
2019-06-21 09:08:58.544 [INF] WTWR: Starting lookout from chain tip
2019-06-21 09:08:58.544 [INF] WTWR: Lookout started successfully
2019-06-21 09:08:58.545 [INF] WTWR: Starting watchtower server
2019-06-21 09:08:58.544 [INF] DISC: Attempting to bootstrap with: Authenticated Channel Graph
2019-06-21 09:08:58.545 [INF] CMGR: Server listening on 127.0.0.1:9911
2019-06-21 09:08:58.545 [INF] NTFN: New block epoch subscription
2019-06-21 09:08:58.545 [INF] WTWR: Watchtower server started successfully
2019-06-21 09:08:58.546 [INF] WTWR: Watchtower started successfully
2019-06-21 09:08:58.547 [INF] CHBU: Swapping old multi backup file from /home/bitcoin/.lnd/data/chain/bitcoin/mainnet/temp-dont-use.backup to /home/bitcoin/.lnd/data/chain/bitcoin/mainnet/channel.backup
2019-06-21 09:08:58.575 [INF] DISC: Obtained 3 addrs to bootstrap network
2019-06-21 13:10:27.014 [INF] WTWR: Watchtower started successfully
2019-06-21 13:14:50.743 [INF] WTWR: Accepted incoming peer 02b5792e533ad17fc77db13093ad84ea304c5069018f97083e3a8c6a2eac95a63f@171.25.193.25:34413
2019-06-21 13:14:51.074 [INF] WTWR: Accepted session for 02b5792e533ad17fc77db13093ad84ea304c5069018f97083e3a8c6a2eac95a63f
2019-06-21 13:14:51.074 [INF] WTWR: Releasing incoming peer 02b5792e533ad17fc77db13093ad84ea304c5069018f97083e3a8c6a2eac95a63f@171.25.193.25:34413
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.
Configurar el nodo a monitorear (el cliente 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:
[Wtclient]
wtclient.active=1
Agregue un watchtower desde la consola (puede agregar varios, uno por uno):