Esta historia de adquisición felina comienza con la demostración de la versión 0.5 del prototipo C lightning, un sistema de micropagos ultraveloz que venimos desarrollando en Blockstream. Para poner a prueba el inminente prototipo, configuramos un servidor web que generaba facturas para pagos de prueba en bitcoin por la red lightning y que, a cambio, entregaba un gato, o por lo menos una imagen ASCII de un gato.
Christian Decker (PhD), un colega desarrollador de Blockstream, compró la imagen felina con 0,01 bitcoins de prueba a fin de abrir un canal lightning con el servidor, que se minó en el bloque de prueba nro. 928335. Tras una sola confirmación, Christian pagó la factura con una transferencia de 100 satoshis. A continuación, ingresó al enlace y encontró su compra: la imagen de un gato. Descubrió que era una imagen ASCII con una bonita ventaja extra: ¡había dos gatos! Enseguida, Christian abrió un segundo nodo, se conectó al primero y compró otra copia de la imagen del gato mediante el enrutamiento a través del nodo anterior.
¿Qué ocurrió tras bambalinas?
Hay un servidor Digital Ocean que ejecuta Apache, bitcoind y lightningd. Cuando se accede, un programa CGI ordena al comando ‘lightning-cli invoice 100000’ que genere una factura, que se presenta al usuario. El usuario ingresa por un enlace exclusivo y, si el comando ‘lightning-cli listinvoice’ indica que la factura está paga, el programa entrega la imagen.
Esta es la primera prueba integral de una red de micropagos lightning que incluye las fases de facturación, pago multitramo y entrega de artículos. Es muy diferente de la simulación que hace poco presentó Acinq de un algoritmo de enrutamiento lightning llamado Flare. En términos de una analogía sencilla, su trabajo demuestra cómo crear un plano para ir del punto A al B de manera eficiente; en cambio, la prueba que demostramos con la versión 0.5 del prototipo C lightning nos permite “recorrer” realmente ese trayecto.
Próximas novedades
Encontramos algunos errores de programación en casos imprevistos y nos topamos con algunos comentarios tipo “FIXME” conocidos, pero también logramos robustecer lightningd ante posibles configuraciones erróneas. Aún quedan imperfecciones por pulir y documentación por escribir antes del lanzamiento de la versión 0.5. Más adelante, ¡queremos crear bibliotecas que permitan a los desarrolladores web jugar a construir sus propias tiendas de imágenes de gatos!
Mientras tanto, aquí hay un breve video que muestra cómo funciona. El limitado valor de producción se corresponde con el arte ASCII.