核心程序

概要

核心程序为网络提供基础功能:账户管理(System Program)、共识(Vote、Stake)、交易优化(Compute Budget、Address Lookup Table)以及隐私保护(ZK ElGamal Proof)。包含 System Program 指令参考和全部 7 个程序的源码链接。

System Program

System Program(11111111111111111111111111111111)是唯一可以创建新账户的程序。所有新账户最初都归 System Program 所有,但通常在创建时会重新分配所有权。System Program 每条指令会消耗 DEFAULT_COMPUTE_UNITS(150 CUs)。

System Program 指令参考

指令描述
CreateAccount创建新账户。分配 space 字节,指定 owner,并从付款人处转移 lamports。新账户和付款人都必须签名。
CreateAccountWithSeedCreateAccount 类似,但新账户地址由账户 pubkey、seed 字符串和 owner program 派生。用于派生地址的账户 pubkey 和付款人都必须签名。
Assign设置账户所有者。账户必须签名。如果已经是该所有者则无操作。
AssignWithSeedAssign 类似,但用于 seed 派生地址。用于派生地址的账户 pubkey 必须签名。
Transfer在账户之间转移 lamports。发送方必须签名。
TransferWithSeedTransfer 类似,但从 seed 派生地址转出。用于派生地址的账户 pubkey 必须签名。
Allocate设置账户数据长度。账户必须签名,数据需为空,且归 System Program 所有。最大 10 MiB。
AllocateWithSeedAllocate 类似,但用于 seed 派生地址。同时指定所有者。用于派生地址的账户 pubkey 必须签名。
AdvanceNonceAccount推进 nonce 值到当前 blockhash。nonce 权限人必须签名。
InitializeNonceAccount将账户初始化为 nonce 账户并指定权限人。账户必须满足 rent 免除条件。
AuthorizeNonceAccount更改 nonce 权限人。当前权限人必须签名。
WithdrawNonceAccount从 nonce 账户提取 lamports。权限人必须签名。如果不是关闭账户,剩余余额必须覆盖 rent。
UpgradeNonceAccount将 nonce 账户从旧版本升级到当前版本格式。账户必须可写且包含旧版 nonce。

所有核心程序

程序程序 ID描述源码
System11111111111111111111111111111111创建账户、转移 SOL、分配数据并分配所有权Source
VoteVote111111111111111111111111111111111111111创建和管理用于跟踪 validator 投票状态和奖励的账户Source
StakeStake11111111111111111111111111111111111111创建和管理对 validator 的质押委托Source
ConfigConfig1111111111111111111111111111111111111在链上以基于密钥的访问控制方式存储配置信息Source
Compute BudgetComputeBudget111111111111111111111111111111为交易设置计算单元限制和优先级费用Source
Address Lookup TableAddressLookupTab1e1111111111111111111111111管理用于引用多个账户的交易的地址查找表Source
ZK ElGamal ProofZkE1Gama1Proof11111111111111111111111111111验证 ElGamal 加密数据的零知识证明Source

加载器程序

每个程序都归属于一个加载器程序。加载器负责其所拥有程序的部署、升级和执行。完整的加载器及其地址列表,请参见 加载器程序

Is this page helpful?

Table of Contents

Edit Page

管理者

©️ 2026 Solana 基金会版权所有
取得联系