Sui索引框架通过强大的数据导入框架提供对Sui链上数据的定制化访问。它允许任何相关软件,无论是在链上还是链下运行,收集原始链上数据和派生数据。
利用Sui索引框架创建定制的数据流,开发者可以轻松构建响应链上事件的软件和产品。
链上数据流的强大之处
区块链数据结构旨在确保交易的完整性,这通常意味着它们没有针对整个历史的随机数据访问进行优化。然而,使用Sui索引框架构建的定制化数据流克服了这一限制,使开发者能够更有效地利用链上数据进行实时分析和响应应用程序。
想象一下,一个音乐家想要利用NFT向粉丝分发音乐。他们创建了一个不可转让的NFT集合,每个NFT在铸造时都能自动访问存储在链下数据库中的音频文件。利用Sui索引框架,定制索引器可以跟踪这些特定NFT在Sui上的铸造交易。这种设置使得链下服务能够执行如传输音频文件等操作,这些操作是通过定制索引器监控的事件触发的。
对于那些希望简化全节点设置的人来说,Sui索引框架特别有用。没有索引解决方案的情况下,全节点通常会保留每笔交易的历史。使用Sui索引框架,可以创建一个定制索引器,将检查点数据存储在全节点之外。许多依赖全节点的应用程序实际上不需要全节点主动保存最近的检查点数据,如果这些数据存储在其他地方。这种框架允许更高效的基础设施设置,因为全节点可以被大量修剪以创建更简洁的全节点。
此外,Sui索引框架是开发链上数据仪表板所需的关键部分。虽然数据分析平台需要更多的元素,但Sui索引框架是这些应用程序依赖的数据导入的基础部分。
如何运作
使用Sui索引框架进行数据导入首先要订阅Sui的检查点流以接收最新数据。最简单的方法是订阅检查点数据的远程存储,如Mysten Labs提供的:
- 测试网 — https://checkpoints.testnet.sui.io
- 主网 — https://checkpoints.mainnet.sui.io
要做到这一点,必须创建一个worker函数来处理检查点数据。主应用程序在检测到远程存储中的事件时调用worker函数。
use async_trait::async_trait;
use sui_data_ingestion_core::{setup_single_workflow, Worker};
use sui_types::full_checkpoint_content::CheckpointData;struct CustomWorker;#[async_trait]
impl Worker for CustomWorker {async fn process_checkpoint(&self, checkpoint: CheckpointData) -> Result<()> {println!("processing checkpoint {}",checkpoint.checkpoint_summary.sequence_number);// custom processing logic...Ok(())}
}#[tokio::main]
async fn main() -> Result<()> {let (executor, term_sender) = setup_single_workflow(CustomWorker,"https://checkpoints.mainnet.sui.io".to_string(),0, /* initial checkpoint number */5, /* concurrency */None, /* extra reader options */).await?;executor.await?;Ok(())
}
对于那些运行自己的全节点的人,可以选择创建自己的检查点流。要启用检查点流,必须将以下 checkpoint-executor-config 信息添加到全节点配置文件中:
checkpoint-executor-config:data-ingestion-dir: <path to a local directory>
配置完成后,全节点将检查点数据转储到本地目录中。索引器守护进程监听检查点事件,并在新检查点到达时处理数据。返回的检查点数据是 CheckpointData 结构,目前的应用程序可能已经熟悉此结构。通过配置,将索引器指向 data-ingestion-dir 目录,并以与托管订阅相同的方式处理数据。
Sui索引框架支持基于拉取和基于推送的处理方法,提供给开发者在简单实现和减少延迟之间的选择灵活性。这种多功能性对于优先考虑实时数据访问和响应的应用程序至关重要。
深入探索
无论是创建响应实时区块链事件的应用程序,还是进行一般数据和基础设施管理,Sui索引框架都提供了所需的灵活性和可靠性。有关详细的实施指南,请参阅Sui定制索引器文档。要了解Sui索引框架的实际应用,请探索Mysten Labs、SuiNS和Sui Bridge使用的专用索引管道。
关于Sui Network
Sui是基于第一原理重新设计和构建而成的L1公有链,旨在为创作者和开发者提供能够承载Web3中下一个十亿用户的开发平台。Sui上的应用基于Move智能合约语言,并具有水平可扩展性,让开发者能够快速且低成本支持广泛的应用开发。获取更多信息:https://linktr.ee/sui_apac
官网|英文Twitter|中文Twitter|Discord|英文电报群|中文电报群