Docs
La Recherche⌘ K
  • Accueil
  • À propos de The Graph
  • Réseaux pris en charge
  • Contrats du Protocole
  • Subgraphs
    • Substreams
      • Token API
        • AI Suite
          • Indexing
            • Resources
              Substreams > Developing > Solana

              3 minutes

              Modifications du compte Solana

              Apprenez comment consommer les données de modification de compte Solana en utilisant Substreams.

              Présentation

              Ce guide vous accompagne dans le processus de mise en place de votre environnement, de configuration de votre premier flux Substreams et de consommation efficace des modifications de compte. À la fin de ce guide, vous aurez un flux Substreams opérationnel qui vous permettra de suivre les changements de compte en temps réel sur la blockchain Solana, ainsi que les données historiques des changements de compte.

              NOTE : L’historique des modifications du compte Solana est daté de 2025, bloc 310629601.

              Pour chaque bloc de comptes Substreams Solana, seule la dernière mise à jour par compte est enregistrée, voir la Référence Protobuf⁠. Si un compte est supprimé, une charge utile avec deleted == True est fournie. En outre, les événements de faible importance sont omis, tels que ceux dont le propriétaire spécial est le compte “Vote11111111…” ou les changements qui n’affectent pas les données du compte (par exemple, les changements de lamport).

              NOTE : Pour tester la latence de Substreams pour les comptes Solana, mesurée par la dérive des têtes de blocs, installez la CLI Substreams⁠ et exécutez substreams run solana-common blocks_without_votes -s -1 -o clock.

              Introduction

              Prérequis

              Avant de commencer, assurez-vous que vous disposez des éléments suivants :

              1. Substreams CLI⁠ installé.
              2. Une [clé Substreams] (https://docs.substreams.dev/reference-material/substreams-cli/authentication⁠) pour accéder aux données de modification du compte Solana (Solana Account Change).
              3. Connaissance de base de l’utilisation⁠ de l’interface de ligne de commande (CLI).

              Étape 1 : Établir une connexion au flux Substreams des modifications de compte Solana

              Maintenant que vous avez installé Substreams CLI, vous pouvez établir une connexion au flux Substreams des modifications de compte Solana.

              • En utilisant le Module de base du compte Solana⁠, vous pouvez choisir de diffuser les données directement ou d’utiliser l’interface graphique pour une expérience plus visuelle. L’exemple gui suivant filtre les données du compte Honey Token.
              1substreams gui  solana-accounts-foundational filtered_accounts -t +10 -p filtered_accounts="owner:TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA || account:4vMsoUT2BWatFweudnQM1xedRLfJgJ7hswhcpz4xgBTy"
              • Cette commande permet de streamer les modifications apportées aux comptes directement dans votre terminal.
              1substreams run  solana-accounts-foundational filtered_accounts -s -1 -o clock

              Le module de base permet de filtrer des comptes et/ou des propriétaires spécifiques. Vous pouvez adapter la requête en fonction de vos besoins.

              Étape 2 : Intégrer les Substreams

              Consommez le flux de modifications de compte directement dans votre application⁠ à l’aide d’un callback, ou rendez-le interrogeable en utilisant le sink SQL-DB⁠.

              Étape 3 : Mise en place d’une politique de reconnexion

              La gestion du curseur⁠ garantit une continuité et une traçabilité sans faille en vous permettant de reprendre à partir du dernier bloc consommé si la connexion est interrompue. Cette fonctionnalité permet d’éviter les pertes de données et de maintenir un flux persistant.

              Lors de la création ou de l’utilisation d’un sink, la responsabilité première de l’utilisateur est de fournir des implémentations de BlockScopedDataHandler et une ou plusieurs implémentations de BlockUndoSignalHandler qui ont l’interface suivante :

              1import (2	pbsubstreamsrpc "github.com/streamingfast/substreams/pb/sf/substreams/rpc/v2"3)45type BlockScopedDataHandler = func(ctx context.Context, cursor *Cursor, data *pbsubstreamsrpc.BlockScopedData) error6type BlockUndoSignalHandler = func(ctx context.Context, cursor *Cursor, undoSignal *pbsubstreamsrpc.BlockUndoSignal) error
              ⁠Edit on GitHub⁠

              TransactionsFaites un Sink de vos Substreams
              On this page
              • Présentation
              • Introduction
              • Prérequis
              • Étape 1 : Établir une connexion au flux Substreams des modifications de compte Solana
              • Étape 2 : Intégrer les Substreams
              • Étape 3 : Mise en place d’une politique de reconnexion
              The GraphStatusTestnetActifs de la MarqueForumSécuritéPolitique de confidentialitéConditions d'utilisation