Das Sui Indexing Framework bietet über ein leistungsstarkes Datenaufnahme-Framework anpassbaren Zugriff auf die Onchain-Daten von Sui. Es ermöglicht die Erfassung sowohl von Rohdaten als auch von abgeleiteten Datensätzen durch jede relevante Software, unabhängig davon, ob sie Onchain oder Offchain betrieben wird.
Durch die Nutzung des Sui Indexing Frameworks zum Erstellen anpassbarer Daten-Feeds können Entwickler mühelos Software und Produkte erstellen, die auf Onchain-Ereignisse reagieren.
Die Leistungsfähigkeit von Onchain-Datenfeeds
Blockchain-Datenstrukturen sind darauf ausgelegt, die Integrität von Transaktionen zu gewährleisten. Das bedeutet oft, dass sie nicht für den wahlfreien Datenzugriff über ihren gesamten Verlauf hinweg optimiert sind. Anpassbare Datenfeeds, die mit dem Sui Indexing Framework erstellt werden, überwinden diese Einschränkung jedoch und ermöglichen Entwicklern, Onchain-Daten effektiver für Echtzeitanalysen und reaktionsfähige Anwendungen zu nutzen.
Stellen Sie sich einen Musiker vor, der NFTs nutzen möchte, um Musik an seine Fans zu verteilen. Er erstellt eine nicht übertragbare NFT-Sammlung, wobei jedes NFT beim Prägen automatisch Zugriff auf eine Audiodatei gewährt, die in einer Offchain-Datenbank gespeichert ist. Mithilfe des Sui Indexing Framework kann ein benutzerdefinierter Indexer die Prägetransaktionen verfolgen, die mit diesen spezifischen NFTs auf Sui verbunden sind. Dieses Setup ermöglicht es einem separaten Offchain-Dienst, Aktionen wie das Übertragen von Audiodateien auszuführen, die durch Ereignisse ausgelöst werden, die über den benutzerdefinierten Indexer überwacht werden.
Das Sui Indexing Framework kann besonders für diejenigen nützlich sein, die ein schlankeres Full Node-Setup wünschen. Ohne eine Indexierungslösung behalten Full Nodes normalerweise den Verlauf jeder Transaktion. Mit dem Sui Indexing Framework kann ein benutzerdefinierter Indexer erstellt werden, der Checkpoint-Daten einspeist, die getrennt vom Full Node gespeichert werden sollen. Viele Apps, die auf Full Nodes angewiesen sind, benötigen den Full Node nicht wirklich, um aktuelle Checkpoint-Daten aktiv zu speichern, wenn diese anderswo in Echtzeit gespeichert sind. Dieses Framework ermöglicht effizientere Infrastruktur-Setups, da Full Nodes stark beschnitten werden können, um schlankere Full Nodes zu erstellen.
Darüber hinaus ist das Sui Indexing Framework ein Schlüsselelement für die Entwicklung von Onchain-Daten-Dashboards. Während eine Datenanalyseplattform viele weitere Elemente erfordert, ist das Sui Indexing Framework ein grundlegender Bestandteil für die Datenaufnahme, auf die diese Apps angewiesen sind.
Wie es funktioniert
Die Datenaufnahme mit dem Sui Indexing Framework beginnt mit dem Abonnieren des Checkpoint-Streams von Sui, um die aktuellsten Daten zu erhalten. Der einfachste Ansatz besteht darin, den entsprechenden Remote-Speicher für Checkpoint-Daten zu abonnieren, wie ihn beispielsweise Mysten Labs bereitstellt:
Testnet – https://checkpoints.testnet.sui.io
Mainnet – https://checkpoints.mainnet.sui.io
Dazu muss eine Worker-Funktion erstellt werden, die die Checkpoint-Daten verarbeitet. Die Haupt-App ruft die Worker-Funktion dann auf, wenn sie ein Ereignis im Remote-Speicher erkennt.
verwende async_trait::async_trait; verwende sui_data_ingestion_core::{setup_single_workflow, Worker}; verwende sui_types::full_checkpoint_content::CheckpointData; struct CustomWorker; #[async_trait] impl Worker für CustomWorker { async fn process_checkpoint(&self, checkpoint: CheckpointData) -> Result<()> { println!( "processing checkpoint {}", checkpoint.checkpoint_summary.sequence_number ); // benutzerdefinierte Verarbeitungslogik ... Ok(()) } } #[tokio::main] async fn main() -> Result<()> { let (executor, term_sender) = setup_single_workflow( CustomWorker, "https://checkpoints.mainnet.sui.io".to_string(), 0, /* anfängliche Prüfpunktnummer */ 5, /* Parallelität */ Keine, /* zusätzliche Leseroptionen */ ).await?; executor.await?; Ok(()) }
Wer seinen eigenen Full Node betreibt, kann sich für die Erstellung eines eigenen Checkpoint-Streams entscheiden. Um den Checkpoint-Stream zu aktivieren, gehen Sie wie folgt vor:
Checkpoint-Executor-Konfiguration
Informationen müssen zur vollständigen Knotenkonfigurationsdatei hinzugefügt werden:
checkpoint-executor-config: data-ingestion-dir: <Pfad zu einem lokalen Verzeichnis>
Sobald die Konfiguration festgelegt ist, speichert der Full-Knoten Checkpoint-Daten in einem lokalen Verzeichnis. Der Indexer-Daemon wartet auf Checkpoint-Ereignisse und verarbeitet die Daten, wenn neue Checkpoints eintreffen. Die zurückgegebenen Checkpoint-Daten sind
Prüfpunktdaten
struct, mit dem aktuelle Apps wahrscheinlich bereits vertraut sind. Richten Sie den Indexer mit der Konfiguration auf das Verzeichnis data-ingestion-dir und verarbeiten Sie die Daten auf die gleiche Weise wie gehostete Abonnements.
Sui Indexing Framework unterstützt sowohl Pull- als auch Push-basierte Verarbeitungsmethoden und bietet Entwicklern die Flexibilität, zwischen einer unkomplizierten Implementierung oder reduzierter Latenz zu wählen. Diese Vielseitigkeit ist entscheidend für Apps, bei denen Echtzeit-Datenzugriff und Reaktionsfähigkeit im Vordergrund stehen.
Tauchen Sie tiefer ein
Ob Sie Apps erstellen, die auf Blockchain-Ereignisse in Echtzeit reagieren, oder allgemeines Daten- und Infrastrukturmanagement betreiben, das Sui-Indizierungsframework bietet die Flexibilität und Zuverlässigkeit, die für solche Anwendungen erforderlich ist. Detaillierte Implementierungsanleitungen finden Sie in der Sui Custom Indexer-Dokumentation. Um das Sui-Indizierungsframework in Aktion zu sehen, erkunden Sie die spezialisierten Indizierungspipelines, die von Mysten Labs, SuiNS und der Sui Bridge verwendet werden.