Sui インデックス フレームワークは、強力なデータ取り込みフレームワークを通じて、Sui のオンチェーン データへのカスタマイズ可能なアクセスを提供します。これにより、オンチェーンまたはオフチェーンで動作する関連ソフトウェアによって、生のオンチェーン データと派生データセットの両方を収集できます。

Sui インデックス フレームワークを活用してカスタマイズ可能なデータ フィードを作成することで、開発者はオンチェーン イベントに応答するソフトウェアや製品を簡単に構築できます。

オンチェーンデータフィードの力

ブロックチェーンのデータ構造は、トランザクションの整合性を確保するように設計されているため、多くの場合、履歴全体にわたるランダムなデータ アクセスに対して最適化されていません。ただし、Sui インデックス フレームワークを使用して構築されたカスタマイズ可能なデータ フィードは、この制限を克服し、開発者がリアルタイム分析や応答性の高いアプリケーションのためにオンチェーン データをより効果的に活用できるようにします。

NFT を利用してファンに音楽を配信したいミュージシャンを想像してください。彼らは譲渡不可能な NFT コレクションを作成します。このコレクションでは、各 NFT が、作成時にオフチェーン データベースに保存されているオーディオ ファイルへの自動アクセスを許可します。Sui インデックス フレームワークを利用すると、カスタム インデクサーは、Sui 上のこれらの特定の NFT に関連付けられた作成トランザクションを追跡できます。この設定により、カスタム インデクサーによって監視されるイベントによってトリガーされる、オーディオ ファイルの転送などのアクションを別のオフチェーン サービスが実行できるようになります。

Sui インデックス フレームワークは、よりスリムなフル ノード設定を希望するユーザーにとって特に便利です。インデックス ソリューションがない場合、フル ノードは通常、すべてのトランザクションの履歴を保持します。Sui インデックス フレームワークを使用すると、フル ノードとは別に保存するチェックポイント データを供給するカスタム インデクサーを作成できます。フル ノードに依存する多くのアプリでは、最新のチェックポイント データがリアルタイムで別の場所に保存されている場合、フル ノードがアクティブに保持する必要はありません。このフレームワークにより、フル ノードを積極的に削減してスリムなフル ノードを作成できるため、インフラストラクチャのセットアップがより効率的になります。

さらに、Sui インデックス フレームワークは、オンチェーン データ ダッシュボードの開発に必要な重要な要素です。データ分析プラットフォームにはさらに多くの要素が必要ですが、Sui インデックス フレームワークは、これらのアプリが依存するデータ取り込みの基盤となる要素です。

使い方

Sui インデックス フレームワークを使用したデータの取り込みは、最新のデータを受信するために Sui からのチェックポイント ストリームをサブスクライブすることから始まります。最も簡単な方法は、Mysten Labs が提供するようなチェックポイント データの適切なリモート ストアをサブスクライブすることです。

  • テストネット - https://checkpoints.testnet.suit.io

  • メインネット - https://checkpoints.mainnet.sui.io

これを行うには、チェックポイント データを処理するワーカー関数を作成する必要があります。メイン アプリは、リモート ストアでイベントを検出するたびにワーカー関数を呼び出します。

async_trait::async_trait を使用します。 sui_data_ingestion_core::{setup_single_workflow, Worker} を使用します。 sui_types::full_checkpoint_content::CheckpointData を使用します。 struct CustomWorker; #[async_trait] impl Worker for CustomWorker { async fn process_checkpoint(&self, checkpoint: CheckpointData) -> Result<()> { println!( "処理チェックポイント {}", checkpoint.checkpoint_summary.sequence_number ); // カスタム処理ロジック ... Ok(()) } } #[tokio::main] async fn main() -> Result<()> { let (executor, term_sender) = setup_single_workflow( CustomWorker, "https://checkpoints.mainnet.sui.io".to_string(), 0, /* 初期チェックポイント番号 */ 5, /* 同時実行性 */ None, /* 追加のリーダーオプション */ ).await?; executor.await?; Ok(()) }

独自のフルノードを運用している場合は、独自のチェックポイントストリームを作成することができます。チェックポイントストリームを有効にするには、次の手順に従ってください。

チェックポイントエグゼキュータ設定

フルノード構成ファイルに次の情報を追加する必要があります。

checkpoint-executor-config: data-ingestion-dir: <ローカルディレクトリへのパス>

設定が完了すると、フルノードはチェックポイントデータをローカルディレクトリにダンプします。インデクサーデーモンはチェックポイントイベントをリッスンし、新しいチェックポイントが到着するとデータを処理します。返されるチェックポイントデータは

チェックポイントデータ

struct は、現在のアプリでは既に馴染みのあるものです。構成では、インデクサーを data-ingestion-dir ディレクトリにポイントし、ホストされたサブスクリプションと同じ方法でデータを処理します。

Sui インデックス フレームワークは、プルベースとプッシュベースの両方の処理方法をサポートしており、開発者は簡単な実装とレイテンシの短縮のどちらかを柔軟に選択できます。この汎用性は、リアルタイムのデータ アクセスと応答性を優先するアプリにとって非常に重要です。

さらに深く掘り下げる

リアルタイムのブロックチェーン イベントに応答するアプリを作成する場合でも、一般的なデータとインフラストラクチャの管理を作成する場合でも、Sui インデックス フレームワークは、このような用途に必要な柔軟性と信頼性を提供します。詳細な実装ガイダンスについては、Sui カスタム インデクサーのドキュメントを参照してください。Sui インデックス フレームワークの動作を確認するには、Mysten Labs、SuiNS、および Sui Bridge で使用される特殊なインデックス パイプラインを参照してください。