NOVO: Helius adquire a Light Protocol
os WebSockets aprimorados da Helius para Solana agora usam a infraestrutura do LaserStream
Blog/Atualizações

Apresentamos: WebSockets aprimorados de última geração

Developer Experience Engineer0xIchigo no X0xIchigo no LinkedIn0xIchigo no GitHub
6 min de leitura

O streaming de dados em tempo real é essencial para criar aplicações responsivas na Solana. Há muito tempo, WebSockets são o protocolo preferido para viabilizar uma comunicação persistente e bidirecional, substituindo o polling HTTP ineficiente por uma única conexão.

Embora sejam melhores que o polling HTTP tradicional, WebSockets apresentam vários desafios que podem comprometer a confiabilidade, o que é prejudicial em ambientes de alto throughput como a Solana. Problemas que vão de desconexões aleatórias à filtragem inadequada historicamente obrigam os desenvolvedores a dedicar tempo e esforço significativos a soluções personalizadas, muitas vezes em detrimento da inovação do produto principal.

Na Helius, reconhecemos esses pontos problemáticos há muito tempo. No passado, lançamos os WebSockets aprimorados, uma opção mais rápida e personalizável para transmitir atualizações de transações e contas. Porém, à medida que nossa infraestrutura evoluiu, ficou claro que mesmo essas melhorias ainda não alcançavam a resiliência e o desempenho possíveis com a Helius.

Temos o prazer de anunciar que os WebSockets aprimorados agora usam a mesma infraestrutura do LaserStream, nosso serviço de streaming gRPC de última geração, criado para oferecer velocidade, simplicidade e tolerância a falhas. 

Essa integração oferece aos streams de WebSocket a confiabilidade do gRPC em um formato nativo de JSON, elimina conexões frágeis e permite que os desenvolvedores de frontend se concentrem em oferecer a melhor experiência de usuário possível.

Os desafios dos WebSockets e das aplicações em tempo real

WebSockets prometem a mágica de uma comunicação persistente e bidirecional: uma única conexão para notificações push, em vez de consultas contínuas a endpoints HTTP. Embora isso pareça ótimo, WebSockets também apresentam problemas:

1. Fragilidade da conexão e carga elevada

WebSockets mantêm conexões TCP com estado e de longa duração. Isso os torna suscetíveis a interrupções causadas por instabilidades na rede, timeouts de proxy ou servidores sobrecarregados. 

Os slots de 400 ms e os picos de tráfego da Solana amplificam as vulnerabilidades dos WebSockets. Por isso, os desenvolvedores precisam implementar lógica de reconexão personalizada, como backoffs exponenciais e pings de heartbeat, para manter a disponibilidade.

2. Excesso de dados

As assinaturas de WebSocket muitas vezes retornam dados demais.

Assinaturas nativas, como accountSubscribe, fornecem streams sem filtros e sobrecarregam os desenvolvedores com dados irrelevantes. Isso obriga os desenvolvedores a filtrar no lado do cliente, o que pode aumentar o uso de banda e causar atrasos no processamento.

3. Escalabilidade e sobrecarga de recursos

Gerenciar milhares de conexões simultâneas sobrecarrega os recursos do servidor, causando vazamentos de memória, gargalos de CPU, maior complexidade nos balanceadores de carga e a necessidade de fragmentar conexões para administrar a carga.

Escalar WebSockets horizontalmente é notoriamente difícil, e a maioria das equipes não tem tempo, recursos ou conhecimento especializado para fazer isso com perfeição. 

4. Tempo dos desenvolvedores desviado da inovação de produto

Em conjunto, esses desafios consomem ciclos que poderiam ser usados para criar aplicações e recursos novos e diferenciados. Essa ineficiência é um custo oculto para o progresso no ecossistema dinâmico da Solana.

Esses desafios persistentes tornam os WebSockets padrão da Solana inadequados para aplicações de nível de produção, nas quais até mesmo as interrupções mais breves podem representar oportunidades perdidas ou interfaces desatualizadas.

WebSockets aprimorados de última geração

Lançamos os WebSockets aprimorados — uma versão dos WebSockets padrão da Solana otimizada pelo Geyser para oferecer melhores assinaturas de contas e transações — a fim de solucionar essas limitações. 

Eles introduziram filtros avançados (por exemplo, até 50.000 endereços por meio de accountInclude, accountExclude e accountRequired) e tempos de resposta menores que os WebSockets tradicionais. No entanto, nossa infraestrutura de streaming de dados evoluiu desde o lançamento original.

Os WebSockets aprimorados agora usam a mesma infraestrutura do LaserStream — nosso serviço de streaming gRPC de última geração, criado para oferecer velocidade, confiabilidade e simplicidade.

Agora você pode ter a confiabilidade do gRPC em uma camada de WebSocket.

Entre as principais melhorias estão:

Resiliência líder do setor

Agora, os WebSockets aprimorados transmitem dados simultaneamente de vários nós agregados, com failovers automáticos. Isso aumenta a resiliência ao eliminar qualquer ponto único de falha e garante a máxima disponibilidade.

Alto desempenho

O LaserStream foi desenvolvido especificamente para streaming de dados com latência ultrabaixa. Agora, os WebSockets aprimorados também se beneficiam das nossas melhorias mais recentes para fornecer notificações com a maior velocidade possível.

Streams otimizados para frontend

Os payloads JSON dos WebSockets aprimorados, respaldados por uma infraestrutura atualizada, permitem que os desenvolvedores de frontend integrem streams de alta fidelidade diretamente em navegadores, aplicações React e clientes móveis.

Como escolher a solução de streaming certa: uma comparação

Na Helius, temos diferentes serviços de streaming de dados criados para casos de uso específicos, descritos abaixo. 

WebSockets aprimorados

Os desenvolvedores devem usar WebSockets aprimorados quando:

  1. Latência, continuidade e correção não afetam PnL, execuções ou risco
  2. Você quer payloads JSON
  3. Seu foco é a experiência do consumidor, sem complexidade de backend
Caso de usoExemplos
Experiência de frontend em tempo real- Saldos de carteiras
- Painéis de portfólio
- Notificações no aplicativo
- Experiência do consumidor

LaserStream

Os desenvolvedores devem usar LaserStream quando:

  1. Cada milissegundo é importante
  2. Latência, continuidade e correção afetam PnL, execuções e/ou risco
  3. Você precisa de recursos de filtragem mais avançados
  4. Você precisa de entrega sem lacunas com replay automático
  5. Você precisa receber transações em diferentes níveis de compromisso
Caso de usoExemplos
Processamento de backend orientado a eventos- Sistemas de negociação e risco 
- Monitores de preços e fluxo de ordens
- Monitores de liquidação
- Mecanismos entre diferentes plataformas

Shred Delivery

Os desenvolvedores devem usar o Shred Delivery quando:

  1. Você precisa de sinais brutos
  2. Você tem ou pode criar um pipeline personalizado de reconstrução de shreds

Se você quer a latência no nível de shred, mas não tem um pipeline de reconstrução de shreds, o Preprocessed Transactions fornece os shreds decodificados via WebSocket.

Caso de usoExemplos
Captura de sinais com latência ultrabaixa- HFTs
- Arbitragem entre diferentes plataformas
- Sniping de tokens

Em resumo:

  • Use WebSockets aprimorados para streams não críticos e adequados para frontend.
  • Use LaserStream para ciclos de decisão no backend em que lacunas de latência ou a continuidade dos dados afetam diretamente as oportunidades.
  • Use Shred Delivery quando você utiliza um pipeline personalizado de reconstrução de shreds para obter os primeiros sinais de shreds brutos.

Início rápido com WebSockets aprimorados

Começar a usar os WebSockets aprimorados é simples. 

Para começar, cadastre-se e obtenha uma chave de API na seção “API Keys”.

Basta se conectar a um dos nossos endpoints, criar uma assinatura via transactionSubscribe ou accountSubscribe e começar a receber streams filtrados e resilientes. 

Endpoints

  • Mainnet: wss://atlas-mainnet.helius-rpc.com/?api-key=<YOUR_API_KEY>
  • Mainnet (Gatekeeper Beta): wss://beta.helius-rpc.com/?api-key=<YOUR_API_KEY>
  • Devnet: wss://atlas-devnet.helius-rpc.com/?api-key=<YOUR_API_KEY>

Exemplo: monitore novos pools do Raydium Launchpad

O script Node.js a seguir é um exemplo simples de como usar WebSockets aprimorados em um ambiente de produção para assinar o programa Launchpad da Raydium usando transactionSubscribe e filtrar inicializações de pools bem-sucedidas por meio da análise de logs:

Código
import WebSocket from 'ws';

const API_KEY = process.env.HELIUS_API_KEY; // Set your API key as an env var
const WS_URL = `wss://atlas-mainnet.helius-rpc.com/?api-key=${API_KEY}`;
const
RAYDIUM_LAUNCHPAD_PROG
= '
LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj
';

const ws = new WebSocket(WS_URL);

ws.on('open', () => {
  console.log('Connected to LaserStream-Powered Enhanced WebSockets!');
  ws.send(JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'transactionSubscribe',
    params: [
      {
        failed: false,
        accountInclude: [
RAYDIUM_LAUNCHPAD_PROG
]
      },
      {
        commitment: 'confirmed',
        encoding: 'jsonParsed',
        transactionDetails: 'full',
        maxSupportedTransactionVersion: 0
      }
    ]
  }));

  // Optional heartbeat ping
  setInterval(() => {
    if (ws.readyState === WebSocket.OPEN) {
      ws.send(JSON.stringify({ jsonrpc: '2.0', id: Date.now(), method: 'ping' }));
    }
  }, 30000);
});

ws.on('message', (data) => {
  try {
    const payload = JSON.parse(data.toString());
    const result = payload.params?.result;
    if (!result) return;

    // Filter for init logs
    const logs = result.transaction.meta.logMessages || [];
    if (!logs.some(log => log.includes('Instruction: Initialize'))) return;

 const keys = result.transaction.transaction.message.accountKeys.map(k => k.pubkey);
    console.table({
      Signature: result.signature,
      Creator: keys[1],  // From IDL: accounts[1] is creator
      BaseMint: keys[7], // From IDL: base_mint is around index 7 in initialize accounts
      Slot: result.slot
    });

  } catch (err) {
    console.error('Message parse error:', err);
  }
});

ws.on('error', (err) => console.error('WebSocket error:', err));
ws.on('close', () => {
  console.log('Disconnected');
});

Execute o código acima com:

Código
export HELIUS_API_KEY=your-api-key-here
node raydium-launchpad-stream.js

O script a seguir transmitirá para o console uma tabela com os pools recém-lançados, garantindo uma entrega sem lacunas mesmo sob carga elevada.

Preços e medição de uso

Como parte do nosso investimento contínuo em latência e confiabilidade, a partir de 16 de outubro de 2025, os novos planos contabilizarão o uso dos WebSockets aprimorados pela mesma tarifa do LaserStream (ou seja, 3 créditos por 0,1 MB de dados transmitidos).

Os planos Professional podem comprar dados adicionais por uma tarifa fixa, que podem ser usados para atender às necessidades de streaming de dados dos WebSockets aprimorados ou do LaserStream.

Se você já está em um plano, seus preços, limites e cobranças permanecem exatamente iguais. Nenhuma ação é necessária. 

Os WebSockets padrão não mudaram e estão disponíveis tanto nos planos gratuitos quanto nos pagos.

Eleve o nível dos seus streams hoje mesmo

Confiabilidade, desempenho e simplicidade: seus streams estão prontos para crescer com você. Comece hoje mesmo a desenvolver com WebSockets aprimorados. Cadastre-se, obtenha uma chave de API e leve mais confiabilidade aos seus frontends.

Faça streams de forma mais inteligente e inove mais rápido.

Assine a Helius

Acompanhe as novidades mais recentes do desenvolvimento Solana e receba atualizações quando publicarmos