以下术语贯穿于 Solana 文档和开发生态系统中。
账户
Solana 账本中的一条记录,可以存储数据或是一个可执行的程序。
与传统银行的账户类似,Solana 账户可以持有称为 lamport 的资金。集群中的每个账户都有一个唯一的地址。
应用程序
与 Solana 集群交互的前端应用程序。
地址
Solana 中可用于查找账户的位置。每个地址在 Solana 集群中都是唯一的。
Solana 中的地址可以是 Ed25519 公钥或程序派生地址。
地址查找表(ALT)
一种存储账户地址列表的数据结构,允许版本化交易使用紧凑的 1 字节索引而非完整的 32 字节公钥来引用账户。地址查找表使单个交易能够引用比原始交易格式所允许的更多账户。
Anchor
一个用 Rust 构建 Solana 链上程序的框架。Anchor 提供了减少样板代码的宏、标准化的账户验证系统,并生成描述程序接口的 IDL。它是 Solana 程序开发中使用最广泛的框架。
关联代币账户(ATA)
一种代币账户,其地址由钱包地址和代币铸造确定性派生。关联代币账户程序确保每个钱包针对每种代币类型都有一个规范的代币账户。
权限
对某个账户拥有某种权限的用户地址。
例如:
- 铸造新代币的能力授予作为代币铸造"铸造权限"的账户。
- 升级程序的能力授予作为程序"升级权限"的账户。
银行状态
在给定tick 高度时解释账本上所有程序的结果。它至少包括所有持有非零原生代币的账户集合。
区块
账本上被投票覆盖的一组连续条目。领导者在每个 slot 中最多产生一个区块。
区块哈希
一个唯一值(哈希),用于标识一条记录(区块)。Solana 从区块的最后一个条目 ID 计算区块哈希。
区块高度
引导验证者
BPF 加载器
拥有并加载 BPF 链上程序的 Solana 程序,允许程序与运行时交互。
偏移量
在派生 Program Derived Address 时附加到种子的单字节值(0-255),用于确保生成的地址不在 ed25519 曲线上,从而成为有效的 PDA。规范偏移量是生成有效 PDA 的最高值,通常保存在账户数据中以避免重新计算。
客户端
访问 Solana 服务器网络集群的计算机程序。
确认度
区块的网络确认程度的度量。
紧凑数组格式
紧凑数组是按以下格式序列化的数组:
- 数组长度(编码为 compact-u16)
- 依次列出的数组项
紧凑数组格式
集群
计算预算
每笔交易消耗的计算单元的最大数量。
计算单元
区块链计算资源消耗的最小度量单位。计算单元用于衡量处理交易所使用的计算资源。
确认时间
已确认区块
控制平面
冷却期
质押被停用后经过的若干epoch期间,质押在此期间逐步可供提取。在此期间,质押被视为"停用中"。更多信息请参阅:预热和冷却
成本单元
也称为transaction cost,是处理交易所需的所有资源的综合估算,以计算单元衡量。更多信息请参见此处。
信用
参见投票信用。
跨程序调用(CPI)
数据平面
用于高效验证条目并达成共识的多播网络。
无人机
作为用户私钥托管方的链下服务。通常用于验证和签署交易。
条目
条目ID
对条目最终内容进行抗原像哈希运算得出的结果,作为该条目的全局唯一标识符。该哈希值可证明:
参见历史证明。
epoch
时间,即 slot 的数量,表示一个领导者调度的有效期。
手续费账户
交易中的手续费账户是支付将交易包含在账本中所需费用的账户。这是交易中的第一个账户。该账户必须在交易中声明为可读写(writable),因为支付交易会减少账户余额。
最终性
当代表 2/3 质押的节点拥有共同的根时。
分叉
从共同条目派生但随后分歧的账本。
创世区块
链中的第一个区块。
创世配置
为创世区块准备账本的配置文件。
哈希
字节序列的数字指纹。
通胀
随时间推移代币供应量的增加,用于资助验证奖励和 Solana 的持续开发。
内部指令
参见 Cross Program Invocation。
指令
调用程序中特定指令处理器的请求。指令还指定它想要读取或修改的账户,以及作为指令处理器辅助输入的附加数据。客户端必须在交易中包含至少一个指令,且所有指令都必须完成才能将交易视为成功。
指令处理器
指令处理器是处理来自交易的指令的程序函数。一个指令处理器可能包含一个或多个跨程序调用。
IDL
接口定义语言。由 Anchor 生成的 JSON 文件,描述程序的指令处理器、账户和类型。IDL 允许客户端库自动生成用于与链上程序交互的类型化接口。
keypair
lamport
一种原生代币的小数单位,其值为 0.000000001 SOL。
leader
leader schedule
一系列映射到插槽的验证者公钥。集群使用 leader schedule 来确定在任何时刻哪个验证者是 leader。
ledger
一个包含由客户端签名的交易的条目列表。从概念上讲,它可以追溯到创世区块,但实际的验证者账本可能只有较新的区块以减少存储,因为按设计较旧的区块不需要用于验证未来的区块。
ledger vote
在给定区块高度下验证者状态的哈希值。它包含验证者对其收到的区块已被验证的确认,以及在特定时间段(锁定期)内不对冲突的区块(即分叉)投票的承诺。
light client
一种客户端类型,可以验证它是否指向有效的集群。它执行的账本验证比瘦客户端多,但比验证者少。
loader
lockout
message
交易的结构化内容。通常包含一个头部、账户地址数组、最近的区块哈希以及指令数组。
在此了解更多关于交易内部消息格式的信息。
微 lamport
1,000,000 微 lamport = 1 lamport
中本系数
中本系数是衡量去中心化程度的指标,指能够集体关闭区块链的最少独立实体数量。该术语由 Balaji S. Srinivasan 和 Leland Lee 在《量化去中心化》一文中提出。
原生代币
节点
参与集群的计算机。
节点数量
链上
描述存在于或在区块链上执行的数据或程序。"链上"(无连字符)是首选拼写。
链上程序
Solana 区块链上的可执行代码,用于解释每笔交易中发送的指令,以读取和修改其控制的账户。这些程序在其他区块链上通常被称为"智能合约"。
所有者
可指拥有程序或拥有钱包。例如,getTokenAccountsByOwner 获取特定钱包拥有的 token account,但这些 token account 的拥有程序是 Token Program。
为避免混淆,建议使用拥有程序或拥有钱包,而不是使用泛指的术语"所有者"。
拥有程序
另见权限。
所属钱包
与账户关联的钱包。例如,Token Program 用于存储与特定钱包和代币铸造相关联的 token account,使用由该钱包和代币铸造生成的地址。
PoH
参见历史证明。
积分
奖励机制中的加权信用。在 validator 奖励机制中,赎回期间欠质押的积分数量是所获得的投票信用与质押的 lamport 数量的乘积。
私钥
keypair 的私钥。
程序
参见链上程序。
Program Derived Address (PDA)
一种账户,其地址基于链上程序和由程序作者创建的一个或多个种子生成。PDA 地址不是公钥,PDA 也没有私钥。
程序 ID
历史证明 (PoH)
一组证明堆栈,每个证明都证明某些数据在该证明创建之前就已存在,并且在上一个证明之前经过了精确的时间间隔。与 VDF 类似,历史证明的验证时间少于生成时间。
优先级费用
用户可以在计算预算 instruction 中指定的额外费用,以优先处理其交易。
优先级费用的计算方法是将请求的最大计算单元数乘以计算单元价格(以每计算单元 0.000001 lamport 为增量单位指定),然后向上取整到最接近的 lamport。
交易应请求执行所需的最小计算单元量,以最小化费用。
公钥 (pubkey)
密钥对的公钥。公钥是账户在 Solana 上可能使用的不同类型地址之一。
rent
账户和程序为在区块链上存储数据而支付的费用。当账户余额不足以支付 rent 时,可能会被垃圾回收。
另见下文的免租金。在此了解更多关于 rent 的信息:什么是 rent?。
免租金
维持与账户上存储的数据量成比例的最低 lamport 余额的账户。所有新创建的账户都会永久存储在链上,直到账户被关闭。无法创建低于免租金阈值的账户。
根区块
在验证节点上达到最大锁定期的区块或槽位。根区块是验证节点上所有活跃分叉的共同祖先中的最高区块。根区块的所有祖先区块也传递性地成为根区块。不是根区块的祖先也不是其后代的区块将被排除在共识考虑之外,并可被丢弃。
运行时
Sealevel
Solana 的链上程序并行运行时。
seed
在派生程序派生地址时用作输入的字节值或字节值数组。程序可以使用静态字符串、公钥或其他数据的任意组合作为 seed。Seed 与程序的 ID 和碰撞值组合,生成唯一的 PDA 地址。
shred
签名
一个64字节的ed25519签名,由R(32字节)和S(32字节)组成。要求R是一个非小阶的压缩Edwards点,S是0 <= S < L范围内的标量。此要求确保签名不可延展。每笔交易必须至少有一个手续费账户的签名。因此,交易中的第一个签名可以被视为交易ID。
跳过率
当前epoch中跳过的slot占总领导者slot的百分比。这个指标可能具有误导性,因为在epoch边界之后样本量较小时具有高方差,对于领导者slot数量较少的验证者也是如此,但在某些情况下也可用于识别节点配置错误。
跳过的slot
过去某个未能产生区块的slot,原因是领导者离线或包含该slot的分叉被集群共识放弃而选择了更好的替代方案。跳过的slot不会作为后续slot区块的祖先出现,也不会增加区块高度,也不会使最旧的recent_blockhash过期。
只有当slot变得比最新的已确认根(即未跳过的)slot更旧时,才能确定该slot是否已被跳过。
slot
总体而言,slot创建了一个逻辑时钟。Slot按顺序排列且不重叠,根据历史证明,每个slot在现实世界中的时间大致相等。
智能合约
参见链上程序。
SOL
Solana 程序库(SPL)
Solana 上的程序库,例如 spl-token,用于简化创建和使用代币等任务。
质押
质押加权服务质量(SWQoS)
SWQoS 允许对来自质押验证者的交易给予优先处理。
绝对多数
集群的 2/3。
System Program
Solana 原生程序(程序 ID
11111111111111111111111111111111),负责创建新账户、分配账户数据、将账户分配给程序,以及在账户之间转移
SOL。Solana 上的所有新账户在重新分配之前都归 System Program 所有。
sysvar
系统账户。Sysvars 提供集群状态信息,例如当前时钟高度、奖励积分值等。程序可以通过 Sysvar 账户(pubkey)或通过系统调用查询来访问 Sysvars。
瘦客户端
时钟周期
估算实际时间持续时长的账本条目。
时钟高度
代币
可数字化转移的资产。
token account
一种账户,用于持有某种特定代币的余额。Token账户由Token Program或Token Extensions Program管理,存储代币余额、关联的token mint以及拥有者钱包地址。
Token Extensions Program
Token Extensions Program(Token 扩展程序)的程序ID为TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb,具备与Token Program相同的所有功能,此外还支持扩展功能,如保密转账、自定义转账逻辑、拓展元数据等。
token mint
可生成("铸造")代币的账户。不同的代币通过其唯一的 token mint 地址区分。
Token Program
Token Program(Token 程序)的程序ID为TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA,提供代币的基本转账、冻结和铸造能力。
tps
每秒交易数量。
tpu
transaction
由客户端使用一个或多个keypair签名的一个或多个指令,以原子方式执行,仅有两种可能结果:成功或失败。
transaction id
transaction confirmations
自交易被纳入账本以来,已确认区块的数量。当该交易所在的区块成为root时,该交易即被最终确认。
transactions entry
可并行执行的一组交易。
tvu
validator
Solana 网络集群中的完整参与者,负责生产新的区块。validator 会对加入账本的交易进行验证。
VDF
参见可验证延迟函数。
可验证延迟函数(VDF)
一种需要固定时间执行的函数,它会生成一个运行证明,该证明可以在比生成时更短的时间内被验证。
版本化交易
一种支持原始交易格式之外附加功能的交易格式。版本 0(v0)是第一个版本化格式,增加了对地址查找表的支持,使交易能够引用比原始格式允许的更多账户。
投票
参见账本投票。
投票积分
验证者的奖励计数。当验证者达到根时,其投票账户会获得投票积分奖励。
钱包
一组密钥对的集合,允许用户管理其资金。
预热期
Is this page helpful?