Quantas pessoas leram o seu texto? Uma proposta para o Nostr responder, um NIP para registrar visitas
quantas-pessoas-leram-o-seu-texto-uma-proposta-para-o-nostr-responder-um-nip-para-registrar-visitas
Robersonfox
Programador desde os tempos dos computadores com tela de fósforo. Continuo escrevendo código, continuo depurando. Antes da nuvem, antes da IA. A tecnologia muda, a curiosidade, não.
3 min read
Quem escreve quer saber se está sendo lido. Não por vaidade, mas porque é assim que se decide o próximo texto, o melhor horário para publicar ou se aquele tema merece continuação e claro, se continua a escrever. Nas plataformas centralizadas, essa resposta vem pronta. No Nostr, até hoje, não existia um jeito comum de fazer.
Hoje, cada cliente que quer mostrar visualizações conta sozinho, no próprio servidor e do próprio jeito. O resultado é um número diferente em cada app. Nenhum deles é verificável, e todos somem se o app sair do ar.
Por isso propus o NIP-F8, um contador de visitas no relay:
- Proposta do NIP: nostr-protocol/nips#2532
- Implementação no nostr-rs-relay: robersonfox/nostr-rs-relay, branch
feat/visit-counter
Como funciona
1. O cliente avisa que houve uma visita.
Ao abrir um artigo, o app envia ao relay um evento efêmero, de kind 20918, com uma tag a apontando para o conteúdo. O relay não guarda o evento, só conta.
2. O relay conta com regras públicas. Uma visita entra na conta da hora cheia (UTC) apenas se o visitante não é o autor e se a mesma chave e o mesmo IP ainda não visitaram aquele conteúdo naquela hora. O relay responde OK sempre, para ninguém sondar quem já foi contado.
3. O relay publica só o resultado, assinado. Ele mantém um contador por conteúdo e por hora e publica eventos de kind 30918, assinados com a própria chave: um com o total diário, hora a hora, e outro com o total geral.
Privacidade: o relay só entrega os eventos 30918 a uma conexão autenticada pelo NIP-42 com a chave do autor. Ninguém mais vê os seus números.
Confiança: o relay anuncia a chave de assinatura no campo self do NIP-11. O cliente ignora estatísticas assinadas por qualquer outra chave.
Instalando no seu relay
A implementação é uma branch do nostr-rs-relay e roda com SQLite. Para compilar:
git clone -b feat/visit-counter https://github.com/robersonfox/nostr-rs-relay
cd nostr-rs-relay
cargo build --release
O relay assina as estatísticas com uma chave própria, e sem ela o contador não liga. Qualquer chave Nostr serve, em hex ou nsec; para gerar uma nova:
openssl rand -hex 32
No config.toml, ligue a autenticação NIP-42 e o contador:
[authorization]
nip42_auth = true
[visits]
enabled = true
secret_key = "<chave gerada acima>"
# Se o relay estiver atrás de um proxy, informe o cabeçalho com o IP real:
[network]
remote_ip_header = "cf-connecting-ip"
Ao subir, o relay migra o banco sozinho e passa a anunciar a chave no NIP-11:
curl -s -H 'Accept: application/nostr+json' https://relay.exemplo.com/ | jq .self
Como ajudar
- Desenvolvedores de clientes: enviem o evento 20918 ao abrir um artigo, como no primeiro exemplo.
- Operadores de relay: instalem a branch e testem.
- Escritores: peçam isso aos apps que vocês usam.
- Todos: comentem e apoiem a proposta no PR #2532.
Métricas de leitura são uma das razões pelas quais escritores continuam presos às plataformas centralizadas. Se o Nostr quer ser a casa de quem escreve, precisa oferecer isso de um jeito aberto: um número que qualquer cliente pode pedir, que qualquer relay pode implementar e que pertence só a quem escreveu.
Help keep these ideas circulating
This is an independent project. If you'd like to help support it, you can make a contribution. But there's no obligation at all. Reading, sharing, and coming back is already a form of support.
Read also
1
A Apple lançou a nova geração da Apple Intelligence em 14 de setembro de 2026, integrando recursos avançados de IA nos s…

2
A Lightning Network é uma segunda camada construída sobre o Bitcoin para deixar os pagamentos rápidos e baratos. A ideia…

3
Líderes tecnológicos globais continuam divididos sobre o ritmo adequado para avanço de inteligência artificial. Dario Am…

Want to publish here too? No sign-up, and the text stays yours. Learn how to start
Replies (0)
Loading…
