Que es Lightning Charge

Lightning-charge

En esta entrada describiremos la solución Charge y explicaremos los pasos para instalarla y configurarla.  Como requisito previo es necesario tener un nodo c-lightning funcional y nodejs con una versión superior a la 7.6.

  • Introducción

Lightning Charge es una interfaz de programación de aplicaciones construida sobre la implementación c-lightning que permite aceptar pagos de forma rápida y simple utilizando un API REST. 

Admite metadatos sobre las facturas, conversión a moneda fiat,  enlaces y sockets web y eventos enviados por el servidor.      El principal colaborador de esta interfaz es https://github.com/shesek

Sobre lightning Charge se han construido varias aplicaciones utilizando su API REST, algunas de las Lightning lapps más populares son:

FileBazaar:  Es una herramienta de comercio electrónico para creadores de contenido que producen archivos digitales como fotos, videos o música.

Lightning Publisher: Es un plugin para aceptar pagos de bitcoin por contenido en blogs de WordPress.   En este blog puedes comprobar su funcionamiento y utilizarlo para descargar una guía de rebalanceo aquí.

Nanotip: Es un servidor web simple para aceptar donaciones por lightning.

Paypercall: Cobra satoshios por las llamadas API HTTP.

Nanopos:  Es un sistema simple de punto de venta para tiendas físicas.

WooCommerce Lightning: Es un Gateway de pagos el software de comercio electrónico WooCommerce.

Charge utiliza una base de datos sqlite para almacenar las facturas y otros datos relacionados con los objetos webhook que permiten registrar una URL como enlace web para recibir una notificación una vez que se haya pagado una factura.  Si se desea consultar la base de datos se debe abrir con la aplicación sqlite3 asi:

Para  iniciar el servicio se pueden configurar variables adicionales tales como

·         El PATH o la ruta donde está instalado y funcionando c-lightning (LN_PATH=~/.lightning)

·         El path o la ruta donde estará ubicada la base de datos sqlite (DB_PATH=charge.db)

·         Un API_TOKEN para securizar el acceso al API  (API_TOKEN=mySecretToken)

·         El puerto (PORT=9112)

Por defecto escuchará las conexiones en 127.0.0.1. Es posible configurar el parámetro -i 0.0.0.0 para habilitar todas las interfaces disponibles. Sin embargo esto no es recomendable ya que Charge no tiene cifrado TLS y no debería exponerse al Internet. Para habilitar el acceso se puede configurar un túnel SSH o un proxy inverso habilitado para TLS como nginx, explicado más adelante.

Para lanzar el comando completo sería:

$ charged --api-token mySecretToken # defaults: --ln-path ~/.lightning --db-path ./charge.db --port 9112
  • Instalación

Para iniciar se debe instalar nodejs así:

Instalar npm asi:

Y confirmar que ha quedado instalado correctamente:

Lanzar la instalacion:

Para comprobar que el proceso está ejecutándose correctamente podemos crear una variable de entorno llamada CHARGE que tenga la siguiente forma:

Luego ejecutamos el programa con nuestros valores y comprobamos que se está ejecutando si nos devuelve un JSON con la información del nodo c-lightning.

  • Configuración y uso

Uno de las aplicaciones (lapps) que utilizaremos para el ejemplo es Lightning Publisher. Esta lapp es un sencillo plugin que acepta pagos en lightning por la publicación de contenido utilizando el CMS WordPress permitiendo ofrecer vistas previas de las entradas del blog y requiriendo un pago para liberar el resto.

Se puede descargar desde el repositorio y su instalación es como la de cualquier otro plugin.

Para configurarlo se debe introducir la clave utilizada como API-TOKEN más arriba y el mismo puerto, en este caso mypassword y el 9112.

Posteriormente se debe llamar el uso del plugin mediante [IFPAID] para ocultar el contenido que estará bloqueado hasta recibir el pago.

Para configurar el acceso externo mediante https se debe configurar lo siguiente en nginx.

Nginx ​ es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo electrónico.​​ Es software libre y de código abierto, licenciado bajo la Licencia BSD simplificada; también existe una versión comercial distribuida bajo el nombre de Nginx Plus. Para instalar nginx seguir estos pasos.

Una vez instalado nginx se debe crear la siguiente entrada y obtener un certificado SSL.

Para continuar leyendo envía por favor 0.00001000 BTC.

Generar factura:

Artículo anterior

What are macaroon files in LND

Siguiente artículo

What is Lightning Charge?