Le Sui Indexing Framework offre un accès personnalisable aux données en chaîne de Sui grâce à un puissant cadre d'ingestion de données. Il permet la collecte à la fois de données brutes en chaîne et d'ensembles de données dérivés par tout logiciel pertinent, qu'il fonctionne en chaîne ou hors chaîne.

L'exploitation du cadre d'indexation Sui pour créer des flux de données personnalisables permet aux développeurs de créer sans effort des logiciels et des produits qui répondent aux événements en chaîne.

La puissance des flux de données en chaîne

Les structures de données blockchain sont conçues pour garantir l’intégrité des transactions, ce qui signifie souvent qu’elles ne sont pas optimisées pour un accès aléatoire aux données sur l’ensemble de leur historique. Cependant, les flux de données personnalisables créés avec Sui Indexing Framework surmontent cette limitation, permettant aux développeurs d'exploiter plus efficacement les données en chaîne pour des analyses en temps réel et des applications réactives. 

Imaginez un musicien qui souhaite utiliser les NFT pour distribuer de la musique à ses fans. Ils créent une collection NFT non transférable où chaque NFT accorde un accès automatique à un fichier audio stocké dans une base de données hors chaîne lors de la création. Grâce au Sui Indexing Framework, un indexeur personnalisé peut suivre les transactions de frappe associées à ces NFT spécifiques sur Sui. Cette configuration permet à un service hors chaîne distinct d'effectuer des actions telles que le transfert de fichiers audio, déclenchées par des événements surveillés via l'indexeur personnalisé.

Le Sui Indexing Framework peut être particulièrement utile pour ceux qui souhaitent une configuration de nœud complet plus simple. Sans solution d'indexation, les nœuds complets conservent généralement l'historique de chaque transaction. À l'aide du Sui Indexing Framework, un indexeur personnalisé peut être créé qui alimente les données de point de contrôle à stocker séparément du nœud complet. De nombreuses applications s'appuyant sur des nœuds complets n'ont pas réellement besoin du nœud complet pour conserver activement les données de point de contrôle récentes si elles sont stockées ailleurs en temps réel. Ce cadre permet des configurations d'infrastructure plus efficaces, car les nœuds complets peuvent être élagués de manière agressive pour créer des nœuds complets plus légers.

De plus, le Sui Indexing Framework est un élément clé nécessaire au développement de tableaux de bord de données en chaîne. Bien qu'une plate-forme d'analyse de données nécessite beaucoup plus d'éléments, le cadre d'indexation Sui est un élément fondamental pour l'ingestion de données sur lequel s'appuient ces applications.

Comment ça fonctionne

L'ingestion de données avec Sui Indexing Framework commence par l'abonnement au flux de points de contrôle de Sui afin de recevoir les données les plus récentes. L'approche la plus simple consiste à s'abonner au magasin distant approprié de données de point de contrôle, comme ceux fournis par Mysten Labs : 

  • Testnet - https://checkpoints.testnet.sui.io

  • Réseau principal - https://checkpoints.mainnet.sui.io

Pour ce faire, une fonction de travail doit être créée pour traiter les données du point de contrôle. L'application principale appelle ensuite la fonction de travail chaque fois qu'elle détecte un événement dans le magasin distant.

utilisez async_trait :: async_trait ; utilisez sui_data_ingestion_core ::{setup_single_workflow, Worker} ; utilisez sui_types::full_checkpoint_content::CheckpointData ; structure CustomWorker ; #[async_trait] impl Worker for CustomWorker { async fn process_checkpoint(&self, checkpoint: CheckpointData) -> Result<()> { println!( "processing checkpoint {}", checkpoint.checkpoint_summary.sequence_number ); // logique de traitement personnalisée ... Ok(()) } } #[tokio::main] async fn main() -> Result<()> { let (executor, term_sender) = setup_single_workflow( CustomWorker, "https:/ /checkpoints.mainnet.sui.io".to_string(), 0, /* numéro de point de contrôle initial */ 5, /* concurrence */ Aucune, /* options de lecteur supplémentaires */ ).await?; exécuteur.attendre ?; D'accord(()) }

Pour ceux qui exploitent leur propre nœud complet, ils peuvent choisir de créer leur propre flux de points de contrôle. Pour activer le flux de point de contrôle, les éléments suivants

configuration de l'exécuteur de point de contrôle

les informations doivent être ajoutées au fichier de configuration complet du nœud :

checkpoint-executor-config : data-ingestion-dir : <chemin vers un répertoire local>

Une fois la configuration définie, le nœud complet transfère les données du point de contrôle dans un répertoire local. Le démon de l'indexeur écoute les événements de point de contrôle et traite les données à mesure que de nouveaux points de contrôle arrivent. Les données de point de contrôle renvoyées sont un

Données de point de contrôle

struct, que les applications actuelles connaissent probablement déjà. Avec la configuration, pointez l'indexeur vers le répertoire data-ingestion-dir et traitez les données de la même manière que les abonnements hébergés.

Sui Indexing Framework prend en charge les méthodes de traitement pull et push, offrant aux développeurs la flexibilité de choisir entre une mise en œuvre simple ou une latence réduite. Cette polyvalence est cruciale pour les applications qui privilégient l’accès aux données en temps réel et la réactivité.

Plongez plus profondément

Qu'il s'agisse de créer des applications qui répondent aux événements de blockchain en temps réel ou de gérer en général les données et l'infrastructure, le cadre d'indexation Sui offre la flexibilité et la fiabilité nécessaires à de telles utilisations. Pour obtenir des conseils de mise en œuvre détaillés, explorez la documentation Sui Custom Indexer. Pour voir le cadre d'indexation Sui en action, explorez les pipelines d'indexation spécialisés utilisés par Mysten Labs, SuiNS et Sui Bridge.