> ## 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.

# Comment Utiliser getSlotLeader

> Découvrez les cas d'utilisation de getSlotLeader, des exemples de code, les paramètres de requête, la structure de réponse et des conseils.

La méthode RPC [`getSlotLeader`](https://www.helius.dev/docs/api-reference/rpc/http/getslotleader) renvoie la clé publique du validateur qui est le leader actuel pour la production de blocs, selon la vue du nœud à un niveau d'engagement spécifié. Le leader est responsable de la production des blocs pour le slot actuel.

## Cas d'Utilisation Courants

* **Identification du Producteur de Blocs Actuel :** Découvrez quel validateur est actuellement programmé pour produire des blocs.
* **Surveillance du Réseau :** Observez la rotation des leaders de slot.
* **Débogage des Problèmes de Transaction :** Dans certains scénarios avancés, connaître le leader de slot actuel peut être pertinent si des transactions sont soumises directement aux leaders (bien que ce ne soit pas une pratique courante côté client).

## Paramètres de Requête

Cette méthode prend un objet de configuration optionnel comme premier paramètre :

1. **`options`** (`object`, optionnel) : Un objet de configuration optionnel avec les champs suivants :
   * **`commitment`** (`string`, optionnel) : Spécifie le [niveau d'engagement](https://www.helius.dev/blog/solana-commitment-levels) pour la requête. Les valeurs prises en charge sont `finalized`, `confirmed`, ou `processed`. Si omis, l'engagement par défaut du nœud RPC est utilisé (généralement `finalized`). Le leader de slot est déterminé en fonction du slot qui correspond à ce niveau d'engagement.
   * **`minContextSlot`** (`number`, optionnel) : Le slot minimum que la requête peut évaluer. Cela définit le slot minimum pour le contexte du nœud.

## Structure de Réponse

Le champ `result` de la réponse JSON-RPC est une seule chaîne encodée en base-58 représentant la clé publique (identité) du leader de slot actuel.

**Exemple de Réponse :**

```json theme={"system"}
{
  "jsonrpc": "2.0",
  "result": "ENvAW7JScgYq6o4zKZwewtkzzJgDzuJAFxYasvmEQdpS",
  "id": 1
}
```

## Exemples

### 1. Obtenir le Leader de Slot Actuel (Engagement par Défaut)

Cet exemple récupère le leader de slot actuel en utilisant le niveau d'engagement par défaut du nœud (généralement `finalized`).

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlotLeader"
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getCurrentSlotLeader() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slotLeader = await connection.getSlotLeader();
      console.log('Current slot leader (default commitment):', slotLeader);
    } catch (error) {
      console.error('Error fetching current slot leader:', error);
    }
  }

  getCurrentSlotLeader();
  ```
</CodeGroup>

### 2. Obtenir le Leader de Slot Actuel avec `confirmed` Engagement

Cet exemple récupère le leader de slot pour le dernier slot ayant atteint l'engagement `confirmed`.

<CodeGroup>
  ```bash cURL theme={"system"}
  # Replace <api-key> with your Helius API key
  curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
    '{
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getSlotLeader",
      "params": [
        {
          "commitment": "confirmed"
        }
      ]
    }'
  ```

  ```javascript JavaScript (using @solana/web3.js) theme={"system"}
  // Replace <api-key> with your Helius API key
  const { Connection } = require('@solana/web3.js');

  async function getConfirmedSlotLeader() {
    const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=<api-key>');
    try {
      const slotLeader = await connection.getSlotLeader('confirmed');
      console.log('Current slot leader (confirmed commitment):', slotLeader);
      // Note: For @solana/web3.js v1.30.0 and later, you can pass commitment directly.
      // For older versions or more complex options, use an object:
      // const slotLeader = await connection.getSlotLeader({ commitment: 'confirmed' });
    } catch (error) {
      console.error('Error fetching confirmed slot leader:', error);
    }
  }

  getConfirmedSlotLeader();
  ```
</CodeGroup>

## Conseils pour les Développeurs

* **Nature Dynamique :** Les leaders de slot changent fréquemment (tous les quelques slots, généralement 4). Le résultat de cet appel est une capture d'écran basée sur la vue actuelle du nœud et l'engagement choisi.
* **Niveau d'Engagement :** Le niveau d'engagement affecte le slot considéré comme "actuel" pour déterminer le leader. Utiliser `processed` vous donnera le leader du slot le plus récent que le nœud connaît, qui peut changer rapidement et ne pas encore être confirmé par le réseau en général.
* **Programme des Leaders :** La séquence des leaders de slot est déterminée par un programme de leaders, calculé au début de chaque époque. Notre guide sur [Slots, Blocs et Époques](https://www.helius.dev/blog/solana-slots-blocks-and-epochs) fournit plus de détails sur ce processus. Pour une vue plus complète des leaders à venir, utilisez `getLeaderSchedule`.
* **Perspective du Nœud :** Le leader de slot retourné est basé sur les informations disponibles pour le nœud RPC spécifique que vous interrogez. Différents nœuds peuvent avoir des vues légèrement différentes en raison de la latence du réseau.

`getSlotLeader` offre un moyen rapide d'identifier le validateur actuellement responsable de la production des blocs. Pour une vue plus large de la rotation des leaders, envisagez `getLeaderSchedule`.

## Méthodes Connexes

<CardGroup cols={2}>
  <Card title="getLeaderSchedule" href="/docs/fr/api-reference/rpc/http/getleaderschedule">
    Obtenez le programme complet des leaders pour une époque
  </Card>

  <Card title="getSlotLeaders" href="/docs/fr/api-reference/rpc/http/getslotleaders">
    Obtenez les leaders pour une gamme de slots à venir
  </Card>
</CardGroup>
