Polar - Redes Bitcoin Lightning con un solo clic

Descarga e instalación
Como en todo lo que concierne a bitcoin, don’t trust, verify, asique con esta expresión tan cierta lo primero que tenemos que hacer es ir a la fuente de la solución que queremos probar o utilizar, en este caso debemos ir directamente al repositorio de github.

Una vez aquí, nos dirigimos al apartado dependencias en el que nos explica que requisitos necesitamos para la instalación.
Como puedes observar, necesitarás instalar Docker para poder crear las diferentes redes.
Dependiendo de cual sea tu sistema operativo, tendras que instalar para Mac y Windows Docker Desktop o si utilizas Linux como es mi caso y como vamos a seguir este post Docker Server.
Si lo instalas como yo en Linux, sigue estos pasos:
Nos dirigimos al enlace y se nos abrirá la pagina principal de DockerDocs.

Elegimos de entre la lista de distribuciones la nuestra, en mi caso voy a seleccionar Ubuntu por que la distribución que utilizo es Pop!_OS que esta basada en ella.
Después de leernos las advertencias y comprobar que cumplimos los requisitos nos dirigimos en esa misma pagina un poco mas abajo en donde dice Métodos de Instalación y hacemos clic a Docker’s APT repository, y añadimos desde apt con la clave oficial GPG, la secuencia de comandos seria la siguiente:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

Añadimos el repositorio de Docker:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Instalamos los paquetes de Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin.

Luego es recomendable, para que Polar pueda ejecutar comandos sudo, añadir nuestro usuario al grupo docker:
sudo usermod -aG docker $USER

Recuerda que si añades tu usuario al grupo docker, tienes que reiniciar para aplicar el cambio.
Para finalizar y verificar que la instalación se ha realizado correctamente utilizamos el siguiente comando, que descarga una imagen de prueba y la ejecuta en un contenedor:
sudo docker run hello-world
Y el mensaje en pantalla si todo ha salido bien es Hello from Docker!

Ahora aunque la instalación haya salido bien, vamos a cerciorarnos de que esta corriendo:
sudo systemctl status docker

Si no estuviera activo, lo activaríamos con el siguiente comando:
sudo systemctl start docker
Y si queremos que inicie automáticamente al arrancar, lo haríamos de la siguiente manera:
sudo systemctl enable docker
Una vez que tenemos Docker instalado y funcionando, pasamos a instalar Polar y para ello volvemos a repositorio de github a la parte de Descarga y elegimos nuestro sistema operativo, y como Linux es un ecosistema muy rico en recursos, nos ofrece tres maneras diferentes de descargarnos los paquetes, yo voy a elegir en esta ocasión .deb, para lo cual creo una carpeta Polar y desde ahí hago la instalación:
sudo dpkg -i polar-linux-amd64-v3.2.0.deb

Y con esto ya tendríamos Polar instalado y preparado para empezar a hacer redes, nodos y transacciones, nos metemos en harina!
Interface
Empezamos haciendo clic a Crea una red Lightning.

Le damos un nombre, una descripción y elegimos los nodos con las diferentes implementaciones que ofrece más aparte un nodo Bitcoin Core así como Taproot Assets o los nodos en modo terminal que queremos implementar y le hacemos clic a Crear red.

Al ser la primera vez que creamos una red, tarda un poco en que docker cree las imágenes,hacemos clic en Inicio y es el momento de ir a por la bebida y hacer palomitas…

Después de que haya creado las imágenes de las diferentes implementaciones nos aparecerá un grafo con los nodos y las conexiones que podemos hacer entre ello, así como si nos posicionamos encima con el cursor, en la ventana de la derecha nos mostrará información de cada uno ademas de poder hacer diferentes acciones como veremos ahora mismo.

Si hacemos clic con el cursor encima de la conexión nos dará información de que tipo de conexión es. Para cambiar las conexiones entre los diferentes nodos Polar a divido el tipo de conexión según su posición, las conexiones que están encima y abajo del nodo son para los backend y las conexiones que están a la derecha y a la izquierda son para canales.

Volviendo a la ventana de la derecha, tenemos la opción de ver las direcciones IP como los puertos para las diferentes conexiones.

Y en la pestaña de Comportamiento es donde podemos en el caso del nodo de Bitcoin Core minar bloques para que podamos tener liquidez para la red.

O en el caso de los nodos lightning depositar fondos, abrir canales o hacer pagos.

En la parte superior de la ventana tenemos las opciones de Minado rápido o configurar la red para que mine automáticamente a diferentes velocidades dependiendo del realismo que le queramos dar a la simulación.
También nos ofrece información de si esta iniciada la red, como la altura de bloque minado.

Minado de bloques
Como se describió antes, para minar bloques, tenemos que dirigirnos a la pestaña comportamiento con el nodo backend de Bitcoin Core seleccionado.
Seleccionamos la cantidad de bloques que queremos minar y clicamos en minar.

Depositar fondos
Después de haber minado unos bloques, y para empezar a utilizar la red lo que debemos hacer es proveer de liquidez a los diferentes nodos lightning , y esto lo conseguimos posicionándonos en los diferentes nodos lightning y dirigiéndonos a la pestaña comportamiento de la ventana de la derecha, haciendo clic en depositar después de haber elegido una cantidad si con la que viene por defecto, que es de 1000000 de satoshis, no es suficiente.

Si después nos dirigimos al nodo backend de Bitcoin Core, podemos observar que ha restado del total la cantidad que hemos depositado.

Y si vamos al nodo lightning podemos ver que la liquidez ahí está.

Creación de canales
Una vez que toda la red tiene liquidez, es momento de empezar a abrir canales, y esto lo podemos conseguir de dos maneras…
La primera es dirigiéndonos a la ventana derecha y en comportamiento elegir abrir canal entrante o saliente dependiendo de las necesidades y escenarios que queramos probar.
Con esta manera de hacerlo vamos a crear un canal entrante de Bob a Alice.

Elegimos a Alice en la ventana emergente.

La capacidad del canal y luego hay dos checkbox…
El primero en el que dice: Deposita suficientes asientos a Alice para financiar el canal, lo que quiere decir en realidad si esta marcado es que Polar le daría automáticamente a Alice suficientes fondos para que pueda abrir el canal.
El segundo checkbox haría el canal privado.

Como podemos ver al crear el canal, automáticamente Polar a depositado en la cuenta de Alice los 10000000 satoshis.

La segunda manera de abrir canales es directamente en los nodos en su parte derecha e izquierda, utilizando el ratón para ello y arrastrando hacia el nodo donde queramos abrir el canal.
Para este ejemplo vamos a abrir un canal de Dave a Carol.


Pagos y creación de facturas
Para realizar pagos o crear una factura nos debemos dirigir a la pestaña Comportamiento del nodo desde el que queramos hacer la operación.
Para hacer una factura, clicamos en su botón y en la ventana emergente elegimos el monto que quieres reclamar y hacemos clic en Crear factura.

Nos devolverá otra ventana emergente en el que nos informa de que se ha realizado con éxito y una dirección para que la contraparte te realice el pago, copiar y cerrar.

Ahora con esa dirección copiada debemos ir al nodo que queramos realice el pago, pestaña Comportamiento y Pagar factura.

En la ventana emergente, pegamos la dirección en el cuadro reservado para ello.

Y nos informa de que el pago se ha realizado correctamente.

Cierre de canal
Como en la creacion de canales, para cerrarlos tambien tenemos dos maneras de operar.
La primera seria al hacer clic sobre el enlace del canal y en la información abajo del todo nos indica un botón Cerrar canal.

Y la otra seria hacer clic también sobre el enlace del canal, pero con clic derecho y directamente nos daría la opción.



Operar mediante Terminal
Las implementaciones pueden ser operadas directamente por terminal, si… ya se que no es tan bonito…pero solo por la potencia que tiene merece la pena que le eches un ojo.
Si te diriges en la pestaña de Comportamiento y bajas un poco te encontraras un boton en el que te invita a Ejecutar el terminal.

Cada implementación tiene sus propios comandos, pudiendo compartir algunos.
Hoy en día hay recursos de sobra para poder saber los comandos básicos para moverte medianamente bien en la terminal como preguntar a Chat-gpt o utilizar el comando help dependiendo de la implementación, por ejemplo en c-lightning el comando de ayuda seria:
lightning-cli help


La salida ofrece todos los comandos que utiliza, de hecho daría para un post única y exclusivamente dedicado a operar con la terminal, te animo a probar.
Conclusiones
Polar es una herramienta muy completa y potente para operar los nodos de las diferentes implementaciones que ofrece y hacer todas las pruebas que imagines con la seguridad de hacerlo en una red controlada por ti, con fondos ilimitados manejados por ti y en la que si desarrollas una solución lightning , poderla testear introduciéndola en una red.
Es imposible cubrir todas las posibilidades que ofrece en un solo post, así que no descarto repetir centrándome en temas específicos como el de la terminal o Taproot Assets, que este ni he entrado.
Espero que el post te haya gustado y resultado de ayuda… y recuerda… la mejor manera de verificar algo… es hacerlo tu mismo!
¡Un saludo!
¡Nos vemos en el siguiente!
SvenS