-

@ Anthony Accioly
2025-06-12 13:40:43
Eu entendo o trade-off e a dificuldade de evoluir sem desagradar usuários e quebrar o que já está lá (o Haven está para completar um ano e já estou lidando com situações assim. Vou precisar lançar uma v2 não backwards compatible em breve). Eu sei que o que estou falando provavelmente não consid34w uma série de constraints arquiteturais do próprio Amethyst, mas na sua pele eu atacaria isso com o famoso exercício do "carpaccio de elefante".
Passo 1: Faça todas as milhares de setinhas do Amethyst para read e write funcionarem. Adicione as setinhas mesmo nos relays de Inbox, Outbox, DMs etc. Nesse ponto usuários como eu podem usar as opções de configuração para parar o self-spamming nos próprios Relays deles 🤣. Ah.. adicione setinhas e opções de tempo para salvar drafts também, pois drafts são uma das coisas que estão spammeando infinitamente os relays.
Passo 2: Não mexa nas configurações dos usuário atuais por enquanto (i.e. a galera que está mijando fora do pinico em todos os relays que existem vai continuar mijando fora do pinico, bem como lendo uma firehose com todos os eventos do Nostr e mais alguns). Faça mais algumas maratonas ajudando usuários a configurarem relays "corretamente". Mostrando a diferença que isso faz em performance, bandwidth, bateria, etc. Você já fez isso várias vezes no passado, mas é um trabalho contínuo de educação.
Passo 3: Mude o código para que novos relays específicos (E.g., inboxes e outboxes adicionados kind 10002, DM relays no kind 10050, etc) já entrem com as "setinhas" corretas, e.g., novos relays adicionados ao Kind 10050 só escrevem e leem eventos NIP-17, etc. Quem quiser o comportamento antigo pode ir lá, adicionar o mesmo relay na seção de relays gerais e clicar em todas as setinhas que quiser.
Passo 4: Avise para as pessoas que daqui a 6 meses ou um 1 ano ou sei lá quando você vai remover as setinhas e a seção de relays gerais. Espero o dobro do tempo e aí sim faça usso.
O que eu quero dizer é, se clientes como o Amethyst empurrarem os novos padrões aos poucos, isso não vai desagradar os usuários. E com o tempo, conforme a galera for mexendo nas configurações de relays, criando novas chaves, etc todo mundo vai migrando para os novos padrões. Aos poucos essa diferença entre Outbox model e companhia vs ler e escrever de / para todos os relays do Universo vai diminuindo.
Mas para dar certo grandes como o Amethyst, Damus, Primal, etc tem que começar esse processo de migração "gentil" dos usuários. O Amethyst, apesar da entropia, ainda é um dos clientes mais ágeis e maleaveis entre os grandes. Se você não sinalizar a mudança eu duvido que os outros corram atrás.
Dito isso, entendo que mesmo nesse modelo de fatias finas, alguma dor de migração será necessária. Se não vamos ficar nesse loop de que não dá para ler/escrever nos relays corretos pois os clientes não estão lendo/escrevendo dos relays corretos para sempre.