Documentation Index
Fetch the complete documentation index at: https://docs.magicblock.gg/llms.txt
Use this file to discover all available pages before exploring further.
クイックアクセス
Anchor と Native Rust のプログラムおよびテストスクリプトを確認できます。
ローカルセットアップの選択肢
Ephemeral Rollups はローカルで次の 3 通りの方法で実行できます。
mb-test-validator をベースレイヤーにし、ローカル ephemeral-validator を組み合わせた完全ローカル構成
- ベースレイヤーの代替としてローカル Surfpool を使いつつ、rollup 自体もローカルで動かす構成
- ローカル
ephemeral-validator を Devnet などの公開ベースレイヤーに直接接続する構成
すべてを自分のマシン上で動かしたいなら完全ローカル構成を使います。Surfpool のワークフローを維持しながらローカル Ephemeral Rollup を試したいなら Surfpool を使います。ローカル Solana validator を起動せずにローカル rollup プロセスだけ使いたいなら Devnet オプションを使います。
重要: 正しいバリデータ ID でプログラムをアップグレードする
ローカル ER バリデータを使う場合は、アカウントが委任されるベースレイヤーに接続してください。特定の ER バリデータ ID に PDA を委任するなら、commit と undelegation がベースレイヤーで正しく完了するよう、プログラム内の delegation 設定も更新してください。
これらの公開バリデータは開発用として利用できます。委任命令には、
対象となる ER バリデータを必ず追加してください。
メインネット- アジア (as.magicblock.app):
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - EU (eu.magicblock.app):
MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e - 米国 (us.magicblock.app):
MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd - TEE (mainnet-tee.magicblock.app):
MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
Devnet- アジア (devnet-as.magicblock.app):
MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57 - EU (devnet-eu.magicblock.app):
MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e - 米国 (devnet-us.magicblock.app):
MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd - TEE (devnet-tee.magicblock.app):
MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
ローカルネット- ローカル ER (localhost:7799):
mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
Ephemeral Validator CLI をインストール
npm install -g @magicblock-labs/ephemeral-validator@latest
ローカル Solana ベースレイヤーを起動
mb-test-validator は完全ローカル構成のベースレイヤーとして使えるローカル Solana validator を起動します。mb-test-validator --reset
この構成では RPC に http://localhost:8899、WebSocket に ws://localhost:8900 を使います。localhost にプログラムをデプロイまたはアップグレード
cargo build-sbf
solana config set --url localhost
solana program deploy YOUR_PROGRAM_PATH
anchor build && anchor deploy \
--provider.cluster localnet
ローカル ephemeral validator を起動
ローカル Ephemeral Rollup をローカル Solana validator に接続します。ephemeral-validator --remotes "http://localhost:8899" --remotes "ws://localhost:8900" -l "7799" --lifecycle ephemeral
ローカル rollup に対してテストを実行
ローカル rollup は RPC が http://localhost:7799、WebSocket が ws://localhost:7800 で公開されます。EPHEMERAL_PROVIDER_ENDPOINT=http://localhost:7799 \
EPHEMERAL_WS_ENDPOINT=ws://localhost:7800 \
PROVIDER_ENDPOINT=http://localhost:8899 \
WS_ENDPOINT=ws://localhost:8900 \
yarn test
EPHEMERAL_PROVIDER_ENDPOINT="http://localhost:7799" \
EPHEMERAL_WS_ENDPOINT="ws://localhost:7800" \
anchor test \
--provider.cluster localnet \
--skip-local-validator \
--skip-build \
--skip-deploy
Surfpool をインストール
curl -sL https://run.surfpool.run/ | bash
Ephemeral Validator CLI をインストール
npm install -g @magicblock-labs/ephemeral-validator@latest
Surfpool を起動
この例では Surfpool はローカルで動かしつつ、上流のベースレイヤーとして Solana Devnet を使います。surfpool start --rpc-url https://api.devnet.solana.com
Surfpool は ephemeral validator が接続するローカル RPC / WebSocket エンドポイントを提供します。 ephemeral validator を起動
validator を Surfpool のローカル RPC / WebSocket エンドポイントに向けます。ephemeral-validator --remotes "http://localhost:8899" --remotes "ws://localhost:8900" -l "7799" --lifecycle ephemeral
rollup にテストトランザクションを送る
solana transfer <your address> 0 -u "http://localhost:7799"
Devnet にプログラムをデプロイまたはアップグレード
MagicBlock delegation を追加したプログラムを Devnet にデプロイします。cargo build-sbf
solana config set --url devnet
solana program deploy YOUR_PROGRAM_PATH
anchor build && anchor deploy \
--provider.cluster devnet
ローカル ephemeral validator をインストールして実行
npm install -g @magicblock-labs/ephemeral-validator@latest
RUST_LOG=info ephemeral-validator \
--lifecycle ephemeral \
--remote-url "https://rpc.magicblock.app/devnet" \
--rpc-port 7799
ローカル rollup に対してテストを実行
EPHEMERAL_PROVIDER_ENDPOINT=http://localhost:7799 \
EPHEMERAL_WS_ENDPOINT=ws://localhost:7800 \
yarn test
EPHEMERAL_PROVIDER_ENDPOINT="http://localhost:7799" \
EPHEMERAL_WS_ENDPOINT="ws://localhost:7800" \
anchor test \
--provider.cluster devnet \
--skip-local-validator \
--skip-build \
--skip-deploy
ローカルで VRF Oracle を動かす
VRF をエンドツーエンドでテストしたい場合は、ローカルの vrf-oracle をローカルテストキューに接続して実行します。
最新の Ephemeral Validator CLI をインストール
npm install -g @magicblock-labs/ephemeral-validator@latest
ローカル Solana validator を起動
mb-test-validator --reset
ephemeral validator を起動
ephemeral-validator --remote-url "http://localhost:8899" --rpc-port 7799 --lifecycle ephemeral
ローカル VRF オラクルを起動
このオラクルはリクエストをローカルテストキューに追加します。VRF_ORACLE_SKIP_PREFLIGHT="true" RPC_URL="http://localhost:8899" WEBSOCKET_URL="ws://localhost:8999" RUST_LOG=info vrf-oracle
ローカル validator が別の WebSocket ポートを使う場合は、WEBSOCKET_URL を適宜変更してください。