メインコンテンツへスキップ

Crank とは?

Crank(スケジュールタスク)は、ユーザーが手動で介入しなくても、オンチェーン命令を時間ベースで自動実行できる仕組みです。従来のブロックチェーンシステムでは、すべての操作にユーザーの署名とトランザクション送信が必要なため、自動化には限界があります。 MagicBlock の Ephemeral Rollups を使えば、あらかじめ決めた間隔で自動実行されるタスクを設定でき、Solana プログラムに強力な自動化機能を持ち込めます。

主な利点

  • 自動実行: ユーザー操作なしで、あらかじめ決めた間隔で命令を実行できます
  • コスト効率: オフチェーンの cron ジョブや監視サービスへの依存を減らせます
  • 分散性: 実行はオンチェーンで行われ、トラストレス性が保たれます
  • 信頼性: スケジュールタスクはブロックチェーンのコンセンサス機構内で安定して実行されます

ユースケース

  • 定期的な状態更新: 価格更新、期限切れデータの削除、ゲーム状態のリフレッシュ
  • 自動ワークフロー: 定期支払い、ベスティングスケジュール、サブスクリプション更新
  • ゲームメカニクス: 定期報酬、時間制イベント、自動的なゲーム進行
  • DeFi オペレーション: ポートフォリオのリバランス、清算チェック、利回りの複利化

実装

プログラムに crank を実装する方法を学ぶ

コード例

GitHub リポジトリを見る

仕組み

Crank は MagicBlock の Ephemeral Rollups を活用して、スケジュール実行を実現します。
  1. Solana ベースレイヤー上でプログラム状態を初期化
  2. より高速に実行するため、アカウントを Ephemeral Rollup に委任
  3. 命令を自動実行する crank タスクをスケジュール
  4. 指定した間隔で自動的に実行
  5. 完了後、アカウントを Solana ベースレイヤーへ委任解除
スケジューリングは、MagicBlock のスケジューリングプログラムに対する Cross-Program Invocation(CPI)を通じて行われ、実際の実行タイミングと信頼性をそのプログラムが担います。
Crank は Ephemeral Rollup のコンセンサス機構内で実行されるため、信頼性が高くトラストレスです。実装手順の詳細は実装ガイドを参照してください。