クイックアクセス
他の実装における基本的なカウンター例はこちらです。GitHub
Native Rust 実装
GitHub
Pinocchio 実装
Guide
ローカル開発
ステップバイステップガイド
プログラムを構築し、MagicBlock の Delegation ProgramDELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh を使って delegation hooks を追加しアップグレードします。
プログラムを書き、delegation instructions を追加する
いつも通りに Solana プログラムを書きます。
Base Layer で PDA を Delegate する
CPI hooks を追加し、状態アカウントを Ephemeral Rollup セッション経由で delegate、commit、undelegate できるようにします。
これらの公開バリデータは開発用として利用できます。委任命令には、 対象となる ER バリデータを必ず追加してください。
メインネット- アジア (as.magicblock.app):
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - EU (eu.magicblock.app):
MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e - 米国 (us.magicblock.app):
MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd - TEE (mainnet-tee.magicblock.app):
MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
- アジア (devnet-as.magicblock.app):
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - EU (devnet-eu.magicblock.app):
MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e - 米国 (devnet-us.magicblock.app):
MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd - TEE (devnet-tee.magicblock.app):
FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA
- ローカル ER (localhost:7799):
mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
Solana CLI を使ってプログラムを Solana に直接デプロイします。
SVM RPC 仕様に準拠したトランザクションを、変更なしでオンチェーン・オフチェーンの両方から送信します。
Counter 例
以下のソフトウェアパッケージが必要になる場合があります。ほかのバージョンでも互換性がある可能性があります。| ソフトウェア | バージョン | インストールガイド |
|---|---|---|
| Solana | 2.3.13 | Solana をインストール |
| Rust | 1.85.0 | Rust をインストール |
| Node | 24.10.0 | Node をインストール |
コードスニペット
- 1. Write Program
- 2. Delegate
- 3. Commit
- 4. Undelegate
このプログラムは 2 つの主要 instruction を実装しています。以下がプログラムの基本構造です。⬆️ Back to Top
InitializeCounter: カウンターを初期化し 0 に設定(Base Layer で呼ばれる)IncreaseCounter: 初期化済みカウンターを X 増やす(Base Layer または ER で呼ばれる)
Delegate: カウンターを Base Layer から ER に委任する(Base Layer で呼ばれる)CommitAndUndelegate: カウンターを ER から Base Layer に同期するようスケジュールし、ER 上で undelegate する(ER で呼ばれる)Commit: カウンターを ER から Base Layer に同期するようスケジュールする(ER で呼ばれる)Undelegate: Base Layer 上でカウンターを undelegate する(validator CPI を通じて Base Layer で呼ばれる)
The undelegation callback discriminator
[196, 28, 41, 206, 48, 37, 51, 167]
and its instruction processor must be specified in your program. This
instruction triggered by Delegation Program reverts account ownership on the
Base Layer after calling undelegation on ER.With [#ephemeral] Anchor macro from MagicBlock’s Ephemeral Rollup SDK, the undelegation callback discriminator and processor are injected into your program.“Undelegate” instruction には正確な discriminator が必要です。これは
あなた自身が呼ぶものではなく、ER 上でアカウントが undelegate された後に、
Base Layer 上の validator が CPI コールバックとしてあなたのプログラムへ入ります。
高度なコードスニペット
- Resize PDA
- On-Curve Delegation
委任済み PDA をリサイズする際には:⬆️ Back to Top
- 新しいアカウントサイズでも rent-exempt を保てるだけの lamports が PDA に必要です。
- 追加 lamports が必要な場合、差額を提供するために payer account も委任済みである必要があります。
- PDA はプログラム所有である必要があり、lamports 転送に必要な signer をトランザクションに含める必要があります。
system_instruction::allocateを使用します。
Solana エクスプローラー
Solana 上のトランザクションとアカウントの情報を確認できます。Solana エクスプローラー
公式 Solana エクスプローラー
Solscan
Solana ブロックチェーンを探索する
Solana RPC プロバイダー
既存の RPC プロバイダーを通じてトランザクションやリクエストを送信します。Solana
Free Public Nodes
Helius
Free Shared Nodes
Triton
Dedicated High-Performance Nodes
Solana バリデータダッシュボード
Solana バリデータインフラのリアルタイム更新を確認できます。Solana Beach
Get Validator Insights
Validators App
Discover Validator Metrics
サーバーステータス
Solana と MagicBlock のサーバーステータスを確認しましょう。Solana Status
Subscribe to Solana Server Updates
MagicBlock Status
Subscribe to MagicBlock Server Status

