Cómo usar LNbits para crear tus propias extensiones Lightning:


Cómo usar LNbits para crear tus propias extensiones Lightning

Introducción al desarrollo de extensiones en LNbits

LNbits es un monedero modular para la red Lightning que permite crear y desplegar extensiones personalizadas sin tocar el núcleo de la aplicación. Con su arquitectura basada en plugins, puedes añadir funcionalidades específicas, automatizar pagos o integrar nuevos servicios.

Requisitos previos

• Tener instalada y en funcionamiento una instancia de LNbits (local o en servidor). • Conexión a un nodo Lightning (por ejemplo LND o c-lightning). • Conocimientos básicos de Python y JavaScript. • Familiaridad con entornos virtuales (venv) y gestión de dependencias.

Instalación y configuración de tu entorno

1. Clonar el repositorio oficial

Ejecuta: git clone https://github.com/lnbits/lnbits.git Entra en la carpeta raíz: cd lnbits

2. Crear y activar el entorno virtual

En Linux/Mac: python3 -m venv venv
source venv/bin/activate
En Windows: python -m venv venv
venvScriptsactivate

3. Instalar dependencias

pip install -r requirements.txt

Estructura básica de una extensión

Cada extensión de LNbits debe incluir al menos: • Un archivo __init__.py con metadatos. • Un módulo de rutas (por ejemplo routes.py). • Plantillas HTML opcionales (carpeta templates). • Recursos estáticos como CSS o JS (carpeta static).

Generando el scaffold de la extensión

LNbits incluye un generador que crea la estructura mínima. Desde la raíz ejecuta: python -m lnbits extension create my_extension Esto crea una carpeta my_extension con los archivos base.

Desarrollando la lógica de negocio

Archivo __init__.py

Define nombre, versión, autor y descripción: EXTENSION_NAME = Mi Extensión Lightning EXTENSION_VERSION = 0.1.0

Rutas y controladores (routes.py)

Importa Blueprint de Flask y define endpoints: from flask import Blueprint, request, jsonify
from lnbits.decorators import require_admin

bp = Blueprint(my_extension, __name__, url_prefix=/myext)

@bp.route(/status, methods=[GET])
@require_admin
def status():
return jsonify({status: ok})

Conectando con la red Lightning

Utiliza el cliente provisto por LNbits para crear facturas o consultar pagos: from lnbits.db import db
from lnbits.helpers import pay_invoice, create_invoice
create_invoice: genera una factura y la guarda en la base de datos. pay_invoice: procesa el pago de una factura dada.

Pruebas y depuración

Ejecuta la aplicación en modo desarrollo: export FLASK_ENV=development
flask run
Usa herramientas como Postman o curl para validar tus endpoints.

Empaquetado y distribución

Una vez completada, añade tu extensión a la lista de disponibles: • Sube la carpeta a un repositorio público o privado. • Comparte la URL en tu instancia de LNbits a través de Añadir extensión remota.

Ejemplo práctico: extensión de propinas automáticas

Imagina una extensión que envía un pago de propina al creador cuando un usuario visita una página. En routes.py: @bp.route(/tip, methods=[POST])
def tip():
data = request.get_json()
invoice = create_invoice(amount=100, memo=Propina)
pay_result = pay_invoice(invoice.r_hash)
return jsonify({paid: pay_result})

Recursos adicionales

Repositorio oficial de LNbits • Documentación de desarrolladores en docs.lnbits.org

Conclusión

Crear extensiones para LNbits te permite agregar funcionalidades a la red Lightning de manera modular y segura. Siguiendo esta guía tendrás la base para desarrollar, probar y distribuir tus propios plugins adaptados a tus necesidades.

Leave a Reply

Your email address will not be published. Required fields are marked *