Skip to main content
La méthode RPC getVoteAccounts renvoie des informations sur tous les comptes de vote (validateurs) dans la banque actuelle. Elle distingue les validateurs current (actifs) et delinquent et fournit des détails sur leur participation, activité de vote et identité.

Cas d’utilisation courants

  • Surveillance des validateurs : Suivi de l’état, de la participation et des performances des validateurs sur le réseau.
  • Tableaux de bord de staking : Affichage d’informations sur les validateurs disponibles pour les utilisateurs souhaitant déléguer leur SOL.
  • Analyse de la santé du réseau : Évaluation de la santé globale et de la décentralisation du réseau en examinant la distribution des participations et l’activité des validateurs.
  • Identification des validateurs délinquants : Recherche de validateurs qui ne participent pas activement au consensus.

Paramètres de requête

Cette méthode accepte un objet de configuration optionnel avec les champs suivants :
  1. commitment (chaîne, optionnel) : Spécifie le niveau d’engagement pour la requête (par exemple, "finalized", "confirmed", "processed"). Si omis, l’engagement par défaut du nœud est utilisé.
  2. votePubkey (chaîne, optionnel) : Si fourni, les résultats seront filtrés pour n’inclure que l’adresse de compte de vote du validateur spécifiée (encodée en base 58).
  3. keepUnstakedDelinquents (booléen, optionnel) : Par défaut à false. Si défini sur true, la liste delinquent inclura les validateurs sans participation activée. Sinon, ils sont filtrés.
  4. delinquentSlotDistance (u64, optionnel) : Spécifie combien de créneaux un validateur doit être derrière la pointe du registre pour être considéré comme délinquant. Si non spécifié, le nœud utilise une valeur par défaut.

Structure de la réponse

Le champ result dans la réponse JSON-RPC est un objet contenant deux tableaux :
  • current: Un tableau d’objets, où chaque objet représente un compte de vote actif avec les champs suivants :
    • votePubkey (chaîne) : L’adresse du compte de vote (encodée en base 58).
    • nodePubkey (chaîne) : La clé publique d’identité du nœud validateur (encodée en base 58).
    • activatedStake (u64) : Le montant de la participation, en lamports, délégué à ce compte de vote et actif dans l’époque actuelle.
    • epochVoteAccount (booléen) : true si le compte de vote a été actif au moins une fois pendant l’époque actuelle.
    • commission (nombre) : Le pourcentage de commission (0-100) facturé par le validateur.
    • lastVote (u64) : Le numéro de créneau le plus récent sur lequel ce validateur a voté.
    • rootSlot (u64) : Le dernier créneau que le nœud considère comme une racine (un bloc qui est entièrement confirmé et ne sera pas annulé).
    • epochCredits (tableau) : Un tableau de tableaux, où chaque tableau intérieur contient [epoch, credits_earned_in_epoch, previous_total_credits].
  • delinquent: Un tableau d’objets, avec la même structure que current, représentant les validateurs considérés comme délinquants par le nœud.
Exemple de réponse :

Exemples de code

Conseils pour les développeurs

  • Réponse volumineuse : Cette méthode peut renvoyer une grande quantité de données, surtout sur des réseaux avec de nombreux validateurs comme le Mainnet Beta. Faites attention à la taille de la réponse et au temps de traitement.
  • Définition de la délinquance : La définition de “délinquant” peut dépendre de delinquentSlotDistance et de la perspective du nœud. Un validateur peut apparaître comme délinquant sur un nœud mais pas sur un autre si leur vue de la pointe du registre diffère.
  • Activation de la participation : activatedStake reflète la participation qui est active dans l’époque actuelle. La participation prend du temps pour s’activer et se désactiver.
  • Crédits d’époque : epochCredits fournit un historique de la performance d’un validateur en obtenant des crédits par vote.
Ce guide couvre la méthode RPC getVoteAccounts, vous permettant de consulter et de comprendre les informations des validateurs sur le réseau Solana.