Cointime

扫码下载App
iOS & Android

Solana交易的生命周期

作者:@0xShitTrader @buffalu__ 编译:CoinTime 237

本文重点介绍了Solana交易的生命周期。我们探讨了Solana运行时如何处理交易,并强调了交易执行和排序。我们还探索了Solana与以太坊在交易执行方面的差异。文章假定读者对区块链机制有一定的了解。本文的目的是为后续讨论Solana上的MEV打下基础。

Solana交易的结构

Solana交易由以下三部分组成:

1、一个或多个指令,指定交易应在链上运行的代码。例如“从账户A向账户B转移5 SOL”。

2、所需的账户数组(离散状态块),每个账户都有读写标志。例如,“账户A [可写],账户B [可写]”。

3、一个或多个交易所需的签名。例如,“来自账户A所有者的签名”。

对于开发人员而言,事先指定状态规范可能会很繁琐,但这种代码和状态的分离对于Solana的并行执行模型(类似于EIP-2930)是必要的。

Solana交易的生命周期

用户通过他们的钱包启动交易。交易可以是代币转移、DeFi协议上的交易、NFT铸造或Solana区块链上提供的任何其他操作。在单击“批准交易”和UI报告交易已经确认之间会发生什么?

1、启动交易

一旦用户在他们的钱包中签署了交易,钱包就会将交易发送到Solana RPC服务器。RPC服务器可以由任何验证者运行。收到交易后,RPC服务器检查 leader schedule(每个时期确定一次,约为2天长)并将交易转发给当前leader以及下两位leader。leader负责为当前时间段生成一个块,并被分配四个连续时间段。时间段通常持续约400毫秒。

2、交易执行和排序

一旦签署的交易到达当前leader,leader会验证交易的签名,并在调度执行之前执行其他预处理步骤。

目前大多数验证者使用Solana Labs构建的Solana客户端提供的调度程序实现。但是,如果他们愿意,验证者可以运行不同的块构建算法。

默认调度程序实现是多线程的,每个线程维护等待执行的交易队列。交易随机分配到单个线程的队列中。每个队列按优先费用(以请求的计算单位支付的费用计量)和时间排序。

请注意,没有全局排序的待执行交易队列;每个线程的队列中只有本地排序。

回想一下,交易包括需要为执行锁定的状态的规范。当线程执行交易时,它首先尝试获取必要的账户锁定,然后执行交易。处理无法获取所需锁定的进程的交易会被重新排队以稍后重试。

在上述图表中,每个框表示一个单独的交易。每个交易都带有其锁定的账户标签。执行线程1锁定账户[a,b,c],[d],无法锁定[c,j]和[f,g]。执行线程2锁定账户[w],[x,y,z],无法锁定[c]和[v]。其余交易计划在未来执行。

这是Solana实现比竞争链更高性能的一种方法。当多个交易不需要触及相同的状态时,它们可以并行执行,这提高了链的吞吐量。然而,这对开发人员有成本,因为任何可能被交易所需的状态必须事先指定。

有了这种默认调度程序实现,交易按FIFO和优先费用的大致组合顺序排序在块中。但是,交易排序存在固有的非确定性,因为交易有点随机地分配给执行线程-即使没有网络抖动,不同的发送也可能落在多线程调度程序中的不同位置。这种调度程序抖动会增加交易在块中落位的差异,因此大量发送以落位紧急交易可能是有益的。

这也意味着如果搜索器最快到达特定交易,他们可能能够在相关状态(市场账户)变热之前执行交易,因此不需要使用优先费用以获得包含。

人们可以想象具有不同特征和不同向验证者支付的不同奖励的替代调度程序设计。这仅仅是块打包问题,除了由于Solana支持的高吞吐量,执行是一个显著的瓶颈,因此在交易流中逐步构建块。

3、交易传播和状态更新

一旦leader执行交易,它立即记录到验证者的帐本副本中并传播到网络的其余部分。在一个块从共识获得必要的投票之后,交易被视为“已确认”。最后,当31个或更多已确认的块建立在上面时,块被认为是“最终确定”的。这些阶段通过RPC返回给前端,允许用户查看其交易的状态。我们将在未来的文章中探讨Solana的块传播和共识机制。

Solana和以太坊之间的差异

Solana和以太坊的交易生命周期有很多不同之处。

1、一个主要的区别是Solana没有公共内存池。与由点对点传输构建的分布式内存池的待处理交易不同,它们直接转发给当前的leader和下几个领leader。

2、Solana默认的验证器实现还具有连续块生成功能。交易持续流入验证器进行执行,然后进行块生成,最后进行交易传播。在以太坊上,待处理交易被验证者或块构建者阻塞,直到完整块在12秒间隔内构建完成。连续块生成意味着优先费用不能保证在块内的位置。这意味着相对于以太坊上的离散状态拍卖(在MEV-boost和Jito拍卖中特色)来说,在竞争性交易中延迟更加重要。

3、Solana交易需要每个签名的固定网络费用(通常为每个交易一个签名),为0.000005 SOL,约为出版当时的$0.0001。还可以包含可选优先级费用,以请求的计算单位支付费用(执行中使用的计算单位数量的上限)计量,并在Solana调度程序中提供更高的优先级,如上所述。Solana的块大小限制基于使用的计算单位而固定,类似于以太坊块具有的Gas目标。网络费用的一半被烧毁,另一半归leader所有。相比之下,以太坊的交易费用由Gas价格和Gas限制组成,其中Gas价格是以太币(ETH)的数量,而Gas限制是交易执行所需的Gas总量。Gas价格和Gas限制的乘积是以太坊上交易费用的总量。在以太坊上,即使没有计算单位或网络费用,交易也需要支付最小金额的Gas费。

4、在Solana上,最近推出了不受协议控制的区块空间拍卖(Jito),市场份额较以太坊上的MEV-boost(85%)要小得多(25%)。这说明了两个生态系统在块生成和处理MEV方面存在一些根本性差异。

结论

Solana的高速交易处理是其高性能的基础之一。通过删除公共内存池和使用多线程调度程序运行交易,Solana可以实现高吞吐量并将交易处理时间最小化。然而,这种并行执行的模型可能会对开发人员造成负担,因为他们必须指定可能被交易所需的状态。在未来的文章中,我们将探讨Solana与以太坊在MEV捕获和打击方面的差异。

评论

所有评论

推荐阅读

  • 现货黄金失守4900美元

    现货黄金回落至4900美元/盎司下方,日内跌1.78%。

  • 菲律宾数字银行 Maya 正在探索在美国进行 IPO

    菲律宾数字银行 Maya 正在探索在美国进行首次公开募股 (IPO),计划融资高达 10 亿美元。该公司目前正与顾问合作推进这一交易。Maya 持有菲律宾中央银行颁发的数字银行牌照,通过其应用程序提供储蓄账户、消费贷款、支付和商户服务。除核心银行业务外,Maya 还在受监管的虚拟资产服务提供商框架下提供应用内加密货币交易服务。选择美国市场上市可能为 Maya 提供更深层次的资本池和更广泛的机构投资者基础。当地观察人士表示,投资者将权衡该公司的银行基本面与其加密业务合规性。

  • Vitalik:无需价值观认同,任何人都可自由使用以太坊

    以太坊联合创始人 Vitalik Buterin 在 X 平台发文表示,用户无需认同其对应用形态、DeFi、隐私支付、AI 等观点,都可以自由使用以太坊。以太坊作为去中心化协议,应保持无需许可与抗审查属性,但这并不意味着个人不能对应用进行价值判断和公开批评,中立性应属于协议层,而个人与社区需要明确表达自身原则,并在此基础上构建与价值观一致的生态,同时接受以太坊会被不同理念以不同方式使用。

  • 特朗普:我将间接参与伊朗谈判;伊朗想达成协议

    美国总统特朗普:正准备前往华盛顿,即将在空军一号上举行新闻发布会。我将间接参与伊朗谈判;伊朗想达成协议。

  • 香港监管机构将Victory Fintech列入获准交易平台名单

    香港证券及期货事务监察委员会(证监会)周五发布公告称,已将另一家公司列入其正式获得牌照的加密货币交易平台名单。

  • Zhu Su:加密货币未来几年可能将显著跑赢美股七巨头

    三箭资本联合创始人Zhu Su发文表示,未来几年加密货币可能将显著跑赢美股七巨头(Mag7)。

  • 本周美国以太坊现货ETF累计净流出1.612亿美元

    据Farside监测数据,本周美国以太坊现货ETF累计净流出1.612亿美元。

  • YesGo携手港娱国际旗下“招财熊猫”,共拓链上商业新零售场景

    2026年2月13日,香港——全球首个链上原生商业协议YesGo今日宣布与港娱国际控股有限公司(HK.08291) 旗下新零售品牌“招财熊猫”达成战略合作。

  • BTC跌破66000美元

    行情显示,BTC跌破66000美元,现报65996.42美元,24小时跌幅达到2.35%,行情波动较大,请做好风险控制。

  • 春节狂撒 1 亿美金!Ju.com 启动「十连发」打新活动

    据官方消息,Ju.com 将于 2026 年 2 月 13 日至 3 月 4 日推出特别活动——春节狂撒 1 亿美金!Ju.com 「十连发」打新重磅开启!活动期间,每两天上线一期打新项目,共计 10 期,每期额度 1000 万美金。