3 minutes
Transactions Solana
Apprenez à initialiser un projet Substreams basé sur Solana dans le Dev Container.
Note : ce guide ne concerne pas les Modifications de compte.
Options
Si vous préférez commencer localement dans votre terminal plutôt que par l’intermédiaire du Dev Container (VS Code requis), referez-vous au Guide d’installation de l’interface CLI de Substreams.
Étape 1 : Initialisation du projet Solana Substreams
-
Ouvrez le [Dev Container] (https://github.com/streamingfast/substreams-starter) et suivez les étapes à l’écran pour initialiser votre projet.
-
L’exécution de
substreams init
vous donnera la possibilité de choisir entre deux options de projet Solana. Sélectionnez la meilleure option pour votre projet :- sol-minimal : Ceci crée un simple Substreams qui extrait les données brutes du bloc Solana et génère le code Rust correspondant. Ce chemin démarre avec le bloc brut complet, et vous pouvez naviguer vers le
substreams.yaml
(le manifeste) pour modifier l’entrée. - sol-transactions : Ceci crée un Substreams qui filtre les transactions Solana sur la base d’un ou plusieurs Program IDs et/ou Account IDs, en utilisant le Module fondamental de Solana mis en cache.
- sol-anchor-beta : Ceci crée un Substreams qui décode les instructions et les événements avec un IDL Anchor. Si un IDL n’est pas disponible (référence Anchor CLI), vous devrez le fournir vous-même.
- sol-minimal : Ceci crée un simple Substreams qui extrait les données brutes du bloc Solana et génère le code Rust correspondant. Ce chemin démarre avec le bloc brut complet, et vous pouvez naviguer vers le
Les modules de Solana Common ne comprennent pas de transactions de vote. Pour obtenir une réduction de 75 % de la taille et des coûts de traitement des données, retardez votre flux de plus de 1000 blocs à partir de la tête. Cela peut être fait en utilisant la fonction sleep
de Rust.
Pour accéder aux transactions de vote, utilisez le bloc Solana complet, sf.solana.type.v1.Block
, comme entrée.
Étape 2 : Visualiser les données
-
Exécutez
substreams auth
pour créer votre [compte] (https://thegraph.market/) et générer un jeton d’authentification (JWT), puis renvoyez ce jeton en entrée. -
Vous pouvez maintenant utiliser librement l’interface
substreams
pour visualiser et itérer sur vos données extraites.
Étape 2.5 : Transformer (éventuellement) les données
Dans les répertoires générés, modifiez vos modules Substreams pour inclure des filtres, des agrégations et des transformations supplémentaires, puis mettez à jour le manifeste en conséquence.
Étape 3 : Charger les données
Pour rendre vos Substreams interrogeables (par opposition au streaming direct), vous pouvez générer automatiquement un Subgraph alimenté par Substreams ou un sink SQL-DB.
Subgraphe
- Exécutez
substreams codegen subgraph
pour initialiser le sink, en produisant les fichiers et les définitions de fonctions nécessaires. - Créez vos Mappages de Subgraphs dans le fichier
mappings.ts
et les entités associées dans le fichierschema.graphql
. - Construire et déployer localement ou vers Subgraph Studio en lançant
deploy-studio
.
SQL
- Exécutez
substreams codegen sql
et choisissez entre ClickHouse et Postgres pour initialiser le sink, en produisant les fichiers nécessaires. - Exécutez
substreams build
pour construire le sink Substream SQL. - Exécutez
substreams-sink-sql
pour transférer les données dans la base de données SQL choisie.
Note : Lancez help
pour mieux naviguer dans l’environnement de développement et vérifier l’état des conteneurs.
Ressources supplémentaires
Ces ressources supplémentaires peuvent vous être utiles pour développer votre première application Solana.
- La Référence du Dev Container vous aide à naviguer dans le conteneur et ses erreurs courantes.
- La référence CLI vous permet d’explorer tous les outils disponibles dans la CLI de Substreams.
- La Référence des composants permet d’approfondir la navigation dans le fichier
substreams.yaml
.