Dashboard

Estado del nodo Lightning, invoices y metricas del servicio L402 Macaroon

Metricas principales (KPIs)

Resumen en tiempo real del estado economico del servicio L402. Los datos provienen de GET /api/dashboard y se actualizan automaticamente cada 30 segundos.

  • Invoices totales: Numero total de invoices Lightning generados (pagados + pendientes). Cada vez que un usuario solicita un recurso protegido, el servidor crea una invoice con el precio del servicio. Fuente: stats.total_payments + stats.pending_invoices.
  • Pagados: Invoices que han sido pagados exitosamente a traves de la Lightning Network. El pago se confirma cuando el nodo LND recibe el preimage correspondiente al payment_hash. Fuente: stats.total_payments.
  • Revenue (sats): Suma total de satoshis recaudados por todos los pagos completados. 1 satoshi = 0.00000001 BTC. Fuente: stats.total_sats.
  • Tokens activos: Numero de tokens L402 (macaroons) emitidos y no revocados almacenados en la base de datos del servidor. Cada token esta vinculado a un pago y un servicio especifico. Fuente: active_tokens.length.
Invoices totales
Pagados
Revenue (sats)
Tokens activos

Nodo Lightning (LND)

Estado del nodo Lightning Network que procesa los pagos del servicio L402. Este es el nodo servidor (receptor de pagos), no el nodo cliente de testing.

Informacion del nodo:

  • Alias: Nombre publico del nodo en la red Lightning. Visible para otros nodos al abrir canales.
  • Pubkey: Clave publica unica del nodo (33 bytes hex). Identificador global en la Lightning Network. Se usa para abrir canales y enrutar pagos.
  • Synced: Indica si el nodo esta sincronizado con la blockchain de Bitcoin. Si muestra "No", los pagos podrian fallar porque el nodo no tiene datos actualizados de los canales de la red.
  • Canales: Numero de canales de pago Lightning activos y total. Los canales son contratos 2-of-2 multisig en Bitcoin que permiten pagos instantaneos off-chain. Mas canales = mayor liquidez y conectividad.
  • Block: Altura del ultimo bloque Bitcoin procesado por el nodo. En testnet, se mina un bloque aproximadamente cada 10 minutos. Compara con un explorador para verificar sincronizacion.
  • Mode: Modo de autenticacion del servicio (macaroon o jwt). En este nivel es siempre macaroon (protocolo L402 completo).

Balance del wallet:

  • Onchain: Fondos confirmados en la blockchain de Bitcoin (no en canales). Se usan para abrir nuevos canales o retirar fondos.
  • Canal Local: Fondos disponibles en tu lado de los canales Lightning. Esta es tu capacidad de recepcion gastada — sats que ya has recibido o que puedes enviar.
  • Canal Remoto: Fondos en el lado remoto de los canales. Esta es tu capacidad de recepcion disponible — cuantos sats mas puedes recibir antes de necesitar rebalancear.

Nodo Lightning

Cargando informacion del nodo...

Revenue por ruta

Desglose de ingresos agrupado por cada servicio protegido (ruta). Muestra que contenidos generan mas pagos y revenue.

Columnas:

  • Ruta: El service_id del servicio protegido (ej: introduccion, macaroon-deep-dive). Corresponde al campo id de la tabla services en la base de datos.
  • Pagos: Numero total de pagos completados para esta ruta. Cada pago corresponde a una invoice Lightning pagada y un token L402 emitido.
  • Revenue (sats): Suma total de satoshis recaudados por esta ruta. Se calcula con SUM(amount_sats) sobre las invoices con status='paid' agrupadas por service_id.

La tabla se ordena por revenue descendente (los servicios mas rentables primero). Fuente: stats.revenue_by_route.

Revenue por ruta

RutaPagosRevenue (sats)
Cargando...

Invoices recientes

Listado de las ultimas 50 invoices Lightning generadas por el servicio L402, ordenadas por fecha descendente. Incluye solo invoices con status='paid' en modo macaroon.

Columnas:

  • Payment hash: Identificador unico de 32 bytes (mostrado truncado) que vincula la invoice Lightning con el macaroon L402. Cumple SHA256(preimage) == payment_hash. Puedes buscarlo en un explorador Lightning como mempool.space.
  • Importe: Cantidad en satoshis cobrada al usuario. Corresponde al price_sats del servicio solicitado en el momento del pago.
  • Estado: = pago confirmado por el nodo LND (preimage recibido). pending = invoice emitida pero aun no pagada (esperando pago Lightning).
  • Servicio: El service_id de la ruta protegida para la que se genero la invoice. Permite saber que contenido compro el usuario.
  • Fecha: Timestamp de cuando se confirmo el pago (paid_at) o se creo la invoice (created_at).

El boton Actualizar recarga todos los datos del dashboard desde GET /api/dashboard. Los datos tambien se refrescan automaticamente cada 30 segundos.

Invoices recientes

Payment hashImporteEstadoServicioFecha
Cargando...

Tokens L402 activos

Tokens de autenticacion L402 (macaroons) emitidos por el servidor y actualmente validos. Estos son los tokens almacenados en el servidor (tabla tokens en SQLite), no los del navegador del usuario.

Columnas:

  • Token ID: Identificador unico interno del token en la base de datos del servidor. Se genera al verificar el primer acceso exitoso con un macaroon+preimage valido.
  • Payment hash: El hash del pago Lightning vinculado a este token. Cada token esta criptograficamente ligado a exactamente un pago — no se puede reutilizar un preimage para generar otro token.
  • Servicio: El service_id para el que se emitio el token. El token solo concede acceso a esta ruta especifica — un token para /introduccion no da acceso a /macaroon-deep-dive.
  • Expira: Fecha y hora de expiracion del token (configurable via L402_TOKEN_EXPIRY_HOURS, por defecto 24h). Despues de esta fecha, el servidor rechaza el token con 402 y el usuario debe pagar de nuevo.

Diferencia con los tokens del navegador: Esta tabla muestra los tokens del servidor (verificados y registrados). La pagina "Macaroons" muestra los tokens del cliente (almacenados en localStorage). Ambos lados deben coincidir para que el acceso funcione.

Solo se muestran tokens con is_revoked = 0. Un token revocado desaparece de esta lista pero el servidor lo recuerda para rechazar futuros intentos de uso.

Tokens L402 activos

Token IDPayment hashServicioExpira
Cargando...