NOUVEAU : Helius acquiert Light Protocol
les Enhanced WebSockets Solana de Helius reposent désormais sur LaserStream
Blog/Actualités

Présentation des Enhanced WebSockets nouvelle génération

Developer Experience Engineer0xIchigo sur X0xIchigo sur LinkedIn0xIchigo sur GitHub
6 min de lecture

Le streaming de données en temps réel est essentiel pour créer des applications réactives sur Solana. Les WebSockets constituent depuis longtemps le protocole de référence pour établir une communication bidirectionnelle persistante, remplaçant les requêtes HTTP répétées et inefficaces par une connexion unique.

Bien que les WebSockets soient préférables aux requêtes HTTP traditionnelles, ils présentent de nombreux défis susceptibles de compromettre la fiabilité, ce qui est particulièrement problématique dans les environnements à haut débit comme Solana. Des déconnexions aléatoires au filtrage insuffisant, ces problèmes ont toujours contraint les développeurs à consacrer beaucoup de temps et d’efforts à des solutions personnalisées, souvent au détriment de l’innovation produit.

Chez Helius, nous avons identifié ces difficultés depuis longtemps. Nous avons précédemment lancé les Enhanced WebSockets, une solution plus rapide et plus personnalisable pour diffuser les mises à jour des transactions et des comptes. Mais à mesure que notre infrastructure évoluait, il est devenu évident que même ces améliorations n’atteignaient pas encore les niveaux de résilience et de performance possibles avec Helius.

Nous sommes heureux d’annoncer que les Enhanced WebSockets reposent désormais sur la même infrastructure que LaserStream, notre service de streaming gRPC nouvelle génération conçu pour la vitesse, la simplicité et la tolérance aux pannes. 

Cette intégration apporte aux flux WebSocket une fiabilité de niveau gRPC dans un format JSON natif, élimine les connexions fragiles et permet aux développeurs frontend de se concentrer sur la meilleure expérience utilisateur possible.

Les défis des WebSockets et des applications en temps réel

Les WebSockets promettent la magie d’une communication bidirectionnelle persistante : une connexion unique pour les notifications push au lieu d’interroger continuellement des endpoints HTTP. Aussi séduisant que cela puisse paraître, les WebSockets ne sont pas exempts de problèmes :

1. Fragilité des connexions et charge élevée

Les WebSockets maintiennent des connexions TCP avec état et de longue durée. Ils sont donc vulnérables aux interruptions causées par des perturbations réseau, des expirations de délai des proxys ou des serveurs surchargés. 

Les slots de 400 ms de Solana et les pics de trafic accentuent les vulnérabilités des WebSockets. Les développeurs doivent donc mettre en œuvre une logique de reconnexion personnalisée, notamment des délais exponentiels et des pings de contrôle, pour garantir la disponibilité.

2. Afflux massif de données

Les abonnements WebSocket renvoient souvent trop de données.

Les abonnements natifs, comme accountSubscribe, fournissent des flux non filtrés qui submergent les développeurs de données inutiles. Ceux-ci doivent alors effectuer le filtrage côté client, ce qui peut augmenter l’utilisation de la bande passante et entraîner des délais de traitement.

3. Évolutivité et surcharge des ressources

La gestion de milliers de connexions simultanées sollicite fortement les ressources des serveurs, entraînant des fuites de mémoire, des goulots d’étranglement au niveau du CPU, une complexité accrue des répartiteurs de charge et la nécessité de répartir les connexions en shards pour gérer la charge.

La mise à l’échelle horizontale des WebSockets est notoirement difficile, et la plupart des équipes ne disposent ni du temps, ni des ressources, ni de l’expertise nécessaires pour la maîtriser. 

4. Du temps de développement détourné de l’innovation produit

Ensemble, ces défis réduisent le temps consacré à la création de fonctionnalités et d’applications nouvelles et différenciées. Cette inefficacité constitue un coût caché qui freine le progrès dans l’écosystème Solana, en évolution rapide.

Ces difficultés persistantes rendent les WebSockets Solana standard inadaptés aux applications de production, où même les interruptions les plus brèves peuvent entraîner des occasions manquées ou des interfaces obsolètes.

Enhanced WebSockets nouvelle génération

Nous avons lancé les Enhanced WebSockets, une version des WebSockets Solana standard optimisée par Geyser pour améliorer les abonnements aux comptes et aux transactions, afin de combler ces lacunes. 

Cette solution a apporté des filtres puissants (par exemple, jusqu’à 50 000 adresses via accountInclude, accountExclude et accountRequired), ainsi que des temps de réponse plus rapides que les WebSockets traditionnels. Cependant, notre infrastructure de streaming de données s’est améliorée depuis son lancement initial.

Les Enhanced WebSockets reposent désormais sur la même infrastructure que LaserStream, notre service de streaming gRPC nouvelle génération, conçu pour la vitesse, la fiabilité et la simplicité.

Profitez désormais de la fiabilité de gRPC dans une enveloppe WebSocket.

Les principales améliorations comprennent :

Une résilience hors pair

Les Enhanced WebSockets diffusent désormais simultanément les données depuis plusieurs nœuds agrégés, avec des basculements automatiques. Ils renforcent ainsi la résilience en éliminant tout point de défaillance unique et garantissent une disponibilité maximale.

Hautes performances

LaserStream est spécialement conçu pour le streaming de données à très faible latence. Les Enhanced WebSockets bénéficient désormais de nos dernières améliorations pour fournir les notifications les plus rapides possible.

Des flux optimisés pour le frontend

Les payloads JSON des Enhanced WebSockets, soutenus par une infrastructure modernisée, permettent aux développeurs frontend d’intégrer directement des flux haute fidélité dans les navigateurs, les applications React et les clients mobiles.

Choisir la bonne solution de streaming : comparaison

Chez Helius, nous proposons différents services de streaming de données conçus pour des cas d’usage spécifiques, présentés ci-dessous. 

Enhanced WebSockets

Les développeurs doivent utiliser les Enhanced WebSockets lorsque :

  1. La latence, la continuité et l’exactitude n’affectent pas le PnL, les exécutions ou le risque
  2. Vous souhaitez recevoir des payloads JSON
  3. Vous privilégiez l’expérience utilisateur sans la complexité du backend
Cas d’usageExemples
Expérience utilisateur frontend en temps réel- Soldes des portefeuilles
- Tableaux de bord de portefeuille
- Notifications intégrées à l’application
- Expérience utilisateur grand public

LaserStream

Les développeurs doivent utiliser LaserStream lorsque :

  1. Chaque milliseconde compte
  2. La latence, la continuité et l’exactitude affectent le PnL, les exécutions et/ou le risque
  3. Vous avez besoin de fonctionnalités de filtrage plus avancées
  4. Vous avez besoin d’une livraison sans interruption avec relecture automatique
  5. Vous devez recevoir les transactions à différents niveaux de commitment
Cas d’usageExemples
Traitement backend piloté par les événements- Systèmes de trading et de gestion des risques 
- Outils de suivi des prix et des flux d’ordres
- Outils de surveillance des liquidations
- Moteurs interplateformes

Shred Delivery

Les développeurs doivent utiliser Shred Delivery lorsque :

  1. Vous avez besoin de signaux bruts
  2. Vous disposez d’un pipeline personnalisé de reconstitution des shreds, ou pouvez en créer un

Si vous souhaitez bénéficier d’une latence au niveau des shreds sans disposer d’un pipeline de reconstitution, Preprocessed Transactions transmet les shreds décodés via WebSocket.

Cas d’usageExemples
Capture de signaux à très faible latence- Trading haute fréquence
- Arbitrage interplateformes
- Sniping de tokens

En résumé :

  • Utilisez les Enhanced WebSockets pour les flux non critiques adaptés au frontend.
  • Utilisez LaserStream pour les boucles de décision backend lorsque les écarts de latence ou la continuité des données ont un impact direct sur les opportunités.
  • Utilisez Shred Delivery si vous exploitez un pipeline personnalisé de reconstitution des shreds afin d’obtenir au plus tôt les signaux issus des shreds bruts.

Démarrage rapide avec les Enhanced WebSockets

La prise en main des Enhanced WebSockets est simple. 

Pour commencer, inscrivez-vous et obtenez une clé API dans la section « API Keys ».

Connectez-vous simplement à l’un de nos endpoints, abonnez-vous via transactionSubscribe ou accountSubscribe, puis commencez à recevoir des flux filtrés et résilients. 

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>

Exemple : surveiller les nouveaux pools Raydium Launchpad

Le script Node.js suivant montre simplement comment utiliser les Enhanced WebSockets dans un environnement de production pour s’abonner au programme Launchpad de Raydium avec transactionSubscribe, afin de filtrer les initialisations de pools réussies grâce à l’analyse des logs :

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

Exécutez le code ci-dessus avec :

Code
export HELIUS_API_KEY=your-api-key-here
node raydium-launchpad-stream.js

Le script suivant diffusera dans la console un tableau des pools récemment lancés, tout en garantissant une livraison sans interruption, même en cas de charge élevée.

Tarification et mesure de l’utilisation

Dans le cadre de nos investissements continus dans la latence et la fiabilité, à compter du 16 octobre 2025, les nouveaux plans mesureront l’utilisation des Enhanced WebSockets selon le même tarif que LaserStream (soit 3 crédits par tranche de 0,1 Mo de données diffusées).

Les plans Professional permettent d’acheter des données supplémentaires à un tarif fixe, utilisables pour les besoins de streaming de données avec les Enhanced WebSockets ou LaserStream.

Si vous disposez déjà d’un plan, votre tarification, vos limites et votre facturation restent strictement inchangées. Aucune action n’est requise. 

Les WebSockets standard restent inchangés et sont disponibles avec les plans gratuits et payants.

Améliorez vos flux dès aujourd’hui

Fiabilité, performances et simplicité : vos flux sont prêts à évoluer avec vous. Commencez dès aujourd’hui à développer avec les Enhanced WebSockets. Inscrivez-vous, obtenez une clé API et offrez davantage de fiabilité à vos frontends.

Diffusez vos données plus intelligemment, innovez plus rapidement.

Abonnez-vous à Helius

Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication