Quantas pessoas leram o seu texto? Uma proposta para o Nostr responder, um NIP para registrar visitas

Past Drunk Nerd

30. Oktober 2026October 30, 2026 · 3 Min. Lesezeit3 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:

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#

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.

​‌‍⁠​‌‍⁠Venha fazer parte do The Hakon, o maior blog NOSTR de língua portuguesa

#contador-de-visitas#javascript#nip#nostr

Written by

Comments

No comments yet. Start the conversation.

Contents

4 sections

  1. Como funciona
  2. Instalando no seu relay
  3. Como ajudar