ソフトウェアパッケージ
このプログラムは以下のソフトウェアパッケージで開発・テストされています。他のバージョンでも互換性がある場合があります。| ソフトウェア | バージョン | インストールガイド |
|---|---|---|
| Solana | 3.1.9 | Install Solana |
| Rust | 1.89.0 | Install Rust |
| Anchor | 1.0.2 | Install Anchor |
ソースコードへのクイックアクセス
すぐにコードを確認したい場合:ソースコード:Anchor Counter プログラム
ライブサンプルアプリ
Anchor プログラムを書く
counter プログラムの主要な構成要素を順に見ていきましょう:コア機能
このプログラムは 2 つの主要な instruction を実装します:initialize:counter を 0 にセットincrement:counter を 1 だけ加算
delegate マクロを追加していることです。
Counter PDA を委任する
counter PDA を委任し、Ephemeral Rollup セッション内で書き込み可能にするには、内部的にdelegate_account 関数を呼び出す instruction を追加する必要があります。delegate_account は委任プログラムへ CPI を行い、検証が通るとそのアカウントの所有権を取得します。
このステップが完了すると、ephemeral validator が counter PDA に対するトランザクションの処理を開始し、委任プログラムを通じて状態差分を提案できるようになります。
トランザクション(Base Layer):Delegate
Solana Explorer でトランザクション詳細を確認
PDA が委任されている間に commit する
ephemeral ランタイムでは、PDA が委任されている間にその状態を commit できます。これはcommit intent を持つ MagicIntentBundleBuilder を構築して呼び出すことで実現します。
トランザクション(ER):Commit
Solana Explorer でトランザクション詳細を確認
トランザクション(Base Layer):Commit
Solana Explorer でトランザクション詳細を確認
PDA の委任を解除する
PDA の委任解除は、commit_and_undelegate intent を持つ MagicIntentBundleBuilder を構築することで行います。
これにより最新状態がコミットされ、PDA の所有権が所有者プログラムへ戻されます。
トランザクション(ER):Undelegate
Solana Explorer でトランザクション詳細を確認
トランザクション(Base Layer):Undelegate
Solana Explorer でトランザクション詳細を確認
React クライアントの接続
React クライアントは Anchor プログラムと対話するためのシンプルなインターフェースです。 Anchor バインディングを使ってプログラムと通信し、MagicBlock SDK で Ephemeral Rollup セッションとやり取りします。ソースはプログラムと同じ場所、anchor-counter/app にあります。
ライブサンプルアプリ
Ephemeral エンドポイントの設定
Ephemeral Rollup セッションと対話するには、適切なエンドポイントを設定する必要があります:- devnet では、以下の ephemeral エンドポイントを使用してください: https://devnet.magicblock.app
- mainnet については、適切なエンドポイントを得るために MagicBlock チームへお問い合わせください。
- localhost の場合は、ephemeral validator をダウンロード・インストールし、適切な環境変数を指定してローカルで実行してください。
これらの公開 RPC エンドポイントは現在無料で、開発用途に利用できます:
Magic Router Devnet: https://devnet-router.magicblock.app
Solana Devnet: https://api.devnet.solana.com
ER Devnet: https://devnet.magicblock.app
TEE Devnet: https://devnet-tee.magicblock.app/
詳細は こちら をご覧ください。
Magic Router Devnet: https://devnet-router.magicblock.app
Solana Devnet: https://api.devnet.solana.com
ER Devnet: https://devnet.magicblock.app
TEE Devnet: https://devnet-tee.magicblock.app/
詳細は こちら をご覧ください。

