> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Solana Yellowstone gRPC : Diffusion de données en temps réel

> Diffusion de données blockchain Solana en temps réel et haute performance en utilisant le protocole gRPC avec filtrage avancé et livraison à ultra-faible latence pour les développeurs.

<Note>
  **Vous recherchez le service gRPC géré de Helius ?** Cette page documente le protocole **Yellowstone gRPC** ouvert à titre de référence. Pour une utilisation en production avec relecture historique de 24 heures, basculement multi-nœuds, et un environnement entièrement géré, voir [LaserStream](/docs/fr/laserstream) — l'offre gRPC compatible Yellowstone de Helius.
</Note>

## Qu'est-ce que Yellowstone gRPC ?

Yellowstone gRPC fournit une **diffusion à ultra-faible latence** des données blockchain Solana en se connectant directement aux leaders Solana pour recevoir les fragments dès qu'ils sont produits. Cela transfère des données en temps réel à votre application avec un délai minimal.

<CardGroup cols={2}>
  <Card title="Haute Performance" icon="bolt">
    Protocole binaire avec sérialisation efficace pour un débit maximal et une utilisation minimale de la bande passante
  </Card>

  <Card title="Diffusion en temps réel" icon="wave-pulse">
    Diffusion bidirectionnelle avec création et annulation immédiates d'abonnement
  </Card>

  <Card title="Filtrage Avancé" icon="filter">
    Contrôlez précisément quelles données vous recevez avec des filtres de compte, transaction et programme
  </Card>

  <Card title="Types de Données Multiples" icon="database">
    Abonnez-vous aux comptes, transactions, slots, blocs, et entrées en un seul flux
  </Card>
</CardGroup>

## Types de Flux

<Tabs>
  <Tab title="Comptes">
    **Surveillez les changements de compte en temps réel**

    Suivez les mises à jour de solde, modifications de données, changements de propriété, et événements de création/suppression de compte avec des options de filtrage précises.

    <Card title="Guide de Surveillance des Comptes" icon="user" href="/docs/fr/grpc/account-monitoring">
      Apprenez à diffuser les mises à jour de compte avec des exemples de filtrage
    </Card>
  </Tab>

  <Tab title="Transactions">
    **Diffusez les données de transaction et les résultats d'exécution**

    Recevez les signatures de transaction, le statut d'exécution, les interactions de programme, et les changements de solde de jeton au fur et à mesure qu'ils se produisent.

    <Card title="Guide de Surveillance des Transactions" icon="receipt" href="/docs/fr/grpc/transaction-monitoring">
      Surveillez les transactions avec filtrage de programme et détails d'exécution
    </Card>
  </Tab>

  <Tab title="Slots & Blocs">
    **Suivez le consensus du réseau et la production de blocs**

    Surveillez les mises à jour de slot, la création de bloc, et les changements d'état du réseau à travers différents niveaux d'engagement.

    <Card title="Guide de Surveillance des Slots & Blocs" icon="cube" href="/docs/fr/grpc/slot-and-block-monitoring">
      Diffusez slots et blocs avec des détails de transaction
    </Card>
  </Tab>

  <Tab title="Entrées">
    **Surveillance des entrées blockchain de bas niveau**

    Accédez aux unités d'exécution fondamentales contenant des lots de transactions et leurs résultats.

    <Card title="Guide de Surveillance des Entrées" icon="code" href="/docs/fr/grpc/entry-monitoring">
      Diffusez les entrées de blocs avec des lots de transactions
    </Card>
  </Tab>
</Tabs>

## Comment Accéder à Yellowstone gRPC

Choisissez l'option qui correspond le mieux à vos besoins :

### LaserStream

[LaserStream](/docs/fr/laserstream) est un service gRPC multi-locataire, hautement disponible avec basculement automatique et capacités de relecture historique de 24 heures. Idéal pour la plupart des applications en production.

<Tip>
  Commencez avec LaserStream depuis votre [Tableau de bord Helius](https://dashboard.helius.dev/laserstream). Mainnet nécessite un plan Entreprise ou Professionnel ; Devnet est disponible sur Développeur et plus. Voir [Plans & Tarifs](/docs/fr/billing/plans) pour plus de détails.
</Tip>

### Nœuds Dédiés

[Nœuds Dédiés](/docs/fr/dedicated-nodes) offrent un point de terminaison gRPC exclusif avec isolation de ressource garantie. Idéal pour des exigences spécialisées et des opérateurs avancés.

### Comparer les Options gRPC

Besoin d'aide pour décider ? Lisez notre [guide de comparaison gRPC](/docs/fr/laserstream/laserstream-vs-dedicated-nodes) pour déterminer si LaserStream ou les nœuds dédiés est la meilleure option pour votre cas d'utilisation.

## Démarrage Rapide

Prêt à commencer à diffuser ?

Commencez par lire notre guide d'installation complet, ou démarrez depuis votre tableau de bord :

<CardGroup>
  <Card title="Démarrage Rapide Yellowstone gRPC" icon="rocket" href="/docs/fr/grpc/quickstart">
    Couvre l'installation, l'authentification, et la configuration de votre premier flux
  </Card>

  <Card title="Commencer" icon="rocket" href="https://dashboard.helius.dev/laserstream">
    Activez LaserStream depuis votre Tableau de bord Helius et commencez à diffuser.
  </Card>
</CardGroup>

## Structure de Demande d'Abonnement

Chaque abonnement gRPC nécessite une demande correctement structurée. Voici comment en construire une :

### Paramètres Principaux

<ParamField path="commitment" type="string" required>
  **Niveau d'engagement pour la cohérence des données**

  * `processed` - Transaction traitée par le nœud
  * `confirmed` - Transaction confirmée par le cluster
  * `finalized` - Transaction finalisée par le cluster
</ParamField>

<ParamField path="ping" type="boolean" optional>
  **Maintenir la connexion active**

  Réglez sur `true` pour recevoir des messages pong toutes les 15 secondes, évitant ainsi les délais d'attente de connexion des équilibreurs de charge ou des proxys.
</ParamField>

<ParamField path="accounts_data_slice" type="array" optional>
  **Optimiser le transfert de données**

  Demander des plages d'octets spécifiques des données de compte :

  ```json theme={"system"}
  [
    { "offset": 0, "length": 100 },
    { "offset": 200, "length": 50 }
  ]
  ```
</ParamField>

### Configuration du Filtre

<Accordion title="Filtres de Compte">
  <ParamField path="account" type="array<string>">
    Tableau des clés publiques de compte à surveiller (OU logique)
  </ParamField>

  <ParamField path="owner" type="array<string>">
    Tableau des clés publiques de propriétaire à surveiller (OU logique)
  </ParamField>

  <ParamField path="filters" type="array<object>">
    Filtres DataSize et Memcmp (ET logique) :

    ```json theme={"system"}
    [
      { "dataSize": 165 },
      { "memcmp": { "offset": 0, "bytes": "base58_encoded_bytes" } }
    ]
    ```
  </ParamField>

  <Info>
    Lorsque plusieurs types de filtres sont utilisés, ils fonctionnent comme un ET logique. Dans les tableaux, les valeurs fonctionnent comme un OU logique.
  </Info>
</Accordion>

<Accordion title="Filtres de Transaction">
  <ParamField path="vote" type="boolean">
    Inclure/exclure les transactions de vote
  </ParamField>

  <ParamField path="failed" type="boolean">
    Inclure/exclure les transactions échouées
  </ParamField>

  <ParamField path="signature" type="string">
    Surveiller une signature de transaction spécifique
  </ParamField>

  <ParamField path="account_include" type="array<string>">
    Inclure les transactions impliquant l'un de ces comptes (OU logique)
  </ParamField>

  <ParamField path="account_exclude" type="array<string>">
    Exclure les transactions impliquant l'un de ces comptes
  </ParamField>

  <ParamField path="account_required" type="array<string>">
    Inclure les transactions impliquant tous ces comptes (ET logique)
  </ParamField>
</Accordion>

<Accordion title="Filtres de Bloc">
  <ParamField path="account_include" type="array<string>">
    Filtrer les transactions et comptes dans les blocs
  </ParamField>

  <ParamField path="include_transactions" type="boolean">
    Inclure toutes les transactions dans le bloc
  </ParamField>

  <ParamField path="include_accounts" type="boolean">
    Inclure toutes les mises à jour de compte dans le bloc
  </ParamField>

  <ParamField path="include_entries" type="boolean">
    Inclure toutes les entrées dans le bloc
  </ParamField>
</Accordion>

<Accordion title="Filtres de Slot">
  <ParamField path="filter_by_commitment" type="boolean" default="false">
    Lorsque `true`, ne recevoir que les mises à jour de slot pour le niveau d'engagement spécifié. Lorsque `false`, recevoir les mises à jour pour tous les niveaux d'engagement.
  </ParamField>
</Accordion>

***

## Exemple : Surveillance Basique des Transactions

Voici un exemple complet pour vous aider à démarrer :

```typescript theme={"system"}
import Client, { CommitmentLevel, SubscribeRequest } from "@triton-one/yellowstone-grpc";

const client = new Client("your-grpc-endpoint", "your-api-token", {
  "grpc.max_receive_message_length": 64 * 1024 * 1024
});

const stream = await client.subscribe();

// Handle incoming data
stream.on("data", (data) => {
  if (data.transaction) {
    console.log(`Transaction: ${data.transaction.signature}`);
    console.log(`Success: ${!data.transaction.meta?.err}`);
  }
});

// Subscribe to transactions with complete request structure
const subscribeRequest: SubscribeRequest = {
  transactions: {
    client: {
      accountInclude: [
        "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", // Token Program
        "11111111111111111111111111111111"               // System Program
      ],
      accountExclude: [],
      accountRequired: [],
      vote: false,
      failed: false
    }
  },
  commitment: CommitmentLevel.CONFIRMED,
  ping: { id: 1 }
};

stream.write(subscribeRequest);
```

<Note>
  Ceci est un exemple basique. Pour une utilisation en production, implémentez une gestion d'erreurs appropriée, une logique de reconnexion, et un traitement des données. Consultez nos guides détaillés pour des implémentations complètes.
</Note>

***

## Prêt à Commencer ?

<CardGroup cols={2}>
  <Card title="Guide d'Installation Complet" icon="rocket" href="/docs/fr/grpc/quickstart">
    Installation, authentification, et première mise en œuvre de flux
  </Card>

  <Card title="Diffusez les Données Pump AMM" icon="chart-line" href="/docs/fr/grpc/stream-pump-amm-data">
    Exemple concret : surveillez les transactions Pump AMM
  </Card>
</CardGroup>

## Ressources Avancées

* **[Dépôt Source Yellowstone gRPC](https://github.com/rpcpool/yellowstone-grpc)** - Définitions protobuf complètes et exemples
* **[Communauté Discord](https://discord.com/invite/6GXdee3gBj)** - Obtenez de l'aide des développeurs et de l'équipe Helius
* **[Documentation LaserStream](/docs/fr/laserstream)** - Service gRPC amélioré avec des fonctionnalités supplémentaires
