Beta Público. As transações pré-processadas fazem parte da família de produtos Shred Delivery da Helius. Elas estão disponíveis para qualquer assinante do plano Professional ou superior e são medidas em 20 créditos por 1 MB.Em média, as transações pré-processadas chegam ~8 ms mais rápido que o nível de compromisso
processed, ao custo de metadados de execução (veja compromissos abaixo).processed em média.
Este guia explica quando usar transações pré-processadas, quais dados estão disponíveis e como se inscrever nelas usando os SDKs LaserStream (que também servem transações pré-processadas pela mesma conexão gRPC).
Onde as transações pré-processadas se encaixam no ciclo de vida
Na arquitetura do Solana, as transações passam por várias etapas antes de serem totalmente processadas:- Recepção de Fragmentos → O validador recebe fragmentos de transação (fragmentos de dados). ← Fragmentos brutos (UDP) da Helius são entregues aqui.
- Decodificação de Fragmentos → Fragmentos são decodificados em transações brutas. ← Transações pré-processadas disponíveis aqui.
- Execução de Transação → A transação é executada pelo tempo de execução.
- Geração de Metadados → Saldo pré/pós, logs e informações de erro são computados.
- Compromisso → A transação atinge o estado processado/confirmado/finalizado. ← LaserStream gRPC e LaserStream WebSocket entregam aqui.
Garantias de Entrega de Melhor Esforço
A entrega de transações pré-processadas é de melhor esforço, não garantida. Nosso alvo é uma taxa de entrega de 99,99%, mas algumas transações podem ser perdidas durante:- Atualizações de infraestrutura e redistribuições
- Problemas de rede ou problemas de conectividade do validador
- Casos limites na decodificação ou processamento de fragmentos
Que dados estão disponíveis?
As transações pré-processadas incluem a mensagem completa da transação, mas faltam metadados de execução:Dados Disponíveis
- ✅ Assinatura da transação - Identificador único da transação
- ✅ Chaves de conta - Todas as contas referenciadas pela transação
- ✅ Instruções - Dados completos de instrução e chamadas de programa
- ✅ Recent blockhash - Referência de expiração da transação
- ✅ Assinaturas - Todas as assinaturas de transação
- ✅ É transação de voto - Se esta é uma transação de voto
- ✅ Número do slot - Qual slot continha esta transação
Dados Ausentes
- ❌ Metadados da transação - Mudanças de saldos de token, saldos pré/pós, status da transação
- ❌ Erros de transação - Não podemos determinar se a transação falhou
- ❌ Instruções internas - Invocações entre programas (CPIs) não estão incluídas
- ❌ Mensagens de log - Logs de programa são gerados durante a execução
- ❌ Unidades de computação consumidas - Métricas de execução indisponíveis
Suporte a SDK e Requisitos de Versão
As assinaturas de transação pré-processadas são suportadas em todos os SDKs LaserStream:JavaScript/TypeScript
Versão 0.2.8 ou mais recente
Rust
Versão 0.1.5 ou mais recente
Go
Versão 0.1.0 ou mais recente
Exemplos de Implementação
JavaScript/TypeScript
O SDK de JavaScript fornece uma funçãosubscribePreprocessed dedicada com reconexão automática:
Rust
O SDK de Rust fornece desempenho nativo:Go
O SDK de Go fornece interfaces idiomáticas do Go:Estrutura de Inscrição e Filtragem
Estrutura de Requisição
A requisição de inscrição pré-processada segue uma estrutura semelhante às inscrições padrão, mas com um conjunto focado de filtros:Estrutura de Resposta
As atualizações chegam com a mensagem completa da transação e metadados básicos:transaction.transaction contém a estrutura completa da transação Solana, incluindo:
- Mensagem - Chaves de conta, instruções, recent blockhash
- Assinaturas - Todas as assinaturas de transação
- Consultas de tabela de endereços - Para transações versionadas
meta contendo os resultados de execução.