notifyOn nos métodos WebSocket accountSubscribe e programSubscribe permite que uma inscrição ignore atualizações para contas que uma transação bloqueou para escrita, mas nunca escreveu. O mesmo filtro está disponível via gRPC — veja Filtragem notifyOn para a versão gRPC.
O problema: bloqueios de escrita geram atualizações duplicadas
No Solana, o validador emite uma atualização de conta para cada conta que uma transação bloqueia para escrita — mesmo quando nenhuma instrução realmente escreveu na conta, então seus lamports e dados permanecem inalterados. Para contas movimentadas, isso significa um fluxo constante de notificações duplicadas de “nada mudou” que consomem largura de banda sem trazer novas informações.Modos de filtro
notifyOn aceita um dos dois valores de string:
Dois detalhes importantes:
- Uma escrita de dados idênticos ainda conta como uma escrita e é entregue.
writefiltra toques apenas de bloqueio, não gravações que por acaso deixam os mesmos bytes. Na prática, essas gravações de dados idênticos são raras — menos de 5% das atualizações na maioria dos casos. - As atualizações que
writedescarta são duplicatas exatas do estado que você já recebeu. Se você depende de notificações como um sinal de “esta conta foi bloqueada por uma transação” (por exemplo, rastreamento de atividade), mantenha-se emlock.
Use no accountSubscribe
Adicione notifyOn ao objeto de configuração:
Use no programSubscribe
A mesma chave funciona no objeto de configuração programSubscribe, filtrando atualizações no-op em todas as contas que o programa possui:
"write" (sem distinção entre maiúsculas e minúsculas) opta por entrar. Qualquer outra coisa — ausente, um erro de digitação, um token desconhecido — resolve para lock, então um erro mantém você no caminho de todas as atualizações em vez de causar erro ou silenciosamente descartar dados.
Relacionados
accountSubscribe
Referência completa do método
accountSubscribe, incluindo notifyOn.programSubscribe
Referência completa do método
programSubscribe, incluindo notifyOn.Filtragem notifyOn (gRPC)
O mesmo filtro em contas do LaserStream gRPC.
Como Usar accountSubscribe
Guia para transmissão de atualizações de conta via WebSocket.