Publicado originalmente en Substack el 14 de abril de 2023. Actualizado aquí el 28 de diciembre de 2024.
Este artículo también se registró con OP_RETURN a la altura del bloque #785362
Cómo ejecutar un mercado libre, descentralizado, privado e imparable con LNbits, utilizando la extensión NOSTR-market, sobre relés wss, sin tráfico http alguno e incluso sin DNS/dominio.
Este es un gran logro para NOSTR y LNbits, un protocolo revolucionario para poder comerciar de forma totalmente descentralizada, anunciado por Ben Arc aquí.
Si eres nuevo en esto y no sabes qué es NOSTR, comienza a leer aquí: nostr.com | nostr.how /
Si eres nuevo en LNbits, nunca lo has usado, nunca has oído hablar de él, empieza a leer aquí:
El protocolo original era Diagon-Alley, que luego se convirtió en NOSTR-Market (NIP-15).
Diagon Alley es un protocolo descentralizado de puestos de mercado que desplaza el énfasis del mercado de front-end al puesto de los comerciantes. Si un mercado de front-end (indexador) se cae, los comerciantes simplemente dirigen sus puestos a otro lugar. En teoría de juegos, el ganador del Callejón Diagon es el más directo, aunque las sugerencias para limitar el mal comportamiento son muy bienvenidas.
Indexadores
El indexador es un servidor front-end simple y una GUI que envía información de productos, pagos y envíos entre el comerciante y el comprador. Cada comerciante tiene productos en un puesto. El puesto elige qué productos incluir en la lista con el indexador. Un indexador tiene un punto final.
Puestos
Un puesto tiene un par de claves que usa para registrarse en los índices y firmar facturas. Ese par de claves no está relacionado con ningún par de claves de Lightning Network, es independiente.
Un puesto puede elegir incluir algunos o todos los productos en la lista con un indexador. Un puesto es un servidor pequeño que tiene tres puntos finales.
Pero todo eso se basaba en el protocolo http, por lo que todavía dependía del dominio/DNS y del tráfico a través de http.
Ahora, NOSTR-market está construido sobre el protocolo NOSTR, donde todo el tráfico se realiza a través de relés wss. El acceso HTTP puede ser opcional en caso de que el comerciante desee publicar una tienda web pública.
Pero prácticamente cualquiera puede ejecutar un puesto de venta en una instancia local de LNbits (en 127.0.0.1) y transmitir como notas todos los artículos de su puesto a los relés conectados.
Lo mismo que para los clientes, podría simplemente ejecutar un cliente NOSTR local y un NOSTR-market y conectarse a cualquier clave pública del comerciante a través de relés wss. Luego compre de forma libre, descentralizada, anónima y sin tráfico http, utilizando para los pagos la red Bitcoin Lightning.
¡Comencemos!
COMO COMERCIANTE
Supongamos que ya ha instalado LNbits (consulte los enlaces anteriores sobre LNbits). No entraré en detalles ahora, ya que esta guía sería demasiado larga.
Una breve lista de verificación antes de comenzar con NOSTR-market:
- Familiarícese con el funcionamiento de NOSTR y qué es realmente. Muchos piensan que es solo un reemplazo de Twitter, pero están equivocados, es mucho más que eso. El protocolo NOSTR ofrece muchas otras funcionalidades para un mundo más descentralizado.
- Familiarícese con el funcionamiento de LNbits. Es un sistema de contabilidad sobre un nodo LN/fuente de financiación. Considérelo como un "wordpress" para su nodo LN.
- Pruebe que su instancia LNbits funcione bien, probando las billeteras, los usuarios, etc. Lea y preste atención a toda la documentación de LNbits disponible en la página Wiki.
- Considere tener una buena fuente de financiación con buena liquidez (entrada y salida) para su nodo LN, conectado a buenas rutas LN y que ofrezca suficiente liquidez para los pagos que recibirá y también para intercambiar los sats recibidos. Lea, aprenda y familiarícese con el funcionamiento de LN. Aquí hay una lista completa de guías y tutoriales.
Paso 1: instala las extensiones de LNbits requeridas
A: Activa la función adminUI
Para una fácil administración de tu servidor LNbits (fuentes de financiación, usuarios, administradores, instalación de extensiones, etc.).
Para recordar:
- Esta adminUI creará un usuario superadministrador que SÓLO se encargará de administrar el servidor y se mostrará solo al iniciar LNbits, en el registro de la consola.
- Puede ser Se accede a través de una URL local como http://127.0.0.1/admin?usr=dfdf87... o dominio/DNS si configura sus LNbits en clearnet o también sobre Tor.
- Guarde esta URL en los marcadores de su navegador si desea acceder a ella más veces.
- ¡NO coloque esta URL en ningún motor de búsqueda ni la publique en público!
- NO use un navegador como Google Chrome que también esté conectado con una cuenta de Gmail. Use un navegador decente que respete la privacidad y que tampoco guarde el historial/caché (vea las opciones del navegador y deshabilite esa opción). Cada vez que cierre el navegador, se eliminará todo el historial de navegación. Ver más aquí.
- A partir de la versión 12.0, LNbits ya tiene una forma de iniciar sesión adecuada con usuario y contraseña.
B - Instalar la extensión User Manager (UM)
Esta es una extensión muy útil para administrar y crear usuarios, billeteras y niveles de acceso. Ver más instrucciones aquí.
Inicia sesión con el usuario Superadministrador, instala el UM y luego crea un usuario con su billetera también.
Inicia sesión con ese usuario y guarda la URL en tus marcadores. Este usuario también podría actuar como un usuario administrador (si le das todos los derechos en la sección "Administrar servidor").
Dentro de este "usuario administrador" puedes crear varios otros usuarios normales, el mismo procedimiento usando la extensión UM. Pero sólo si es necesario.
Con este "usuario administrador" vamos a crear el comerciante y el puesto con la extensión NOSTR-market.
C - Instalar la extensión NOSTR-client
Esta es una extensión necesaria para NOSTR-market, ya que su mercado necesita conectarse a varios relés NOSTR para poder transmitir su puesto.
NOSTR-client es una extensión siempre activa que puede abrir múltiples conexiones a relés NOSTR y actuar como un multiplexor para otros clientes: abre un único websocket a nostrclient que luego envía los datos a múltiples relés. Las respuestas de estos relés luego se envían de vuelta al cliente.
Agregue algunos relés NOSTR al cliente. Si puede agregar un relé proxy (uno que esté conectado a muchos otros relés), será mejor limitar el tráfico de sincronización.
D - Instalar la extensión NOSTR-Market
Esta es la extensión importante que usará para crear y administrar su perfil de comerciante, los puestos, los productos, interactuar con los clientes a través de mensajes privados de NOSTR, administrar pedidos, etc.
Paso 2: configure su puesto de comerciante NOSTR y sus productos
Como comerciante, debe proporcionar un par de claves Nostr, o la extensión puede generar uno para usted. Si ya usas NOSTR para publicar notas y chatear, puedes usar las mismas claves para usar la reputación y verificación NIP-05 ya creadas. Pero es preferible tener una clave separada para la tienda y simplemente publicar en tu "perfil público NOSTR" la clave pública adicional de la tienda.
Una vez que tengas una "cuenta" de comerciante, puedes ver los detalles en el menú desplegable de comerciantes, guardar las claves por separado y/o anunciar la clave pública de tu tienda (¡no la clave privada!) a tus seguidores/clientes.
¡GUARDA TU CLAVE PRIVADA en un lugar seguro! En caso de que necesites migrar tu mercado LNbits NOSTR o restaurar una instancia LNbits a otra máquina, puedes usar esa clave privada de comerciante para importar tu puesto y artículos anteriores.
Para crear un puesto, primero debes establecer una zona de envío. Haz clic en el botón Zonas y completa los campos:
- Ponle un nombre a tu zona de envío
- Selecciona a qué países se aplica esta zona de envío (puedes establecer una zona "Franca" para bienes digitales)
- Selecciona la unidad de cuenta. Si vas a incluir productos en USD/EUR, la zona de envío debe estar en la misma moneda
- Selecciona el costo de envío
Ahora puedes crear el puesto. Haga clic en el botón Nuevo puesto y complete los campos necesarios.
- Ponga un nombre para su puesto/tienda
- Una descripción opcional (el cliente puede usarla para buscar tiendas)
- Seleccione qué billetera usar para esta tienda
- Seleccione la unidad
- Seleccione una zona de envío (se pueden seleccionar varias zonas)
Haga clic en el botón "Más" para abrir los detalles del puesto y haga clic en "Nuevo producto" para crear un producto:
Complete los campos necesarios en el cuadro de diálogo
- El nombre del producto
- Dale una descripción
- Agregue algunas categorías (los clientes pueden usar esto para buscar productos, así que agregue tantas como puedan describir mejor su artículo)
- Proporcione una URL para la imagen de su producto (se recomienda que las imágenes estén alojadas fuera de LNbits). Puede utilizar PostIMG.cc o cualquier otro CDN.
- Un precio para el producto, en la moneda seleccionada para la tienda (se convertirá a sats cuando un cliente compre)
- La cantidad que tiene en stock, para el producto. Esto se actualizará cuando se realicen/paguen los pedidos
En la sección Puesto, también puede ver (actualizar o eliminar) los detalles del puesto en la pestaña Información del puesto
Crear, actualizar o eliminar productos en la pestaña Productos
¡Listo! Tu puesto de comerciante está listo para que lo visiten tus clientes.
Para probar localmente tu puesto, abre el enlace de la página del Mercado local, ubicada en la página principal de NOSTR-Market, en el panel lateral derecho:
Este enlace abrirá una nueva pestaña como: http:127.0.0.1/nostrmarket/market o https://your-lnbits.domain.com/nostrmarket/market (si accedes a ella en clearnet).
Haz clic en el menú del Mercado y ve a Comerciantes. Luego, pega tu clave pública de comerciante (consulta el comienzo de este capítulo sobre cómo mostrar/guardar tu clave pública).
Una vez que agregues tu clave pública, tu puesto se mostrará y se transmitirá a los relés.
El botón de inicio de sesión se debe utilizar como cliente o como propietario del puesto o como con tu perfil personal de NOSTR.
También puedes probar tu puesto de NOSTR desde cualquier otra página pública de NOSTR Market, como https://market.nostr.com/, por ejemplo. Solo tienes que agregar tu clave pública en la sección "Comerciantes" y listo. Cualquiera de tus clientes puede hacer el mismo procedimiento o desde su propia instancia local de LNbits si la tienen.
En una página de Market puedes agregar varios comerciantes y comprar desde allí directamente. Como puedes ver en la imagen de arriba, hay 3 comerciantes diferentes, con sus puestos y a todos se puede acceder desde una instancia local de LNbits, simplemente agregando sus claves públicas.
Cuando recibes un pedido, puedes ver los detalles haciendo clic en el signo "Más" del pedido.
- Productos pedidos
- ID del pedido
- Dirección de envío del cliente
- Clave pública del cliente
- ID de factura
Si corresponde, puede establecer como enviado cuando se procese el envío.
También tiene un cuadro de chat para chatear con el cliente y todos estos mensajes se envían a través del protocolo NOSTR, de forma privada y cifrada.
COMO CLIENTE
LNbits también proporciona una aplicación de cliente de Nostr Market.
Puede compartir con sus clientes la URL del cliente desde el panel del comerciante haciendo clic en el enlace "Cliente de Market" o visitando https://your-LNbits-instance-URL/nostrmarket/market.
O pueden visitar https://market.nostr.com/ por ejemplo y simplemente agregar su clave pública de puesto. O incluso pueden usar el cuadro de búsqueda y colocar una de sus etiquetas específicas.
Si ya tienen una instancia de LNbits instalada, incluso pueden acceder a ella desde una URL local como http://127.0.0.1/nostrmarket/market y agregar la clave pública de puesto.