Skip to main content
O filtro notifyOn do LaserStream permite que uma assinatura de conta gRPC ignore atualizações para contas que uma transação bloqueou para escrita mas nunca escreveu. O mesmo filtro está disponível nos métodos WebSocket accountSubscribe e programSubscribe — veja Filtragem notifyOn sobre WebSocket.

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 de dois valores: Dois detalhes que vale a pena saber:
  • Uma escrita de dados idênticos ainda conta como escrita e é entregue. write filtra apenas toques de bloqueio, não escritas que deixam os mesmos bytes. Na prática, essas escritas de dados idênticos são raras — menos de 5% das atualizações na maioria dos casos.
  • As atualizações que write elimina são duplicatas exatas do estado que você já recebeu. Se você depende de atualizações como um sinal de “esta conta foi bloqueada por uma transação” (por exemplo, rastreamento de atividade), permaneça em lock.
Assinaturas que omitem o campo continuam a se comportar exatamente como antes, então é seguro adicioná-lo a um filtro existente.

Use no LaserStream gRPC

Defina notifyOn em um filtro de contas no seu SubscribeRequest:
No SDK Rust, defina notify_on: NotifyOn::Write as i32. No nível da rede, este é o campo notify_on de SubscribeRequestFilterAccounts (proto tag 31), com valores enum NOTIFY_ON_LOCK (0, o padrão) e NOTIFY_ON_WRITE (1). Veja a referência de Solicitação de Inscrição para cada campo de filtro de contas. No gRPC, notifyOn é uma extensão Helius disponível através do Helius LaserStream SDK — clientes Yellowstone padrão não expõem o campo.

Relacionados

Referência de Solicitação de Inscrição

Todo campo de filtro de contas gRPC, incluindo notifyOn.

Filtragem notifyOn (WebSocket)

O mesmo campo notifyOn em accountSubscribe e programSubscribe.

Guia de Assinaturas de Contas

Estratégias de filtragem e exemplos executáveis de monitoramento de contas via gRPC.

Filtragem de Conta de Token (ATA)

Combinando transações que tocam nas contas de token que uma carteira possui.