NUEVO: Helius adquiere Light Protocol
los WebSockets mejorados de Solana de Helius ahora funcionan con LaserStream
Blog/Actualizaciones

Presentamos: WebSockets mejorados de próxima generación

Developer Experience Engineer0xIchigo en X0xIchigo en LinkedIn0xIchigo en GitHub
6 min de lectura

El streaming de datos en tiempo real es esencial para crear aplicaciones ágiles en Solana. Los WebSockets han sido durante mucho tiempo el protocolo preferido para habilitar una comunicación persistente y bidireccional, reemplazando el sondeo HTTP ineficiente por una sola conexión.

Aunque los WebSockets son mejores que el sondeo HTTP tradicional, presentan muchos desafíos que pueden perjudicar la confiabilidad, algo especialmente dañino en entornos de alto rendimiento como Solana. Problemas que van desde desconexiones aleatorias hasta un filtrado inadecuado han obligado históricamente a los desarrolladores a dedicar mucho tiempo y esfuerzo a soluciones personalizadas, a menudo a costa de innovar en el producto principal.

En Helius, reconocemos desde hace tiempo estos problemas. Anteriormente presentamos los WebSockets mejorados, una opción más rápida y personalizable para transmitir actualizaciones de transacciones y cuentas. Sin embargo, a medida que nuestra infraestructura evolucionó, quedó claro que incluso estas mejoras no alcanzaban la resiliencia y el rendimiento posibles con Helius.

Nos entusiasma anunciar que los WebSockets mejorados ahora funcionan con la misma infraestructura que impulsa LaserStream, nuestro servicio de streaming gRPC de próxima generación, diseñado para ofrecer velocidad, simplicidad y tolerancia a fallos. 

Esta integración aporta confiabilidad de nivel gRPC a los streams de WebSocket en un formato nativo de JSON, elimina las conexiones frágiles y permite que los desarrolladores frontend se concentren en ofrecer la mejor UX posible.

Los desafíos de los WebSockets y las aplicaciones en tiempo real

Los WebSockets prometen una comunicación bidireccional persistente casi mágica: una sola conexión para enviar notificaciones, en lugar de consultar continuamente endpoints HTTP. Aunque suena bien, los WebSockets no están exentos de problemas:

1. Fragilidad de las conexiones y cargas elevadas

Los WebSockets mantienen conexiones TCP con estado y de larga duración. Esto los hace susceptibles a interrupciones por fallos momentáneos de red, tiempos de espera de proxies o servidores sobrecargados. 

Los tiempos de slot de 400 ms y el tráfico en ráfagas de Solana amplifican las vulnerabilidades de los WebSockets. Por ello, los desarrolladores se ven obligados a implementar lógica de reconexión personalizada, como retrocesos exponenciales y pings de latido, para mantener la disponibilidad.

2. Inundación de datos

Las suscripciones de WebSocket suelen devolver demasiados datos.

Las suscripciones nativas, como accountSubscribe, entregan streams sin filtrar y abruman a los desarrolladores con información innecesaria. Esto los obliga a filtrar del lado del cliente, lo que puede aumentar el uso de ancho de banda e introducir retrasos de procesamiento.

3. Escalabilidad y sobrecarga de recursos

Gestionar miles de conexiones simultáneas sobrecarga los recursos del servidor. Esto provoca fugas de memoria, cuellos de botella en la CPU, mayor complejidad en los balanceadores de carga y la necesidad de fragmentar las conexiones para administrar la carga.

Escalar WebSockets horizontalmente es especialmente difícil, y la mayoría de los equipos no tiene el tiempo, los recursos ni la experiencia necesarios para perfeccionarlo. 

4. Tiempo de desarrollo desviado de la innovación del producto

En conjunto, estos desafíos restan tiempo a la creación de nuevas funciones y aplicaciones diferenciadas. Esta ineficiencia es un costo oculto para el progreso en el dinámico ecosistema de Solana.

Estos desafíos persistentes hacen que los WebSockets estándar de Solana sean insuficientes para aplicaciones de nivel de producción, donde incluso las interrupciones más breves pueden traducirse en oportunidades perdidas o interfaces de usuario desactualizadas.

WebSockets mejorados de próxima generación

Presentamos los WebSockets mejorados, una versión de los WebSockets estándar de Solana optimizada con Geyser para ofrecer mejores suscripciones de cuentas y transacciones, con el fin de solucionar estas carencias. 

Incorporaron filtros potentes (por ejemplo, hasta 50,000 direcciones mediante accountInclude, accountExclude y accountRequired) y tiempos de respuesta más rápidos que los WebSockets tradicionales. Sin embargo, nuestra infraestructura de streaming de datos ha mejorado desde su lanzamiento original.

Los WebSockets mejorados ahora funcionan con la misma infraestructura que LaserStream: nuestro servicio de streaming gRPC de próxima generación, diseñado para ofrecer velocidad, confiabilidad y simplicidad.

Ahora puedes disfrutar de la confiabilidad de gRPC en una interfaz de WebSocket.

Las mejoras principales incluyen:

Resiliencia líder en su clase

Los WebSockets mejorados ahora transmiten simultáneamente desde varios nodos agregados con conmutación por error automática. Esto aumenta la resiliencia al eliminar los puntos únicos de fallo y garantiza la máxima disponibilidad.

Alto rendimiento

LaserStream está diseñado específicamente para transmitir datos con latencia ultrabaja. Ahora, los WebSockets mejorados se beneficiarán de nuestras últimas mejoras para ofrecer las notificaciones más rápidas posibles.

Streams optimizados para frontend

Los payloads JSON de los WebSockets mejorados, respaldados por una infraestructura actualizada, permiten a los desarrolladores frontend integrar streams de alta fidelidad directamente en navegadores, aplicaciones React y clientes móviles.

Cómo elegir la solución de streaming adecuada: una comparación

En Helius, ofrecemos distintos servicios de streaming de datos diseñados para casos de uso específicos, que detallamos a continuación. 

WebSockets mejorados

Los desarrolladores deberían usar WebSockets mejorados cuando:

  1. La latencia, la continuidad y la precisión no afectan el PnL, las ejecuciones ni el riesgo
  2. Quieres payloads JSON
  3. Te enfocas en la UX del consumidor sin complejidad de backend
Caso de usoEjemplos
UX frontend en tiempo real- Saldos de billeteras
- Paneles de portafolio
- Notificaciones dentro de la aplicación
- UX del consumidor

LaserStream

Los desarrolladores deberían usar LaserStream cuando:

  1. Cada milisegundo importa
  2. La latencia, la continuidad y la precisión afectan el PnL, las ejecuciones o el riesgo
  3. Necesitas capacidades de filtrado más avanzadas
  4. Necesitas una entrega sin interrupciones con repetición automática
  5. Necesitas recibir transacciones en distintos niveles de compromiso
Caso de usoEjemplos
Procesamiento de backend basado en eventos- Sistemas de trading y riesgo 
- Monitores de precios y flujo de órdenes
- Monitores de liquidaciones
- Motores entre plataformas

Shred Delivery

Los desarrolladores deberían usar Shred Delivery cuando:

  1. Necesitas señales sin procesar
  2. Tienes, o puedes crear, un pipeline personalizado de reconstrucción de shreds

Si quieres latencia a nivel de shred, pero no tienes un pipeline de reconstrucción de shreds, Preprocessed Transactions entrega en su lugar los shreds decodificados mediante WebSocket.

Caso de usoEjemplos
Captura de señales con latencia ultrabaja- HFT
- Arbitraje entre plataformas
- Compra rápida de tokens

En resumen:

  • Usa WebSockets mejorados para streams no críticos y fáciles de integrar en el frontend.
  • Usa LaserStream para ciclos de decisión en el backend donde las brechas de latencia o la continuidad de los datos afecten directamente las oportunidades.
  • Usa Shred Delivery cuando utilices un pipeline personalizado de reconstrucción de shreds para obtener las primeras señales de los shreds sin procesar.

Inicio rápido con WebSockets mejorados

Comenzar a usar WebSockets mejorados es sencillo. 

Para empezar, regístrate y obtén una clave API en la sección “API Keys”.

Solo tienes que conectarte a uno de nuestros endpoints, suscribirte mediante transactionSubscribe o accountSubscribe y comenzar a recibir streams filtrados y 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>

Ejemplo: monitorea nuevos pools de Raydium Launchpad

El siguiente script de Node.js es un ejemplo sencillo de cómo usar WebSockets mejorados en un entorno de producción para suscribirte al programa Launchpad de Raydium mediante transactionSubscribe y filtrar inicializaciones exitosas de pools a través del análisis de registros:

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');
});

Ejecuta el código anterior con:

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

El siguiente script transmitirá a la consola una tabla de pools recién lanzados y garantizará una entrega sin interrupciones, incluso bajo cargas elevadas.

Precios y medición

Como parte de nuestra inversión continua en latencia y confiabilidad, a partir del 16 de octubre de 2025, los nuevos planes medirán el uso de los WebSockets mejorados con la misma tarifa que LaserStream (es decir, 3 créditos por cada 0.1 MB de datos transmitidos).

Los planes Professional pueden comprar datos adicionales a una tarifa fija para cubrir las necesidades de streaming de datos de WebSockets mejorados o LaserStream.

Si ya tienes un plan, tus precios, límites y facturación permanecerán exactamente iguales. No necesitas hacer nada. 

Los WebSockets estándar no cambian y están disponibles tanto en planes gratuitos como de pago.

Mejora tus streams hoy

Confiabilidad, rendimiento y simplicidad: tus streams están listos para crecer contigo. Comienza a desarrollar con WebSockets mejorados hoy mismo. Regístrate, obtén una clave API y disfruta de una mayor confiabilidad en tus frontends.

Transmite datos de forma más inteligente e innova más rápido.

Suscríbete a Helius

Mantente al día con las novedades del desarrollo en Solana y recibe actualizaciones cuando publiquemos