10分钟Solana-性能web3-1.3 Solana 的交易模型

1 阅读3分钟

欢迎订阅专栏10分钟Solana-性能web3

Solana 的交易模型是其高性能架构的核心。与以太坊的串行处理不同,Solana 的交易模型围绕 “原子性”、“并行执行”“低费用” 设计。

🧬 交易结构:原子操作单元

一个 Solana 交易由 签名消息 两部分构成。

  • 消息 (Message):这是交易的“指令清单”,包含:
    • Header:声明账户的读写权限和签名数量。
    • Account Addresses:交易涉及的所有账户地址列表。
    • Recent Blockhash:用于防止交易重放和设定交易有效期(约 1-2 分钟)。
    • Instructions:一个或多个具体操作指令,指明调用的程序、涉及的账户和传入的数据。
  • 签名 (Signatures):一个签名数组,用于验证交易发起者的身份和权限。

关键特性:

  • 原子性 (Atomicity):一个交易内的所有指令被视为一个整体,要么全部成功,要么全部失败,不存在部分执行的情况。
  • 大小限制:交易有 1232 字节 的硬性上限。
  • 交易格式:支持 LegacyVersioned (v0) 两种格式,后者通过“地址查找表”支持更多账户。

⚡️ 交易生命周期:从提交到确认

一笔交易从用户发起最终被上链确认,大致经历以下几个阶段:

  1. 用户提交:用户使用钱包或应用构建并签名交易,然后发送给一个 RPC 节点。
  2. 转发至领导者:RPC 节点根据当前的领导者(Leader)调度表,将交易转发给负责生产下一个区块的验证者节点。
  3. 领导者处理与打包:领导者(当前区块生产者)验证交易的有效性,并将其打包进新区块。
  4. 广播与确认:新区块被广播给网络中的其他验证者,他们进行验证并最终达成共识。

整个过程在 Solana 约 400 毫秒 的极快出块时间内完成。

🚀 并行执行:Sealevel 引擎

这是 Solana 交易模型最具革命性的设计。传统区块链(如以太坊)串行处理交易,而 Solana 通过其 Sealevel 运行时 实现了智能合约的并行处理。

其工作原理如下:

  1. 预先声明 (Pre-Declaration):Solana 要求每笔交易在提交时,必须明确声明它将读取或写入哪些账户
  2. 冲突检测:Sealevel 运行时根据这些声明,分析所有待处理交易。
  3. 并行调度:不涉及相同账户、无冲突的交易会被调度到不同的CPU核心上并行执行。涉及相同账户的交易则需要按顺序执行。

这种设计让 Solana 能够充分利用现代多核处理器的性能,是其实现高吞吐量的关键。

💸 费用模型:简单且可预测

Solana 的费用模型旨在保持简单、高效。

  • 基础费用:每笔交易需支付一笔极低的基础费用,固定为 5,000 lamports(1 SOL = 10亿 lamports)。
  • 优先费用 (Priority Fee):在网络拥堵时,用户可以额外支付按计算单元 (Compute Units) × 单价计算的优先费用,以换取更快的处理速度。

💎 总结

Solana 的交易模型通过 原子性交易 保证了确定性,通过 Sealevel 并行执行引擎 实现了高吞吐量,并通过 预先声明账户访问 的设计使其成为可能。这一套组合拳是其能够实现数千 TPS 和亚秒级确认时间的根本原因。