跳转到主要内容

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.


快速访问

查看示例:

GitHub

Private Counter 的 Anchor 实现

在线示例应用

试用 Private Counter
MagicBlock 的 Private Ephemeral Rollup 会在入口处、交易被接受或执行之前, 基于节点级 IP 地理围栏、OFAC 制裁名单以及受限司法辖区来执行合规控制。了解更多

分步指南

构建你的程序,并通过 MagicBlock 的 Permission Program ACLseoPoyC3cBqoUtkbjZ4aDrkurZW86v19pXz2XQnp1 和 Delegation Program DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh 添加权限与委托钩子来升级它:
1

编写你的程序

像往常一样编写你的 Solana 程序。
2

在程序中加入「委托与权限限制」钩子

一个 delegate 指令即可创建 permission 账户、对其进行委托,然后再将受权限管控的账户委托给 TEE validator。一个对称的 undelegate 指令则在回到基础层时原子地释放这两个账户。查看访问控制详情

这些公共验证器可用于开发环境。请确保在你的委托指令中添加对应的 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): MTEWGuqxUpYZGFJQcp8tLN7x5v9BSeoFHYWQQ3n3xzo
本地网络
  • 本地 ER (localhost:7799): mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev
3

在 Solana 上部署你的程序

使用 Anchor CLI 部署你的 Solana 程序。
4

在客户端实现授权流程

让用户对消息进行签名,从 TEE 端点获取授权令牌。
5

执行交易并测试隐私

请求授权令牌并发送机密交易。

Private Counter 示例

你可能需要以下软件包,其他版本也可能兼容:
软件版本安装指南
Solana2.3.13安装 Solana
Rust1.85.0安装 Rust
Anchor0.32.1安装 Anchor
Node24.10.0安装 Node
最新的 Permission Program 需要 SDK 版本 >=0.8.0。详情请参阅迁移指南

代码片段

一个简单的 counter 程序,包含 initializeincrement 指令,结构与公开版本的 counter 完全相同 —— 隐私能力将在后续步骤中加入:
#[ephemeral]
#[program]
pub mod private_counter {
    use super::*;

    /// Initialize the counter.
    pub fn initialize(ctx: Context<Initialize>) -> Result<()> {
        let counter = &mut ctx.accounts.counter;
        counter.count = 0;
        Ok(())
    }

    /// Increment the counter.
    pub fn increment(ctx: Context<Increment>) -> Result<()> {
        let counter = &mut ctx.accounts.counter;
        counter.count += 1;
        Ok(())
    }

    /// ... Other instructions for delegation, permission, and privacy
}

pub const COUNTER_SEED: &[u8] = b"counter";

/// Context for initializing counter
#[derive(Accounts)]
pub struct Initialize<'info> {
    #[account(init_if_needed, payer = user, space = 8 + 8, seeds = [COUNTER_SEED], bump)]
    pub counter: Account<'info, Counter>,
    #[account(mut)]
    pub user: Signer<'info>,
    pub system_program: Program<'info, System>,
}

/// Context for incrementing counter
#[derive(Accounts)]
pub struct Increment<'info> {
    #[account(mut, seeds = [COUNTER_SEED], bump)]
    pub counter: Account<'info, Counter>,
}

/// Counter struct
#[account]
pub struct Counter {
    pub count: u64,
}

/// Other context and accounts for delegation and privacy ...
⬆️ 回到顶部

访问控制

细粒度访问控制

链上隐私

隐私机制与核心概念

授权

授权框架

合规框架

合规标准与指南

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

MagicBlock 产品

Ephemeral Rollup(ER)

在 Solana 上安全执行实时、零手续费交易。

Private Ephemeral Rollup(PER)

在合规的前提下保护敏感数据——基于 Ephemeral Rollups 构建。

私密支付 API

几秒钟为你的应用集成链上私密转账——默认合规。

可验证随机函数(VRF)

一秒之内获得可证明公平的链上随机性——完全免费。

价格预言机

获取适用于交易和 DeFi 的低延迟链上价格数据。