Como executar um mercado livre, descentralizado, privado e imparável com LNbits, usando a extensão NOSTR-market, sobre relés wss, sem nenhum tráfego http e até mesmo sem DNS/domínio








Postado originalmente em Substack em 14 de abril de 2023. Atualizado aqui em 28 de dezembro de 2024.
Este artigo também foi registrado com OP_RETURN na altura do bloco #785362
Esta é uma grande conquista para NOSTR e LNbits, um protocolo revolucionário para poder negociar de forma totalmente descentralizada, anunciado por Ben Arc aqui.
Se você é novo nisso e não sabe o que é NOSTR, comece a ler aqui: nostr.com | nostr.how /
Se você é novo no LNbits, nunca o usou, nunca ouviu falar dele, comece a ler aqui:
O protocolo original era Diagon-Alley, que mais tarde se tornou NOSTR-Market (NIP-15).
Diagon Alley é um protocolo descentralizado de market-stall, que muda a ênfase do mercado front-end para o estande do comerciante. Se um mercado front-end (indexador) for derrubado, os comerciantes simplesmente apontam seus estandes para outro lugar. Teoricamente, o vencedor do Diagon Alley é o mais direto, embora sugestões sobre como limitar o mau comportamento sejam muito bem-vindas.
Indexadores
O indexador é um servidor front-end simples e uma interface gráfica de usuário que roteia informações sobre produtos, pagamentos e remessas entre o comerciante e o comprador. Cada comerciante tem produtos em um estande. O stall escolhe quais produtos listar com o indexador. Um indexador tem um ponto final.
Stalls
Um stall tem um par de chaves que ele usa para se registrar em índices e assinar faturas. Esse par de chaves não está relacionado a nenhum par de chaves da Lightning Network, ele é independente.
Um stall pode escolher listar alguns/todos os produtos com um indexador. Um stall é um pequeno servidor que tem três pontos finais.
Mas tudo isso era baseado no protocolo http, então ainda dependia do domínio/DNS e do tráfego sobre http.
Agora, o NOSTR-market é construído sobre o protocolo NOSTR, onde todo o tráfego é sobre relés wss. O acesso HTTP pode ser opcional caso o comerciante queira publicar uma loja virtual pública.
Mas praticamente qualquer um pode executar uma barraca de loja em uma instância local do LNbits (em 127.0.0.1) e transmitir como notas todos os itens de sua barraca para os relés conectados.
O mesmo que para os clientes, pode apenas executar um cliente NOSTR local e um mercado NOSTR e conectar-se a qualquer chave pública do comerciante por meio de relés wss. Então compre livremente, descentralizado, anonimamente, sem tráfego http, usando para pagamentos a Bitcoin Lightning Network.
Vamos começar!
COMO COMERCIANTE
Vamos considerar que você já instalou o LNbits (veja os links acima sobre o LNbits). Não entrarei em detalhes agora, pois tornaria este guia muito longo.
Uma pequena lista de verificação antes de começar com o NOSTR-market:
- Familiarize-se com o funcionamento do NOSTR e o que ele realmente é. Muitos pensam que é apenas um substituto do Twitter, mas estão errados, é muito mais do que isso. O protocolo NOSTR oferece muitas outras funcionalidades para um mundo mais descentralizado.
- Familiarize-se com o funcionamento do LNbits. É um sistema de contabilidade em cima de um nó LN/fonte de financiamento. Considere-o como um "wordpress" para seu nó LN.
- Teste sua instância LNbits para estar funcionando bem, testando as carteiras, usuários etc. Leia e preste atenção a toda a documentação LNbits disponível na página Wiki.
- Considere ter uma boa fonte de financiamento com boa liquidez (entrada e saída) para seu nó LN, conectado a boas rotas LN e ofereça liquidez suficiente para os pagamentos que você receberá e também para trocar os sats recebidos. Leia, aprenda e familiarize-se com o funcionamento do LN. Aqui está uma lista completa de guias e tutoriais.
Etapa 1 - Instale as extensões LNbits necessárias
A - Ative o recurso adminUI
Para um gerenciamento fácil do seu servidor LNbits (fontes de financiamento, usuários, administradores, instalar extensões etc.).
Para lembrar:
- Este adminUI criará um usuário superadministrador que SOMENTE gerenciará o servidor e será exibido apenas na inicialização do LNbits, no log do console.
- Ele pode ser acessado por meio de URL local como http://127.0.0.1/admin?usr=dfdf87.... ou domínio / DNS se você configurar seus LNbits em clearnet ou também no Tor.
- Salve esta URL nos favoritos do seu navegador se quiser acessá-la mais vezes.
- NÃO coloque esta URL em nenhum mecanismo de busca ou publique-a em público!
- NÃO use um navegador como o Google Chrome que também esteja logado com uma conta do Gmail. Use um navegador decente que respeite a privacidade e também não salve o histórico/cache (veja as opções do navegador e desabilite essa opção). Toda vez que você fechar o navegador, todo o histórico de navegação será eliminado. Veja mais aqui.
- A partir da versão 12.0, o LNbits já tem uma maneira de login adequada com usuário e senha.
B - Instalar extensão User Manager (UM)
Esta é uma extensão muito útil para gerenciar e criar usuários, carteiras e níveis de acesso. Veja mais instruções aqui.
Faça login com o usuário Super Admin, instale o UM e crie um usuário com sua carteira também.
Faça login com esse usuário e salve a URL em seus favoritos. Este usuário também pode estar agindo como um usuário administrador (se você der direitos totais na seção "Gerenciar servidor").
Dentro deste "usuário administrador", você pode criar vários outros usuários normais, mesmo procedimento usando a extensão UM. Mas somente se necessário.
Com este "usuário administrador" criaremos o comerciante e a barraca com a extensão NOSTR-market.
C - Instalar extensão NOSTR-client
Esta é uma extensão necessária para o NOSTR-market, porque seu mercado precisa se conectar a vários relés NOSTR para poder transmitir sua barraca.
O NOSTR-client é uma extensão sempre ativa que pode abrir várias conexões para relés nostr e atuar como um multiplexador para outros clientes: você abre um único websocket para o nostrclient, que então envia os dados para vários relés. As respostas desses relés são então enviadas de volta para o cliente.
Adicione alguns relés NOSTR ao cliente. Se você puder adicionar um proxy relay (um que esteja conectado a muitos outros relays), será melhor limitar o tráfego de sincronização.
D - Instalar a extensão NOSTR-Market
Esta é a extensão importante que você usará para criar e gerenciar seu perfil de comerciante, as barracas, produtos, interagir com clientes por mensagens privadas NOSTR, gerenciar pedidos etc.
Etapa 2 - Configurar sua barraca e produtos NOSTR-Merchant
Como comerciante, você precisa fornecer um par de chaves Nostr, ou a extensão pode gerar um para você. Se você já usa o NOSTR para postar notas e bate-papo, pode usar as mesmas chaves para usar a reputação e verificação NIP-05 já criadas. Mas é preferível ter uma separada para a loja e apenas publicar no seu "perfil público NOSTR" a chave pública adicional da loja.
Depois de ter uma "conta" de comerciante, você pode visualizar os detalhes no menu suspenso do comerciante, salvar as chaves separadamente e/ou anunciar sua chave pública da loja (não a chave privada!) para seus seguidores/clientes.
SALVE SUA CHAVE PRIVADA em um lugar seguro! Caso precise migrar seu mercado LNbits NOSTR ou restaurar uma instância LNbits para outra máquina, você pode usar essa chave privada do comerciante para importar sua barraca e itens anteriores.
Para criar uma barraca, primeiro você precisa definir uma zona de envio. Clique no botão Zonas e preencha os campos:
- Dê um nome à sua zona de envio
- Selecione a quais países essa zona de envio se aplica (você pode definir uma zona "Livre" para produtos digitais)
- Selecione a unidade de conta. Se você listar produtos em USD/EUR, a zona de envio deve estar na mesma moeda
- Selecione o custo de envio
Agora você pode criar a barraca. Clique no botão Nova barraca e preencha os campos necessários.
- Dê um nome à sua barraca/loja
- Uma descrição opcional (pode ser usada pelo cliente para pesquisar lojas)
- Selecione qual carteira usar para esta loja
- Selecione a unidade
- selecione uma Zona de Envio (várias zonas podem ser selecionadas)
Clique no botão "Mais" para abrir os detalhes da barraca e clique em "Novo Produto" para criar um produto:
Preencha os campos necessários no diálogo
- O nome do produto
- Dê uma descrição
- Adicione algumas categorias (isso pode ser usado por clientes para pesquisar produtos, então adicione quantas puderem descrever melhor seu item)
- Forneça uma URL para a imagem do seu produto (é recomendado que as imagens sejam hospedadas fora do LNbits). Você pode usar PostIMG.cc ou qualquer outro CDN.
- Um preço para o produto, na moeda selecionada para a loja (isso será convertido para sats quando um cliente comprar)
- A quantidade que você tem em estoque, para o produto. Isso será atualizado quando os pedidos forem feitos/pagos
Na seção Barraca, você também pode ver (atualizar ou excluir) os detalhes da barraca na aba Informações da barraca
Criar, atualizar ou excluir produtos na aba Produtos
Pronto! Sua barraca de comerciante está pronta para ser visitada por seus clientes.
Para testar sua barraca localmente, abra o link da página do Mercado local, localizado na página principal do NOSTR-Market, no painel do lado direito:
Este link abrirá uma nova aba como: http:127.0.0.1/nostrmarket/market ou https://your-lnbits.domain.com/nostrmarket/market (se você acessá-lo no clearnet).
Clique no menu Mercado e vá para Comerciantes. Em seguida, cole sua pubkey de comerciante (veja o início deste capítulo sobre como exibir/salvar sua pubkey).
Depois de adicionar sua pubkey, sua barraca será exibida e transmitida para os retransmissores.
O botão Login deve ser usado como cliente ou como você, o proprietário da barraca ou como seu perfil pessoal NOSTR.
Você pode testar sua barraca NOSTR também em qualquer outra página pública do Mercado NOSTR, como https://market.nostr.com/ por exemplo. Você só precisa adicionar sua pubkey na seção "Merchants" e pronto. Qualquer um dos seus clientes pode fazer o mesmo procedimento ou a partir de sua própria instância local do LNbits, se tiver.
Em uma página de Mercado, você pode adicionar vários comerciantes e comprar diretamente de lá. Como você pode ver na imagem acima, são 3 comerciantes diferentes, com suas barracas e todos acessados a partir de uma instância local do LNbits, apenas adicionando suas pubkeys.
Quando você recebe um pedido, pode ver os detalhes clicando no sinal de "Mais" para o pedido.
- Produtos pedidos
- ID do pedido
- Endereço de entrega do cliente
- Chave pública do cliente
- ID da fatura
Se aplicável, você pode definir como enviado quando o envio for processado.
Você também tem uma caixa de bate-papo para conversar com o cliente e todas essas mensagens são feitas pelo protocolo NOSTR, de forma privada e criptografada.
COMO CLIENTE
A LNbits também fornece um aplicativo cliente Nostr Market.
Você pode compartilhar com seus clientes a URL do cliente no painel do comerciante clicando no link "Cliente do Market" ou visitando https://your-LNbits-instance-URL/nostrmarket/market.
Ou eles podem visitar https://market.nostr.com/ por exemplo e apenas adicionar sua chave pública Stall. Ou até mesmo usar a caixa de pesquisa e colocar uma de suas tags específicas.
Se eles já tiverem uma instância LNbits instalada, eles podem até acessá-la de uma URL local como http://127.0.0.1/nostrmarket/market e adicionar a chave pública stall.