Sei v2 - 第一个并行计算的EVM区块链

本文介绍了Sei Labs提出的Sei V2升级方案,旨在使Sei成为第一个并行化的以太坊虚拟机(EVM)。Sei V2支持包括对现有以太坊智能合约的向后兼容性、乐观并行化、性能优化的存储层SeiDB等功能,预计将提供更高的交易处理能力和更低的交易成本。该升级计划在2024年上半年正式上线,为EVM开发者提供更多灵活性。

关于进一步细节的附加技术说明可以在 Sei开发者论坛 中找到

在这篇文章中,Sei Labs介绍并提议对Sei进行升级:v2 - 第一个并行化的EVM。

Sei v2将Sei的验证优势带到全球的EVM开发者中。这使Sei能够融合Solana和Ethereum的优点 - 一个超优化的执行层,受益于围绕EVM的工具和思维共享。

非技术摘要

Sei自2023年8月以来在主网Beta环境中上线,在这段时间里,它持续推动了全球分布式节点能够实现的极限:

  • Sei一直以390毫秒的速度持续确认区块,成为现存最快的链
  • Sei持续保持超过45 TPS的活动,成为目前操作中成功交易每秒数量第二高的链[1]

所有这一切都是在没有停机或意外网络故障的情况下完成的。这加强了基础技术理论,即整合区块链的性能明显优于使用模块化区块链。

Sei目前支持用Rust编写的Cosmwasm智能合约。随着Sei不断吸引更多开发者的关注,开发者最大的需求是增加Sei所支持的执行环境的灵活性。特别地,EVM支持是许多开发者关注的重点。

因此,我们提议Sei V2:Sei的首个重大升级,成为第一个完全并行化的EVM。此升级将使Sei具备以下功能:

  • EVM智能合约的向后兼容性 - 允许开发者在没有代码更改的情况下部署来自EVM兼容区块链的审计过的智能合约
  • 重新使用熟悉且广泛使用的应用和工具,例如Metamask
  • 乐观并行化 - 允许区块链支持并行化而无需开发者定义任何依赖关系
  • SeiDB - 对存储层的改进以防止状态膨胀,提高状态读/写性能,同时简化新节点的状态同步和赶超
  • 与现有链的互操作性,允许EVM与Sei上支持的其他任何执行环境之间的无缝组合。

从性能的角度来看,Sei V2将提供每秒28,300个批量交易的吞吐量,同时保持390毫秒的区块时间和最终确认时间。这使Sei能够支持更多用户以及比现有区块链提供更具互动性的体验,同时每笔交易的成本更低。

Sei的重大升级目前几乎完成编码。一旦审计完成,该升级将于2024年第一季度在公共测试网发布,并将在2024年上半年部署到主网。

工作原理

Sei由不同的软件组件组成,这些组件彼此协作以支持区块链。其中一些组件与共识层相关,另一些则与执行层相关。

Sei V2将改变执行层的工作方式以支持乐观并行化和优化的状态存储。此外,它还将创建一个新的组件来支持EVM智能合约。这些EVM智能合约将受益于对共识和并行化所做的所有变化,并能够与现有的Cosmwasm智能合约进行交互。

提议更改的摘要

向后兼容性

Sei V2在设计时考虑了向后兼容性,而不是要求开发者完全重写他们的智能合约以便在Sei上部署。这意味着存在于Ethereum上的每个主要合约都可以无缝地在Sei上重新部署,无需任何代码更改[2]

从技术的角度来看,作为Sei链二进制文件的一部分,Sei节点将自动导入Geth,这是以Go实现的以太坊虚拟机。Geth将用于处理以太坊交易,任何相关的更新(状态更新,或非EVM相关合约的调用)将通过Sei为EVM创建的特殊界面完成。

作为核心Sei二进制一部分的Geth实现

这种方法允许完全的字节码兼容性,允许任何可以使用Geth运行的内容被Sei轻松处理。此外,由于Sei与EVM的RPC接口将是相同的,现有的以太坊工具可以无缝重用。例如,用户只需切换连接的RPC即可使用Metamask,而开发者可以使用Foundry、Remix和Hardhat等工具。

乐观并行化

Sei目前要求智能合约开发者选择性地定义智能合约使用的状态。然而,这种选择性的方法不幸地引入了更高的开发者摩擦。

Sei V2将消除开发者自己定义状态访问的需要。相反,区块链将乐观地并行运行所有交易。当出现冲突(交易触及相同状态)时,链将跟踪每个交易触及的存储部分。触及不同存储区域的交易将并行重新运行,而触及相同状态的交易将顺序重新运行。这将递归进行,直到没有未解决的冲突。由于交易是在区块中排序的,这个过程是确定性的,将简化开发者的工作流程,同时保持链级别的并行化。

乐观并行化冲突的交易生命周期

乐观并行化将适用于在Sei上运行的所有交易,包括Sei本地交易、Cosmwasm交易和EVM交易。关于技术实现的更多细节可以在这里找到。

SeiDB

Sei目前使用的数据库层是一个简单的IAVL树数据结构。由于此数据结构的架构及额外元数据,从存储和延迟的角度来看,它的效率较低,导致更大的写放大和更慢的磁盘访问。

Sei重新构建了存储接口,以优化不同的使用案例。Sei通过将单一的IAVL树分解为两个组件——状态存储和状态承诺(动机)来实现。这一状态存储层提供低延迟的直接访问原始键值对,从而帮助RPC节点更好地响应查询。将历史数据存储为原始键值对消除了冗余元数据的开销,并帮助将磁盘使用量降低了几个数量级。状态存储层还使用写前日志以帮助在崩溃时恢复。状态承诺层使用高度优化的内存中的IAVL树来负责提交数据,这将有助于验证节点更快地达成共识,因为减少了磁盘访问的数量。

除了这一变更之外,还对各种行业领先的数据库进行了严格的基准测试,Sei V2将转向使用PebbleDB,而不是GoLevelDB,这将显著提高多线程访问的读/写性能。

有关技术实现的更多细节可以在这里找到。

互操作性

由于Sei是一个集成链,所有发送到Sei不同组件(Cosmwasm、EVM、银行、质押)的交易能够彼此沟通。尽管这些交易服务于不同的目的,但它们在气体、发送者和交易主体等许多相似特征上具有相似性。当链接收到这些交易时,它们作为Sei本地交易进行处理,并被转发到合适的存储区域(例如,CosmWasm交易被发送到wasm模块并执行)。这为开发者提供了更无缝的体验——EVM开发者可以轻松访问原生代币和链上的其他功能,例如质押。

交易类型如何与Sei的多个虚拟机互动的示意图

性能指标

在撰写时,SeiDB和乐观并行化已完成编码。EVM实现仍在进行中,预计将在接下来的几个月中完成编码。因此,Sei V2将在2024年初准备好进行测试网络的启动。

SeiDB和乐观并行化的初步性能数据表明如下性能:

性能指标

这些测试是在一个包括二十个节点的集群中进行的,节点均匀分布在俄亥俄州、加利福尼亚州、法兰克福和爱尔兰。每个节点都是AWS 8xlarge设备,具备32个核心和64GB内存。

结论

该提案概述了Sei支持和增强多个虚拟机的路径,首步是第一个并行化的EVM。

目前在任何EVM链上构建的应用都能够在Sei上部署,以支持比现有区块链更多的用户和更“Web 2.0”风格的交互体验。

此外,它们可以提供更低的每次交易成本、更高的吞吐量,并不会受到中心化权衡、复杂性或操作以太坊L2 Rollup的开销的影响。

通过这种方式,Sei重新简化了EVM。

接下来几周将发起一项治理提案,以讨论和投票此提案。

关于进一步细节的附加技术说明可以在 Sei开发者论坛 中找到- 欢迎贡献、提问和想法。

脚注

[1] 此数据表示活动,而不是Sei能够处理的最大交易阈值。

[2] Ethereum L1与Sei V2之间的最大区别在于状态存储的方式 - Ethereum使用Patricia Merkle Tree,而Sei使用IAVL树,因此任何需要状态证明的内容都需要重写。

  • 原文链接: blog.sei.io/sei-v2-the-f...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
SeiNetwork
SeiNetwork
江湖只有他的大名,没有他的介绍。