<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-09-29T15:11:32Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by tokio</title>
  <author>
    <name>tokio</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub1c6d229weeplryapx6wyffk3j3hjhar8tyl3hfr2lx80kjt0w98rsksazzj.rss" />
  <link href="https://nostr.now/npub1c6d229weeplryapx6wyffk3j3hjhar8tyl3hfr2lx80kjt0w98rsksazzj" />
  <id>https://nostr.now/npub1c6d229weeplryapx6wyffk3j3hjhar8tyl3hfr2lx80kjt0w98rsksazzj</id>
  <icon>https://i.pravatar.cc/150?img=33</icon>
  <logo>https://i.pravatar.cc/150?img=33</logo>




  <entry>
    <id>https://nostr.now/nevent1qqs9grdqrrsjmwjzaa62xj9vh5zag33rje00huueqwpklyde2j2mlkczyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwmlty5r</id>
    
      <title type="html">Um NIP para contar visitas, bem pensado. #naddr1qp…99gy</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9grdqrrsjmwjzaa62xj9vh5zag33rje00huueqwpklyde2j2mlkczyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwmlty5r" />
    <content type="html">
      Um NIP para contar visitas, bem pensado.&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qp3hzatpde6xzuedwpjhxum0v9ej6mr9wfsk6tt094ek2afdw3jhsar0946k6cfdwpex7ur0wd6xzttsv9exztt094hx7um5wgkhyetnwphkuer9wgkh2mfdde5hqttsv9exzttjv4nkjum5wfshyttkd9ekjarpwvq3wamnwvaz7tmzd96xxmmfdejhytnnda3kjctv9upzqtfeqvy45jkqmfznn32hr4n4khcnhpcm2wrsf2nd476getmtk53yqvzqqqr4gukv99gy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qp…99gy&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Por isso propus o NIP-F8, um contador de visitas no relay:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proposta do NIP: &lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2532&#34;&gt;nostr-protocol/nips#2532&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Implementação no nostr-rs-relay: &lt;a href=&#34;https://github.com/robersonfox/nostr-rs-relay/tree/feat/visit-counter&#34;&gt;robersonfox/nostr-rs-relay, branch &lt;/a&gt;&lt;code&gt;feat/visit-counter&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;como-funciona-2&#34;&gt;Como funciona&lt;/h2&gt;

&lt;p&gt;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 &lt;code&gt;a&lt;/code&gt; apontando para o conteúdo. O relay não guarda o evento, só conta.&lt;/p&gt;

&lt;p&gt;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 &lt;code&gt;OK&lt;/code&gt; sempre, para ninguém sondar quem já foi contado.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Confiança: o relay anuncia a chave de assinatura no campo &lt;code&gt;self&lt;/code&gt; do NIP-11. O cliente ignora estatísticas assinadas por qualquer outra chave.&lt;/p&gt;

&lt;h2 id=&#34;instalando-no-seu-relay-2&#34;&gt;Instalando no seu relay&lt;/h2&gt;

&lt;p&gt;A implementação é uma branch do nostr-rs-relay e roda com SQLite. Para compilar:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;git clone -b feat/visit-counter https://github.com/robersonfox/nostr-rs-relay
cd nostr-rs-relay
cargo build --release
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;openssl rand -hex 32
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;No &lt;code&gt;config.toml&lt;/code&gt;, ligue a autenticação NIP-42 e o contador:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[authorization]
nip42_auth = true

[visits]
enabled = true
secret_key = &amp;#34;&amp;lt;chave gerada acima&amp;gt;&amp;#34;

# Se o relay estiver atrás de um proxy, informe o cabeçalho com o IP real:
[network]
remote_ip_header = &amp;#34;cf-connecting-ip&amp;#34;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ao subir, o relay migra o banco sozinho e passa a anunciar a chave no NIP-11:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl -s -H &amp;#39;Accept: application/nostr&#43;json&amp;#39; https://relay.exemplo.com/ | jq .self
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;como-ajudar-2&#34;&gt;Como ajudar&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Desenvolvedores de clientes: enviem o evento 20918 ao abrir um artigo, como no primeiro exemplo.&lt;/li&gt;
&lt;li&gt;Operadores de relay: instalem a branch e testem.&lt;/li&gt;
&lt;li&gt;Escritores: peçam isso aos apps que vocês usam.&lt;/li&gt;
&lt;li&gt;Todos: comentem e apoiem a proposta no &lt;a href=&#34;https://github.com/nostr-protocol/nips/pull/2532&#34;&gt;PR #2532&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;​‌‍⁠​‌‍⁠Venha fazer parte do &lt;a href=&#34;https://thehakon.com/@robersonfox&#34;&gt;The Hakon&lt;/a&gt;, o maior blog NOSTR de língua portuguesa&lt;/p&gt;

&lt;p&gt;&lt;img src=&#34;https://thehakon.com/api/posts/view?e=30023%3A2d3903095a4ac0da4539c5571d675b5f13b871b538704aa6dafb48caf6bb5224%3Aquantas-pessoas-leram-o-seu-texto-uma-proposta-para-o-nostr-responder-um-nip-para-registrar-visitas&#34; alt=&#34;&#34;/&gt;&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-10-31T01:20:59Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyvlve77zfnw92vtfwz5g2sw630e4vqclrfyxamg39mnyjjxxt42qzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwavhsdc</id>
    
      <title type="html">Sem querer desrespeitá-lo. Já fui militar, trabalhava em uma ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyvlve77zfnw92vtfwz5g2sw630e4vqclrfyxamg39mnyjjxxt42qzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwavhsdc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdy96amtdcupggg0kclt3szf6z2g4sq65j9m22zv2mc7tsgy3ncdqppemhxue69uhkummn9ekx7mp0949vyy&#39;&gt;nevent1q…9vyy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Sem querer desrespeitá-lo. Já fui militar, trabalhava em uma diretoria e a única coisa que via era trairagem. O meio militar é cheio disso, nunca confiei minha vida à outro homem e sempre mantive na ideia a passagem bíblica que diz: maldito o homem que confia em outro homem.
    </content>
    <updated>2026-10-01T22:37:02Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp4ahfjtvsqx47hlt8p62l6q3m9wwn2578z30xa9nht4kw6sgt8vgzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw2j04cm</id>
    
      <title>Nostr event nevent1qqsp4ahfjtvsqx47hlt8p62l6q3m9wwn2578z30xa9nht4kw6sgt8vgzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw2j04cm</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp4ahfjtvsqx47hlt8p62l6q3m9wwn2578z30xa9nht4kw6sgt8vgzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw2j04cm" />
    <content type="html">
      
    </content>
    <updated>2026-09-24T18:11:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqd6fgrzvt5ks05j0mnlwfktqqur3z3fch3la6fvqyr3snvwqu0lgzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw86vzgh</id>
    
      <title>Nostr event nevent1qqsqd6fgrzvt5ks05j0mnlwfktqqur3z3fch3la6fvqyr3snvwqu0lgzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw86vzgh</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqd6fgrzvt5ks05j0mnlwfktqqur3z3fch3la6fvqyr3snvwqu0lgzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw86vzgh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx9f05rcwkv32snswg8ldtj8x6r40vwp43655u23s5g8ac90h23gseq7s8h&#39;&gt;nevent1q…7s8h&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://njump.me/nevent1qqs8pc7efjsmrgkwr9w3npymnhddp67hf8555vcf9p3p3pfzj5rtugspzemhxue69uhhyetvv9ujucnfw3jx2ann9e68wq3q78k6vvt0760wmf9lffrjpv2846973ev4flqdkn7jy89ur2huc4qqxpqqqqqqz6d23qk&#34;&gt;https://njump.me/nevent1qqs8pc7efjsmrgkwr9w3npymnhddp67hf8555vcf9p3p3pfzj5rtugspzemhxue69uhhyetvv9ujucnfw3jx2ann9e68wq3q78k6vvt0760wmf9lffrjpv2846973ev4flqdkn7jy89ur2huc4qqxpqqqqqqz6d23qk&lt;/a&gt;
    </content>
    <updated>2024-09-08T01:08:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8t45vakv8lhfh90nrj9rffd5zyu4cua68w5pyynuwwpast5g9u9gzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwmahhwa</id>
    
      <title type="html">Eu tenho AdguardHome e Starlink aqui, mesmo assim não consigo ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8t45vakv8lhfh90nrj9rffd5zyu4cua68w5pyynuwwpast5g9u9gzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwmahhwa" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd7ewerfcpmvv9ywtcf362rzd7vcdjjkh2zzuzu2w7zvgxydxv85gcfkvas&#39;&gt;nevent1q…kvas&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Eu tenho AdguardHome e Starlink aqui, mesmo assim não consigo acessar senão por VPN. Achei que por ter o server de DNS em casa conseguiria...
    </content>
    <updated>2024-09-08T00:45:25Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx9f05rcwkv32snswg8ldtj8x6r40vwp43655u23s5g8ac90h23gszyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw76kqj3</id>
    
      <title type="html">O @npub178k…aay5 parece que estava empenhado em algo que ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx9f05rcwkv32snswg8ldtj8x6r40vwp43655u23s5g8ac90h23gszyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw76kqj3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2ntksp6sg4jemywjaag78y0p0v0spjd3fddnmtz3p5zz6al3wc8ske5ck9&#39;&gt;nevent1q…5ck9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;O &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub178k6vvt0760wmf9lffrjpv2846973ev4flqdkn7jy89ur2huc4qqazaay5&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;doutorcaleb&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub178k…aay5&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; parece que estava empenhado em algo que possibilitaria isso. 
    </content>
    <updated>2024-09-08T00:42:02Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp0e8s2r4ythl6kng2cmycazepnfdvlf6xej0af6tlgfg5gfs053szyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw4x5crh</id>
    
      <title type="html">O gengivão é uma vergonha.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp0e8s2r4ythl6kng2cmycazepnfdvlf6xej0af6tlgfg5gfs053szyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uw4x5crh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv04kaqlu6zputff7add2assz54fwgghkdz4y7f06fxjsc6vfdp6ctak04x&#39;&gt;nevent1q…k04x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;O gengivão é uma vergonha. 
    </content>
    <updated>2024-09-01T00:36:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswxj3tmmmaue5mq6mgw42jqcyyum3zkhlatk0f2xffc7z30y4a09gzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwczarzd</id>
    
      <title type="html">Faz bumpfee e aumenta o valor da taxa que vc colocou.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswxj3tmmmaue5mq6mgw42jqcyyum3zkhlatk0f2xffc7z30y4a09gzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwczarzd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsftnpz4kkn0wsdl8qrnf26vmkym8y0ecnzu8xyjv9rtdwdeh2atugyuxdfp&#39;&gt;nevent1q…xdfp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Faz bumpfee e aumenta o valor da taxa que vc colocou. 
    </content>
    <updated>2024-06-13T17:18:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2lxpjqj0rq8ps4q73x5q5xgdfdj0h9acvjwfftcrdv5h9zatqwhqzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwe6e0gg</id>
    
      <title type="html">Torres, se vc não investir nessa merda, ela nunca vai vingar.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2lxpjqj0rq8ps4q73x5q5xgdfdj0h9acvjwfftcrdv5h9zatqwhqzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwe6e0gg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqste2qpx80n3p6jpqpta2gqmf59uhhtrnurneesvh0q8sf2kdzsjqgycupqr&#39;&gt;nevent1q…upqr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Torres, se vc não investir nessa merda, ela nunca vai vingar. 
    </content>
    <updated>2024-06-08T00:53:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2f3la527ghr8dkyrhzyx6k2ma7u724tqnur803n3swns74y45w4qzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwukse7c</id>
    
      <title type="html">Você mudou bastante depois da conversa com o Renato Amoêdo.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2f3la527ghr8dkyrhzyx6k2ma7u724tqnur803n3swns74y45w4qzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwukse7c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8pc7efjsmrgkwr9w3npymnhddp67hf8555vcf9p3p3pfzj5rtugslp7kzu&#39;&gt;nevent1q…7kzu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Você mudou bastante depois da conversa com o Renato Amoêdo.
    </content>
    <updated>2024-06-05T20:46:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgr9kzq6j43q2aultqcwhwy5crskx27lfcj6xzahpa9qx7t967j2qzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwmy7yyj</id>
    
      <title type="html">#photostr #photonostr ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgr9kzq6j43q2aultqcwhwy5crskx27lfcj6xzahpa9qx7t967j2qzyrrf4fg4m8y8uvn5ymfc39x6x2x72l5vavn7xaydtuca76fdac5uwmy7yyj" />
    <content type="html">
      #photostr #photonostr&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/7be7f56582c724f81c45145ef0b230e7de84e27845b84166d8a31ff26028ee8d.jpg&#34;&gt; 
    </content>
    <updated>2024-05-10T21:13:33Z</updated>
  </entry>

</feed>