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.
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:
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: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
transactionSubscribeem compromissoprocessedouconfirmedantes 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