メインコンテンツへスキップ
Solana は 400ms のブロック時間を目標とし、実際のスループットは約 4,000 TPS、理論的なピークは 65,000 TPS です。非常に高いメッセージ量により、コンシューマーの処理能力に高い要求が求められます。 Schema リポジトリgithub.com/chainstream-io/streaming_protobuf/solana

メッセージタイプ一覧

Solana Streams は以下のメッセージタイプを提供します:

ブロックレベルデータ

Solana は従来のブロック番号ではなく Slot をタイムライン識別子として使用します。
Solana の shred stream では、Block Header が不完全な場合があり、Slot フィールドのみが正確であることが保証されています。

トランザクションレベルデータ

トランザクションコアフィールド

Instructions

トランザクションには複数の Instruction が含まれ、これは Solana の実行モデルのコアです:
1 つの Solana トランザクションには複数の Instruction を含めることができ、各 Instruction は異なるプログラムを呼び出します。

送金データ

TransferEvents は Solana の送金情報を提供します(Topic: sol.transfers)。

TransferEvent 構造

Transfer コアフィールド

トークンメタデータ(TokenEvent)

トークンイベントは共通の TokenEvents(Topic: sol.tokens)を使用し、以下を含みます:

SolanaExtra 固有フィールド

Solana トークンには追加のメタデータフィールドが含まれます:

Balance Updates 階層メカニズム(Solana 固有)

これは Solana ストリームデータの重要な特徴です。残高更新は 2 つのレベルで提供されます:
各 instruction 実行後の即時残高変動で、単一ステップ操作の直接的な影響を反映します。
これにより、開発者はきめ細かな資金フローの追跡と最終状態の取得の両方が可能になります。

DEX データ

TradeEvents は DEX 取引データを提供します(Topic: sol.dex.trades)。共通の TradeEvent 構造を使用します。

Trade コアフィールド

DApp 情報

DexPoolEvent - 流動性プール


Solana チェーンの特徴

Slot メカニズム

Solana は従来のブロック番号ではなく Slot をタイムライン識別子として使用します:

メッセージパッケージング

トランザクションは小バッチにパッケージングされ、各 Kafka メッセージには最大 250 件のトランザクションが含まれます。

Block Header の完全性

Solana の shred stream では、Block Header が不完全な場合があり、Slot フィールドのみが正確であることが保証されています。他のフィールドは空または不正確な場合があります。

高スループット処理の推奨事項

Solana の非常に高いスループットのため、以下を推奨します:
  1. 十分な処理能力:コンシューマーに十分な CPU とメモリを確保
  2. 並行処理:マルチスレッド/コルーチンで並行メッセージ処理
  3. 効率的な解析:Protobuf 解析コードの最適化
  4. バッチ書き込み:永続化が必要な場合はデータベースへのバッチ書き込み

Topic → メッセージタイプ マッピング


コード例

Python 例:Solana DEX 取引を消費

Go 例:高性能コンシューム


関連ドキュメント

コンセプトと統合ガイド

Kafka Streams 統合の基礎

EVM Streams

EVM チェーンデータストリーム

TRON Streams

TRON ネットワークデータストリーム

WebSocket リアルタイムデータ

WebSocket 統合