概要
このガイドでは、Anchor フレームワークと MagicBlock の Ephemeral Rollups(ER) を使って cranks を実装する方法を説明します。流れは次のとおりです。- Solana base layer 上で counter を初期化する
- 高速実行のため counter account を Ephemeral Rollup に delegate する
- counter を自動 increment する crank task を schedule する
- 指定間隔で crank を自動実行する
- 完了後に account を undelegate して Solana base layer に戻す
実行フロー
コアコンポーネント
スケジュール対象の関数
たとえば、counter に対して次のような単純な increment instruction を schedule したいとします。Increment をスケジュールする関数
crank scheduling の中心となるロジックは次のとおりです。- counter を increment する instruction を作成する
- それを MagicBlock 向けの
ScheduleTaskinstruction に serialize する - CPI(Cross-Program Invocation)で MagicBlock program を呼び出す
- 実際の scheduling と execution は MagicBlock program が担当する
スケジュール引数
ScheduleIncrement の Context
Account<Counter> ではなく AccountInfo を使っています。
