跳转到主要内容

快速入口

查看适用于 Anchor 和 Native Rust 的程序与测试脚本:

GitHub

Anchor 实现

GitHub

Native Rust 实现

本地设置选项

你可以通过三种方式在本地运行 Ephemeral Rollups:
  • 使用 mb-test-validator 作为基础层并搭配本地 ephemeral-validator 的完整本地栈。
  • 使用本地 Surfpool 作为基础层替代方案,同时仍在本地运行 rollup。
  • 让本地 ephemeral-validator 直接连接到如 Devnet 这样的公共基础层。
如果你希望所有组件都运行在自己的机器上,就选择完整本地方案。若你想保留 Surfpool 工作流,同时对本地 Ephemeral Rollup 进行测试,就选择 Surfpool。若你想在不运行本地 Solana validator 的情况下使用本地 rollup 进程,就选择 Devnet 方案。

重要:使用正确的验证器身份升级程序

使用本地 ER 验证器时,应将其连接到账户发生委托的那个基础层。如果你将 PDA 委托给某个特定的 ER 验证器身份,请更新程序中的 delegation 配置,以确保 commit 和 undelegation 能在基础层上正确完成。

这些公共验证器可用于开发环境。请确保在你的委托指令中添加对应的 ER 验证器:

主网
  • 亚洲 (as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • 欧盟 (eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • 美国 (us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (mainnet-tee.magicblock.app): MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
开发网
  • 亚洲 (devnet-as.magicblock.app): MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57
  • 欧盟 (devnet-eu.magicblock.app): MEUGGrYPxKk17hCr7wpT6s8dtNokZj5U2L57vjYMS8e
  • 美国 (devnet-us.magicblock.app): MUS3hc9TCw4cGC12vHNoYcCGzJG1txjgQLZWVoeNHNd
  • TEE (devnet-tee.magicblock.app): FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA
本地网络
  • 本地 ER (localhost:7799): mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
1

安装 Ephemeral Validator CLI

npm install -g @magicblock-labs/ephemeral-validator@latest
2

启动本地 Solana 基础层

mb-test-validator 会启动一个本地 Solana validator,可作为完整本地环境的基础层。
mb-test-validator --reset
该设置使用 http://localhost:8899 作为 RPC,ws://localhost:8900 作为 WebSocket 连接地址。
3

在 localhost 上部署或升级程序

cargo build-sbf
solana config set --url localhost
solana program deploy YOUR_PROGRAM_PATH
4

启动本地 ephemeral validator

将本地 Ephemeral Rollup 连接到本地 Solana validator:
ephemeral-validator --remotes "http://localhost:8899" --remotes "ws://localhost:8900" -l "7799" --lifecycle ephemeral
5

针对本地 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

在本地运行 VRF Oracle

如果你还需要端到端测试 VRF,可以让本地 vrf-oracle 对接本地测试队列运行。
1

安装最新的 Ephemeral Validator CLI

npm install -g @magicblock-labs/ephemeral-validator@latest
2

启动本地 Solana validator

mb-test-validator --reset
3

启动 ephemeral validator

ephemeral-validator --remote-url "http://localhost:8899" --rpc-port 7799 --lifecycle ephemeral
4

启动本地 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