Solana 文档参考文献

术语

以下术语在 Solana 文档和开发生态系统中广泛使用。

账户

Solana 账本中的一条记录,可用于持有数据,也可以是一个可执行程序。

与传统银行账户类似,Solana 账户可以持有称为 lamports 的资金。集群中的每个账户都有一个唯一的地址。

应用

与 Solana 集群交互的前端应用程序。

地址

Solana 中可用于查找账户的位置。Solana 集群中的每个地址都是唯一的。

Solana 中的地址可以是 Ed25519 公钥,也可以是 Program Derived Address。

地址查找表(ALT)

一种用于存储账户地址列表的数据结构,使版本化交易能够使用紧凑的 1 字节索引来引用账户,而不是使用完整的 32 字节公钥。地址查找表使单笔交易能够引用比原始交易格式所允许的更多账户。只有版本 0(v0)交易支持地址查找表;版本 1(v1)移除了该功能,改为使用更大的交易大小,以便将相同的地址直接内联包含。

Anchor

一个用于使用 Rust 构建 Solana 链上程序的框架。Anchor 提供了可减少样板代码的宏、标准化的账户验证系统,并生成用于描述程序接口的 IDL。它是 Solana 程序开发中使用最广泛的框架。

associated token account(ATA)

一种 token account,其地址由钱包地址和代币铸造账户确定性派生而来。Associated Token Program 确保每个钱包针对每种代币类型都有一个规范的 token account。

权限主体

对某个账户拥有某种权限的用户地址。

例如:

  • 铸造新代币的能力会授予作为该代币铸造账户“铸造权限主体”的账户。
  • 升级程序的能力会授予作为该程序“升级权限主体”的账户。

自动做市商(AMM)

一种链上交易模型,用户不是与交易对手方的挂单交易,而是与由定价公式管理的代币储备池进行交易。价格会随储备量变化而变动,因此交易会产生与规模成比例的滑点。

银行状态

在给定tick 高度解释账本上所有程序后得到的结果。它至少包括所有持有非零账户原生代币的集合。

区块

账本上一组连续的条目,由一个投票覆盖。一个leader在每个 slot 最多生成一个区块。

区块哈希

用于标识一条记录(区块)的唯一值(哈希)。Solana 根据区块最后一个条目 ID 计算区块哈希。

区块高度

当前区块之下的区块数量。创世区块之后的第一个区块高度为一。

引导 validator

生成区块链创世(第一个)区块的 validator。

BPF 加载器

Solana 中拥有并加载 BPF 链上程序的程序,使程序能够与运行时交互。

bump

在派生 Program Derived Address 时追加到种子中的单个字节(0–255),用于确保生成的地址落在 ed25519 曲线之外,因此是有效的 PDA。规范 bump 是能够生成有效 PDA 的最高值,通常会保存在账户数据中以避免重新计算。

中央限价订单簿(CLOB)

一种交易所模型,维护已排序的静态买单和卖单列表;当新进入的订单与对手方订单交叉时,交易即发生。与自动做市商相对。

客户端

访问 Solana 服务器网络集群的计算机程序。

确认承诺

衡量网络对区块确认程度的指标。

紧凑数组格式

紧凑数组是按照以下格式序列化的数组:

  • 数组长度(编码为 compact-u16)
  • 数组项依次列出

紧凑数组格式紧凑数组格式

紧凑数组格式用于在交易消息中编码账户地址数组和指令数组。

集群

维护单个账本的一组 validators。

计算预算

每笔交易可消耗的计算单元最大数量。

计算单元

衡量区块链计算资源消耗的最小计量单位。计算单元用于衡量处理一笔交易所使用的计算资源。

确认时间

从 leader 创建tick 条目到创建已确认区块之间的实际时钟时长。

已确认区块

已获得账本投票绝对多数支持的区块。

控制平面

连接集群中所有节点的 gossip 网络。

冷却期

质押停用后的若干个 epochs,在此期间质押会逐步变为可提取状态。在此期间,该质押被视为处于“停用中”。更多信息请参阅:预热与冷却

成本单元

也称为 transaction cost,是对处理一笔交易所需全部资源的综合估算,以计算单元计量。更多信息见此处。

积分

参见投票积分。

Cross Program Invocation(CPI)

从一个链上程序到另一个链上程序的调用。更多信息请参阅程序间调用。

数据平面

一种用于高效验证条目并达成共识的多播网络。

drone

一种链下服务,充当用户私钥的托管方。它通常用于验证并签署交易。

条目

账本上的一个条目,可以是 tick,也可以是交易条目。

条目 ID

基于条目最终内容计算的抗原像哈希,作为该条目的全局唯一标识符。该哈希可作为以下事项的证据:

  • 该条目是在经过一段时间后生成的
  • 指定的交易就是该条目中包含的交易
  • 该条目相对于账本中其他条目的位置

参见历史证明。

epoch

leader 排期有效的时间,即 slots 数量。

托管

一种模式:链上程序代表两个或多个参与方将代币保存在金库中,直到满足程序定义的条件后再释放这些代币。用于消除各方直接相互信任的需求。

费用账户

交易中的费用账户是用于支付将交易纳入账本成本的账户。它是交易中的第一个账户。由于支付交易费用会减少账户余额,因此该账户必须在交易中声明为读写(可写)。

终局性

当代表 2/3 质押的节点拥有共同根时即达到终局性。

分叉

从共同条目派生而来但随后发生分歧的账本。

创世区块

链上的第一个区块。

创世配置

用于为创世区块准备账本的配置文件。

哈希

一串字节序列的数字指纹。

通胀

代币供应量随时间增加,用于资助验证奖励以及 Solana 的持续开发。

内部指令

参见 Cross Program Invocation。

指令

用于调用程序中特定指令处理器的调用。指令还会指定它想要读取或修改哪些账户,以及作为指令处理器辅助输入的附加数据。客户端必须在一笔交易中包含至少一条指令,并且所有指令都必须完成,该交易才会被视为成功。

指令处理器

指令处理器是程序中用于处理来自交易的指令的函数。一个指令处理器可以包含一个或多个 Cross Program Invocation。

IDL

接口定义语言。由 Anchor 生成的 JSON 文件,用于描述程序的指令处理器、账户和类型。IDL 允许客户端库自动生成类型化接口,以便与链上程序交互。

keypair

用于访问账户的公钥及其对应的私钥。

lamport

一种分数单位的原生代币,其价值为 0.000000001 SOL。

在计算预算中,计算优先费用时会使用一定数量的 micro-lamports。

leader

当 validator 向账本追加条目时所承担的角色。

leader 排期

映射到 slots 的一系列 validator 公钥。集群使用 leader 排期来确定任意时刻哪个 validator 是 leader。

账本

包含由客户端签名的交易的条目列表。从概念上讲,它可以追溯到创世区块,但实际 validator 的账本可能只保留较新的区块以减少存储,因为按照设计,较旧的区块并不需要用于验证未来区块。

账本投票

在给定tick 高度下validator 状态的哈希。它包含validator对其已收到的区块已通过验证的确认,以及在特定时间段(即锁定期)内不为冲突区块\(即分叉\)投票的承诺。

轻客户端

一种客户端,可验证其指向的是有效的 集群。它执行的账本验证多于 轻客户端,少于validator。

流动性

在当前价格或接近当前价格可用于交易的订单深度或池化储备深度。更深的流动性可降低滑点。在 CLOB 上,流动性由 maker 订单提供;在 AMM 上,则由向池中存入代币对的流动性提供者提供。

加载器

一种程序,能够解释其他 链上程序的二进制编码。

锁定期

validator 无法对另一个分叉进行投票的持续时间。

maker

其订单通过挂在订单簿上而不是立即与对手方成交,从而向 CLOB 增加流动性的交易者。此类订单称为 maker 订单。 Maker 通常无需支付费用,或可从交易场所获得返佣。

做市商

通过持续挂出买单和卖单来提供流动性的实体。在 Solana 上,做市商可以是程序(例如 AMM),也可以是运行机器人的链下公司,在 CLOB 上挂出 maker 订单。

消息

交易的结构化内容。通常包含一个头部、账户地址数组、最近的blockhash,以及一个 指令数组。

在此了解更多关于 交易中的消息格式的信息。

micro-lamport

1,000,000 micro-lamports = 1 lamport

Nakamoto 系数

衡量去中心化程度的指标。Nakamoto 系数是指能够共同行动关闭一条区块链所需的最少独立实体数量。该术语由 Balaji S. Srinivasan 和 Leland Lee 在 Quantifying Decentralization中提出。

原生代币

用于跟踪集群中节点所完成工作的代币。

节点

参与集群的一台计算机。

节点数量

参与集群的validator数量。

链下

描述存在于 Solana 区块链之外或在其之外运行的数据、流程或服务,例如 RPC 客户端、索引器、前端以及链下订单簿 maker。与链上相对应。“Offchain”(不带连字符)是首选拼写。

链上

描述存在于区块链上或在区块链上执行的数据或程序。“Onchain”(不带连字符)是首选拼写。

链上程序

Solana 区块链上的可执行代码,用于解释每个交易中发送的指令,以读取和修改其控制下的账户。这些程序在其他区块链上通常被称为“智能合约”。

预言机

一种链上程序,用于发布来自链外的数据(最常见的是现实世界资产的价格),供其他程序读取。

所有者

可指所属程序或所属钱包。例如, getTokenAccountsByOwner 会获取某个特定钱包拥有的 token account;然而,这些 token account 的所属程序是token program。

为避免混淆,最好使用所属程序或所属钱包,而不是泛称“owner”。

所属程序

拥有该账户的程序的地址。只有所属程序能够修改该账户。

另请参见权限。

所属钱包

与账户关联的钱包。例如,token program 用于存储与特定钱包和 mint 关联的 token account,其地址由该钱包和mint生成。

PoH

参见历史证明。

积分

奖励机制中的加权信用。在validator 奖励机制中,赎回期间应归属于某个质押的积分数量,等于所获得的投票信用与质押的 lamport数量的乘积。

私钥

keypair 的私钥。

程序

参见链上程序。

Program Derived Address (PDA)

一种账户,其地址基于 链上程序以及程序作者创建的一个或多个seed生成。PDA 地址不是公钥,且 PDA 没有私钥。

PDA 的签名权限来自作为其所属程序的链上程序。

程序 ID

包含程序的账户的公钥。

历史证明(PoH)

一组证明,其中每个证明都证明某些数据在该证明创建之前已经存在,并且在前一个证明之后经过了精确的时间段。与 VDF 类似,历史证明的验证所需时间少于生成它所需的时间。

优先级费用

用户可在计算预算指令中指定的一项额外费用,用于提升其交易的优先级。

优先级费用的计算方式为:请求的最大计算单元数乘以计算单元价格(以每计算单元 0.000001 lamports 为增量指定),然后向上取整到最接近的 lamport。

交易应请求执行所需的最少计算单元数量,以尽量降低费用。

公钥(pubkey)

keypair 的公钥。公钥是账户在 Solana 上可使用的不同地址类型之一。

rent

账户和程序为在区块链上存储数据而支付的费用。当账户余额不足以支付 rent 时,它们可能会被垃圾回收。

另请参见下文的rent 豁免。在此了解更多关于 rent 的信息: 什么是 rent?。

rent 豁免

指保持最低 lamport 余额的账户,该余额与账户中存储的数据量成比例。所有新创建的账户都会永久存储在链上,直到该账户被关闭。无法创建低于 rent 豁免阈值的账户。

根

在validator上达到最大锁定期的区块或slot。根是某个 validator 上所有活跃分叉的最高祖先区块。根的所有祖先区块也会传递性地成为根。既不是根的祖先也不是根的后代的区块,将被排除在共识考虑之外并可被丢弃。

运行时

validator 中负责程序执行的组件。

Sealevel

Solana 用于链上程序的并行运行时。

seed

在派生Program Derived Address时用作输入的一个字节值或字节值数组。程序可以使用静态字符串、公钥或其他数据的任意组合作为 seed。seed 会与程序 ID 和bump 结合,生成唯一的 PDA 地址。

shred

区块的一部分;在validator之间发送的最小单位。

签名

由 R(32 字节)和 S(32 字节)组成的 64 字节 ed25519 签名。要求 R 是一个打包的 Edwards 点且不属于小阶,S 是范围为 0 <= S < L 的标量。此要求可确保签名不可塑。每笔交易必须至少有一个用于费用账户的签名。因此,交易中的第一个签名可被视为交易 ID。

签名者

已授权某个指令或交易的账户。对于常规keypair,这意味着对交易进行加密签名。对于Program Derived Address,由于 PDA 没有私钥,因此授权由作为其所属程序的程序在发起Cross Program Invocation时声明。

跳过率

当前 epoch 中被跳过的 slot占全部领导者 slot 的百分比。该指标可能具有误导性,因为在 epoch 边界之后样本量较小时,以及对于领导者 slot 数量较少的 validator,其方差都很高;不过在某些情况下,它也有助于识别节点配置错误。

被跳过的 slot

过去某个未产生区块的slot,原因可能是领导者离线,或包含该 slot 的分叉被集群共识放弃并选择了更好的替代分叉。被跳过的 slot 不会作为后续 slot 中区块的祖先出现,也不会增加区块高度,也不会使最旧的 recent_blockhash 过期。

只有当某个 slot 早于最新的已生根(因此未被跳过)slot 时,才能确定该 slot 是否已被跳过。

滑点

交易者预期价格与其交易实际成交价格之间的差异。在 AMM 上,滑点来自储备变化导致定价曲线移动;在 CLOB 上,滑点来自单个订单以逐步变差的价格消耗多个挂单。

slot

每个领导者接收交易并生成区块的时间段。

总体而言,slot 构成一个逻辑时钟。slot 按顺序排列且互不重叠,并根据 PoH 包含大致相等的现实时间。

智能合约

参见链上程序。

SOL

Solana 集群的原生代币。

Solana Program Library (SPL)

Solana 上的程序库,例如 spl-token,可用于支持创建和使用代币等任务。

质押

如果能够证明validator存在恶意行为,则会被罚没给集群的代币。

按质押权重分配的服务质量(SWQoS)

SWQoS 允许 对来自已质押 validator 的交易给予优先待遇。

超级多数

集群的 2/3。

System Program

Solana 原生程序(程序 ID 11111111111111111111111111111111), 负责创建新账户、分配账户数据、 将账户分配给程序,以及在账户之间转移 SOL。 Solana 上所有新账户在被重新分配之前均归系统程序所有。

sysvar

一种系统账户。Sysvar 提供集群状态信息,例如当前 tick 高度、奖励 积分值等。程序可以通过 Sysvar 账户 (pubkey)或通过系统调用来访问 Sysvar。

taker(吃单方)

通过越过订单簿对手方并与一个或多个挂单撮合, 从 CLOB 中移除流动性的交易者。 此类订单称为吃单,吃单方通常需要支付交易场所的手续费。

瘦客户端

一种客户端类型,信任自己正在与有效的 集群通信。

tick

账本中用于估算实际时钟时长的条目。

tick 高度

账本中第 N 个 tick。

代币

可数字化转移的资产。

token account

持有特定代币余额的账户。token account 归 Token Program 或 Token Extensions Program 所有,存储代币 余额、关联的代币铸造账户以及所属钱包 地址。

Token Extensions Program

Token Extensions Program 的程序 ID 为 TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb,包含 与 Token Program 相同的所有功能,并额外支持 保密余额、自定义转账逻辑、扩展元数据 等更多功能。

代币铸造账户

可以生产(即"铸造")代币的账户。不同代币通过 其唯一的代币铸造账户地址加以区分。

Token Program

Token Program 的程序 ID 为 TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA,提供代币转账、 冻结和铸造的基本功能。

tps

每秒交易数。

tpu

交易处理单元。

交易

由客户端使用一个或多个 keypair 签署的一条或多条 指令,以原子方式执行,结果只有两种: 成功或失败。

交易 ID

交易中的第一个签名,可用于 在完整账本中唯一标识该交易。

交易确认数

自交易被接受到账本以来,已确认区块的数量。 当交易所在区块成为根时,该交易即视为最终确认。

交易条目

一组可并行执行的交易。

tvu

交易验证单元。

validator

Solana 网络集群中的完整参与者,负责生产新 区块。validator 验证添加到 账本的交易。

vault(资金库)

由链上程序拥有的 token account, 代表用户持有池化资产—— 例如 AMM 的基础资产和报价资产储备、托管中的锁定代币, 或 CLOB 的挂单余额和累计手续费。 只有拥有该 vault 的程序才能将代币转出, 通常在满足交易或释放条件后转入用户自己的 token account。

VDF

参见可验证延迟函数。

可验证延迟函数(VDF)

一种需要固定时间执行的函数,执行后生成可证明其已运行的证明, 该证明的验证时间少于生成所需时间。

版本化交易

一种支持原始交易格式之外附加功能的交易格式。 版本 0(v0)是首个版本化格式,新增对地址查找表的支持, 使交易能够引用比原始格式更多的账户。 版本 1(v1)已在所有集群上启用,将最大交易 大小提升至 4,096 字节,在消息的配置部分携带资源限制(而非 ComputeBudget 指令), 并取消了地址查找表支持。 参见版本化交易。

投票

参见账本投票。

投票积分

validator 的奖励计数。当 validator 达到 根时,其投票账户将获得一个投票积分。

钱包

一组 keypair 的集合,允许用户管理其资产。

预热期

质押被委托后,在其逐步生效期间所经历的若干个 epoch。 在此期间,该质押被视为"激活中"。更多信息: 预热与冷却

Is this page helpful?

Table of Contents

Edit Page
©️ 2026 Solana 基金会版权所有