欢迎订阅专栏:10分钟Solana-性能web3
Solana 的交易模型是其高性能架构的核心。与以太坊的串行处理不同,Solana 的交易模型围绕 “原子性”、“并行执行” 和 “低费用” 设计。
🧬 交易结构:原子操作单元
一个 Solana 交易由 签名 和 消息 两部分构成。
- 消息 (Message):这是交易的“指令清单”,包含:
- Header:声明账户的读写权限和签名数量。
- Account Addresses:交易涉及的所有账户地址列表。
- Recent Blockhash:用于防止交易重放和设定交易有效期(约 1-2 分钟)。
- Instructions:一个或多个具体操作指令,指明调用的程序、涉及的账户和传入的数据。
- 签名 (Signatures):一个签名数组,用于验证交易发起者的身份和权限。
关键特性:
- 原子性 (Atomicity):一个交易内的所有指令被视为一个整体,要么全部成功,要么全部失败,不存在部分执行的情况。
- 大小限制:交易有 1232 字节 的硬性上限。
- 交易格式:支持 Legacy 和 Versioned (v0) 两种格式,后者通过“地址查找表”支持更多账户。
⚡️ 交易生命周期:从提交到确认
一笔交易从用户发起最终被上链确认,大致经历以下几个阶段:
- 用户提交:用户使用钱包或应用构建并签名交易,然后发送给一个 RPC 节点。
- 转发至领导者:RPC 节点根据当前的领导者(Leader)调度表,将交易转发给负责生产下一个区块的验证者节点。
- 领导者处理与打包:领导者(当前区块生产者)验证交易的有效性,并将其打包进新区块。
- 广播与确认:新区块被广播给网络中的其他验证者,他们进行验证并最终达成共识。
整个过程在 Solana 约 400 毫秒 的极快出块时间内完成。
🚀 并行执行:Sealevel 引擎
这是 Solana 交易模型最具革命性的设计。传统区块链(如以太坊)串行处理交易,而 Solana 通过其 Sealevel 运行时 实现了智能合约的并行处理。
其工作原理如下:
- 预先声明 (Pre-Declaration):Solana 要求每笔交易在提交时,必须明确声明它将读取或写入哪些账户。
- 冲突检测:Sealevel 运行时根据这些声明,分析所有待处理交易。
- 并行调度:不涉及相同账户、无冲突的交易会被调度到不同的CPU核心上并行执行。涉及相同账户的交易则需要按顺序执行。
这种设计让 Solana 能够充分利用现代多核处理器的性能,是其实现高吞吐量的关键。
💸 费用模型:简单且可预测
Solana 的费用模型旨在保持简单、高效。
- 基础费用:每笔交易需支付一笔极低的基础费用,固定为 5,000 lamports(1 SOL = 10亿 lamports)。
- 优先费用 (Priority Fee):在网络拥堵时,用户可以额外支付按计算单元 (Compute Units) × 单价计算的优先费用,以换取更快的处理速度。
💎 总结
Solana 的交易模型通过 原子性交易 保证了确定性,通过 Sealevel 并行执行引擎 实现了高吞吐量,并通过 预先声明账户访问 的设计使其成为可能。这一套组合拳是其能够实现数千 TPS 和亚秒级确认时间的根本原因。