本文深入探讨了Solana交易的生命周期,具体描述了交易的结构、执行和排序过程,以及Solana与以太坊之间的关键区别。该文强调了Solana的高性能特点以及这些特性对MEV(最大化可提取价值)搜索者的潜在影响。
在本文中,我们关注 Solana 交易的生命周期。我们检查了 Solana 运行时如何处理交易,重点是交易执行和排序。我们还探讨了 Solana 和 Ethereum 之间交易执行的不同。
讨论的主题假设读者对区块链机制有一定了解。本文的目标是为讨论 Solana 上的 MEV 奠定基础。
一个 Solana 交易由三个部分组成:
预先状态规范对开发者来说是个负担,但代码和状态的分离对 Solana 的并行执行模型是必要的(类似于 EIP-2930)。
你可以在 这里 阅读更多有关交易结构的详细信息,但理解其余部分不需要这种知识。
用户通过其钱包发起交易。交易可以是代币转账、DeFi 协议的交易、NFT 铸造或任何在 Solana 区块链上可用的其他操作。在点击“批准交易”和用户界面报告交易已被确认之间发生了什么?
一旦用户在其钱包中签署交易,钱包会将交易发送到 Solana RPC 服务器。RPC 服务器可以由任何验证者运行。在接收到交易后,RPC 服务器检查 领导者调度(每个纪元确定一次,纪元大约持续 2 天),并将交易转发到当前的领导者以及接下来的两个领导者。领导者 负责为当前 槽 生成 区块,并被分配四个连续的槽。槽的持续时间通常约为 400 毫秒。
当签署的交易到达当前领导者时,领导者验证交易的签名并进行其他预处理步骤,然后安排交易执行。
目前大多数验证者使用 Solana Labs 提供的 Solana 客户端的调度器实现。然而,验证者可以根据需要使用不同的区块构建算法。
默认的调度器实现是多线程的,每个线程维护一个等待执行的交易队列。交易随机分配到单个线程的队列中。每个队列按 优先费用(以请求的每个 计算单位 支付的费用计)和时间排序。
请注意,排队等待执行的交易没有全局排序;每个线程的队列仅是本地排序。
请记住,交易包括哪种状态需要在执行时被读锁定和写锁定的规范。当线程执行交易时,它首先尝试获取必要的账户锁,然后执行交易。不能获取必要锁的交易则重新排队以稍后再次尝试。
在上面的图中,每个方框代表一个交易。每笔交易标有其锁定的账户。执行线程 1 锁定账户 [a,b,c],[d],未能锁定 [c,j] 和 [f,g]。执行线程 2 锁定账户 [w],[x,y,z],未能锁定 [c] 和 [v]。剩余的交易被重新安排以便将来执行。
这是 Solana 实现比竞争链更高性能的一种方式。当多个交易不需要触及相同状态时,它们可以并行执行,从而提高区块链的吞吐量。然而,对开发者来说,这会带来成本,因为交易需要的任何状态都必须事先指定。
使用此默认调度器实现,交易在区块中的排序是 FIFO 和优先费用的粗略组合。但是,由于交易被随机分配到执行线程,因此在交易排序中存在固有的不确定性——即使没有网络抖动,不同的发送可能会在多线程调度器中落入不同的位置。这种调度抖动增加了交易在区块中落入位置的变化,所以发送大量交易以迅速落入紧急交易可能是有利的。
这也意味着,如果搜索者能够快速完成特定交易,他们可能能够在相关状态(市场账户)出现热门之前执行交易,从而无需使用优先费用来包含交易。
可以想象具有不同特征和向验证者支付不同费用的替代调度器设计。这只是区块打包问题,只是执行由于 Solana 支持的高吞吐量而成为显著瓶颈,因此在交易流入时,区块会逐步构建。
一旦交易由领导者执行,它会立即记录到验证者的分类帐副本并传播到网络的其余部分。在区块获得共识的必要投票后,交易被视为“确认”。最后,当在其上构建了 31 个以上的确认区块时,该区块被视为“最终确认”。这些阶段通过 RPC 返回到前端,使用户可以看到其交易的状态。我们将在未来的文章中探讨 Solana 的区块传播和共识机制。
Solana 和 Ethereum 的交易生命周期有许多不同之处。
mev-boost
和 Solana 的 Jito 拍卖中出现)。mev-boost
则达到了 85%。这表明两个生态系统在区块生产和 MEV 处理方面存在一些基本差异。在本文中,我们考察了 Solana 交易的生命周期,从用户提交的钱包交易到交易被 Solana 网络确认。我们观察了 Solana 如何执行和排序交易,以及 Solana 和 Ethereum 之间的相关区别。我们还触及了 Solana 设计对于 MEV 搜索者的某些下游影响。在下一篇文章中,我们将讨论 Solana 上 MEV 的当前和未来状态。
要与我们合作,请联系 collaborators@umbraresearch.xyz。
- 原文链接: umbraresearch.xyz/writin...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!