Backup

En este post vamos a tratar el backup de ambos clientes, siempre enfocado a recuperar los fondos en caso de cualquier fallo, lo ideal es copiar los ficheros en un dispositivo externo y encriptar la copia.

Bitcoin Core

El caso de Bitcoin Core es muy sencillo, basta con copiar el fichero wallet.dat que se encuentra en el directorio ~/.bitcoin y con que lo hagamos una sola vez es suficiente. Si hemos cifrado el fichero también necesitaremos la clave de cifrado.

En caso de perdida del nodo podremos recuperar los fondos utilizando este wallet.dat en un nuevo nodo.

Lightning Network Daemon

AVISO: EN CASO DE CORRUPCIÓN EN EL CLIENTE HASTA QUE SE IMPLEMENTE UN SISTEMA DE BACKUPS NATIVO NO INTENTAR LA RECUPERACIÓN SIN CONSULTAR A ALGUIEN QUE SEPA CÓMO HACERLO. LA PÉRDIDA DE FONDOS ES MUY PROBABLE SI SE HACE DE MANERA INCORRECTA.

El backup en LND es bastante más complicado a día de hoy, LND está probando ya el backup de canales implementado en el propio cliente pero hasta entonces utilizamos un parche que puede no resultar bien.

Primero tenemos que entender las diferentes partes donde se almacenan los satoshis en LND:

  • wallet.db (~/.lnd/data/chain/bitcoin/mainnet/wallet.db)

Es la base de datos BOLT que contiene la información de nuestras claves privadas, direcciones usadas, información sobre nuestro nodo, nombre… es decir, controla los fondos on-chain, en la cadena. Si hemos guardado nuestra semilla podremos recuperar aquellos fondos que están en las direcciones que controlamos.

  • channel.db (~/.lnd/data/graph/mainnet/channel.db)

Es la base de datos BOLT que contiene la información de nuestros canales, el estado, las comisiones, los time locks… el saldo que tenemos en los canales y que no los controlamos en la cartera (wallet.db).

El backup que realizo es muy rudimentario, simplemente copio todo el directorio de datos a una unidad externa, con esto me llevo tanto el wallet.db como el channel.db. No es un método infalible pero nos puede sacar del paso hasta que implementen el backup de canales.

Para ello, vamos a utilizar cron editando el fichero crontab de nuestro usuario. El destino debe ser un dispositivo externo, yo tengo un usb montado y hago las copias cada 10 minutos (cambiar la ruta de destino a la vuestra). Editamos el fichero con

crontab -e

y añadimos esta línea:

*/10 * * * * rsync -au --delete /home/pi/.lnd/ /home/pi/backup/

Guardamos el fichero y a partir de ese momento comenzará las copias cada 10 minutos.

En caso de catástrofe tendremos todo el directorio de datos para restaurar. Como he dicho el sistema es rústico y puede dar problemas, a las bases de datos les puede no sentar bien la copia, o tener actualizaciones posterior a la última copia, pero hasta la implementación final es un pequeño salvavidas.

Envía una propina a Jochemin

Añadir un comentario

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