Il Sui Indexing Framework offre un accesso personalizzabile ai dati onchain di Sui attraverso un potente framework di inserimento dei dati. Consente la raccolta sia di dati onchain grezzi che di set di dati derivati ​​da qualsiasi software pertinente, sia che operi onchain che offchain.

Sfruttare il Sui Indexing Framework per creare feed di dati personalizzabili consente agli sviluppatori di creare facilmente software e prodotti che rispondono agli eventi onchain.

La potenza dei feed di dati onchain

Le strutture dati della blockchain sono progettate per garantire l'integrità delle transazioni, il che spesso significa che non sono ottimizzate per l'accesso casuale ai dati durante tutta la loro cronologia. Tuttavia, i feed di dati personalizzabili creati con Sui Indexing Framework superano questa limitazione, consentendo agli sviluppatori di sfruttare i dati onchain in modo più efficace per analisi in tempo reale e applicazioni reattive. 

Immagina un musicista che vuole sfruttare gli NFT per distribuire musica ai propri fan. Crea una collezione NFT non trasferibile in cui ogni NFT concede l'accesso automatico a un file audio archiviato in un database offchain al momento del conio. Utilizzando il Sui Indexing Framework, un indicizzatore personalizzato può tracciare le transazioni di conio associate a questi NFT specifici su Sui. Questa configurazione consente a un servizio offchain separato di eseguire azioni come il trasferimento di file audio, attivate da eventi monitorati tramite l'indicizzatore personalizzato.

Il Sui Indexing Framework può essere particolarmente utile per coloro che desiderano una configurazione Full node più snella. Senza una soluzione di indicizzazione, i Full node in genere conservano la cronologia di ogni transazione. Utilizzando il Sui Indexing Framework, è possibile creare un indicizzatore personalizzato che alimenta i dati dei checkpoint da archiviare separatamente dal Full node. Molte app che si basano sui Full node non hanno effettivamente bisogno che il Full node contenga attivamente i dati dei checkpoint recenti se archiviati altrove in tempo reale. Questo framework consente configurazioni di infrastruttura più efficienti poiché i Full node possono essere potati in modo aggressivo per creare Full node più snelli.

Inoltre, il Sui Indexing Framework è un elemento chiave necessario per lo sviluppo di dashboard di dati onchain. Mentre una piattaforma di analisi dei dati richiede molti più elementi, il Sui Indexing Framework è un elemento fondamentale per l'ingestione dei dati su cui queste app si basano.

Come funziona

L'ingestione dei dati con Sui Indexing Framework inizia con la sottoscrizione al flusso di checkpoint da Sui per ricevere i dati più recenti. L'approccio più diretto è la sottoscrizione all'archivio remoto appropriato di dati di checkpoint, come quelli forniti da Mysten Labs:

  • Rete di prova - https://checkpoints.testnet.sui.io

  • Rete principale: https://checkpoints.mainnet.sui.io

Per fare ciò, deve essere creata una funzione worker per elaborare i dati del checkpoint. L'app principale quindi chiama la funzione worker ogni volta che rileva un evento nello store remoto.

usa async_trait::async_trait; usa sui_data_ingestion_core::{setup_single_workflow, Worker}; usa sui_types::full_checkpoint_content::CheckpointData; struct CustomWorker; #[async_trait] impl Worker per CustomWorker { async fn process_checkpoint(&self, checkpoint: CheckpointData) -> Result<()> { println!( "elaborazione checkpoint {}", checkpoint.checkpoint_summary.sequence_number ); // logica di elaborazione personalizzata ... Ok(()) } } #[tokio::main] async fn main() -> Result<()> { let (executor, term_sender) = setup_single_workflow( CustomWorker, "https://checkpoints.mainnet.sui.io".to_string(), 0, /* numero del checkpoint iniziale */ 5, /* concorrenza */ Nessuna, /* opzioni di lettura aggiuntive */ ).await?; executor.await?; Ok(()) }

Per coloro che gestiscono il proprio nodo Full, è possibile scegliere di creare il proprio flusso di checkpoint. Per abilitare il flusso di checkpoint, procedere come segue:

configurazione-esecutore-checkpoint

le informazioni devono essere aggiunte al file di configurazione del nodo completo:

checkpoint-executor-config: data-ingestion-dir: <percorso a una directory locale>

Una volta impostata la configurazione, il nodo Full scarica i dati del checkpoint in una directory locale. Il demone indicizzatore ascolta gli eventi del checkpoint ed elabora i dati quando arrivano nuovi checkpoint. I dati del checkpoint restituiti sono un

Dati del checkpoint

struct, con cui le app correnti probabilmente hanno già familiarità. Con la configurazione, punta l'indicizzatore alla directory data-ingestion-dir ed elabora i dati nello stesso modo delle sottoscrizioni ospitate.

Sui Indexing Framework supporta metodi di elaborazione sia basati su pull che su push, offrendo agli sviluppatori la flessibilità di scegliere tra un'implementazione semplice o una latenza ridotta. Questa versatilità è fondamentale per le app che danno priorità all'accesso ai dati in tempo reale e alla reattività.

Immergiti più a fondo

Che si tratti di creare app che rispondono a eventi blockchain in tempo reale o di gestione generale di dati e infrastrutture, il framework di indicizzazione Sui offre la flessibilità e l'affidabilità necessarie per tali utilizzi. Per una guida dettagliata all'implementazione, esplora la documentazione di Sui Custom Indexer. Per vedere il framework di indicizzazione Sui in azione, esplora le pipeline di indicizzazione specializzate utilizzate da Mysten Labs, SuiNS e Sui Bridge.