Skip to main content
preprocessedSubscribe transmite transações assinadas antes que atinjam o nível de compromisso processed, decodificadas a partir de shreds à medida que chegam ao validador, sem necessidade de infraestrutura de desfragmentação do seu lado. Este guia constrói um monitor que observa um programa de negociação pré-execução, remove duplicações do feed, permanece dentro do limite de backpressure do servidor e reconcilia com dados processados antes de agir.
Transações Pré-processadas estão disponíveis em todos os planos pagos e custam 0,1 créditos por mensagem, com até 10 conexões simultâneas por chave de API.

Defina a assinatura para seu alvo

Não há fluxo não filtrado: accountInclude e accountRequired devem nomear pelo menos uma conta entre elas. Para um monitor de negociação, inclua o programa contra o qual negocia e exclua o ruído que você pagaria de outra forma:
Os filtros combinam com AND, cada lista aceita até 5.000 endereços, e Helius resolve tabelas de lookup de endereços no lado do servidor, então uma conta carregada por meio de um ALT ainda corresponde. Para observar as interações de uma carteira específica com o programa, coloque ambos no campo accountRequired em vez disso.

Decodificar frames e remover duplicações por assinatura

As notificações chegam como frames binários: um prefixo de 73 bytes, seguido pela transação serializada em bincode. A assinatura está no prefixo, então você pode remover duplicações sem decodificar o corpo. O fluxo agrega várias fontes de pré-execução, e a mesma transação pode chegar mais de uma vez:
monitor.js

Mantenha o loop de recebimento mais rápido que o fluxo

Helius não armazena em buffer indefinidamente para consumidores lentos: se mais de 4.000 mensagens acumularem no lado do servidor, a conexão é fechada. Por isso o handler acima só lê o prefixo de 73 bytes e coloca na fila. A desserialização e a lógica de estratégia rodam em um loop separado:
Se a fila crescer sem limites, aperte os filtros. Transações descartadas do lado do cliente ainda custam 0,1 créditos cada e ainda contam para o limite de backpressure.

Reconcilie com dados processados

Uma transação pré-processada mostra o que o remetente tentou fazer, não o que aconteceu. Ela não traz status de execução, alterações de saldo ou registros, e pode falhar, ser descartada ou cair em um fork diferente. A entrega é feita com melhor esforço, sem replay histórico, então:
  • Reconcilie com transactionSubscribe em compromisso processed ou confirmed antes que sua estratégia registre qualquer coisa como fato.
  • Ao desconectar, reative a assinatura imediatamente e aceite a lacuna, pois não há replay para preenchê-la.
  • Se precisar do estado da conta em tempo real ao invés de intenções de transação, isso só existe pós-execução: use LaserStream gRPC em processed.

Guias relacionados

Referência de preprocessedSubscribe

Layout completo de payload, regras de filtro, backpressure, e preços

Negocie em Pré-confirmações

O sinal de transação mais cedo que Helius oferece, diretamente do scheduler