在这篇文章中,Sei Labs 介绍并提出了对 Sei vV2 的升级——第一个并行 EVM。详情可以在 Sei 开发者论坛上找到探讨更多详细信息的附加技术说明。

Sei V2 采用了 Sei 的成熟优势,并使其可供全球 EVM 开发人员使用。这使得 Sei 能够充分利用 Solana 和以太坊——一个超级优化的执行层,受益于围绕 EVM 的工具和思想共享。

非技术向总结

Sei 自 2023 年 8 月以来一直在主网测试版上运行,在此期间,Sei 一直在推动以前被认为可以通过全球分布式节点集实现的功能:

1、Sei 一直以 390 毫秒的速度敲定区块,使其成为现有最快的链;

2、Sei 的活动持续超过 45 TPS,成为当前运行中每秒成功交易数量第二高的链。

所有这一切都是在没有中断或意外网络停机的情况下完成的,这强化了基本的技术论点,即集成区块链比使用模块化链带来更好的性能。

Sei 目前允许使用用 Rust 编写的 Cosmwasm 智能合约。随着 Sei 继续吸引更多开发人员的兴趣,开发人员最大的要求是 Sei 支持的执行环境具有更高的灵活性。特别是,EVM 支持是许多开发人员最关心的问题。

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

1、EVM 智能合约的向后兼容性——允许开发人员从 EVM 兼容的区块链部署经过审计的智能合约,而无需更改代码;

2、熟悉且广泛使用的应用程序和工具(例如 Metamask)的可重用性;

3、Optimistic 并行化——允许链支持并行化,而不需要开发人员定义任何依赖项;

4、SeiDB - 对存储层的改进,以防止状态膨胀,提高状态读/写性能,并使新节点更容易状态同步;

5、与现有链的互操作性,允许 EVM 与 Sei 支持的任何其他执行环境之间的无缝组合。

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

Sei 的主要升级进度,目前已接近代码完成。审核完成后,此升级将于 2024 年第一季度在公共测试网中发布,并将于 2024 年上半年部署到主网。

如何运行?

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

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

拟议变更摘要

向后兼容性

Sei V2 的构建考虑到了向后兼容性,而不是要求开发人员完全重写其智能合约以部署在 Sei 上。这意味着以太坊上存在的每个主要合约都可以无缝地重新部署到 Sei 上,无需更改代码。

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

Geth 实现作为 Core Sei 二进制文件的一部分

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

Optimistic 并行化

Sei 目前要求智能合约开发人员选择性地定义智能合约正在使用的状态。不幸的是,这种可选方法会给开发人员带来更大的摩擦。

Sei V2 将消除开发人员自己定义状态访问的需要。相反,Sei 将乐观地并行运行所有交易。每当存在冲突(交易接触相同状态)时,Sei 将跟踪每个交易接触的存储部分。涉及存储不同部分的事务将并行重新运行,而涉及相同状态的事务将按顺序重新运行。这将递归地继续下去,直到不再有未解释的冲突为止。由于交易是在块中排序的,因此这是一个确定性过程,将简化开发人员的工作流程,同时保持链级别的并行性。

Optimistic 并行化冲突时的 Tx 生命周期

Optimistic 并行化将适用于在 Sei 上运行的所有事务,包括 Sei 原生事务、Cosmwasm 事务和 EVM 事务。有关技术实现的更多详细信息可以在此处找到。

SeiDB

Sei 目前使用由 IAVL 树数据结构组成的普通数据库层。由于其模式和额外的元数据,从存储和延迟的角度来看,这种数据结构的效率较低,导致更大的写入放大和更慢的磁盘访问。

Sei 重新构建了存储接口,以针对不同的用例进行优化。Sei 通过将单个 IAVL 树分解为 2 个组件来实现这一点——状态存储和状态承诺(动机)。状态存储层提供对原始键值对的低延迟直接访问,这将帮助 RPC 节点更好地服务查询。

将历史数据存储为原始键值对可以消除冗余元数据的开销,并有助于将磁盘使用量减少几个数量级。状态存储还使用预写日志来帮助在发生崩溃时进行恢复。状态提交层使用高度优化的内存 IAVL 树,负责提交数据,这将帮助验证者更快地达成共识,因为磁盘访问量减少了。

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

有关技术实现的更多详细信息可以在此处找到。

互操作性

由于 Sei 是一条集成链,所有进入 Sei 不同组件(Cosmwasm、EVM、银行、质押)的交易都能够相互通信。尽管这些交易服务于不同的目的,但它们最终具有许多相似的特征,例如 Gas、发送者和交易主体。

当链接收到这些交易时,它们将作为 Sei 本机交易进行处理,并转发到适当的存储部分(即 CosmWasm 交易被发送到 wasm 模块并执行)。这带来了更加无缝的开发人员体验——EVM 开发人员可以轻松访问本机代币和其他链功能(例如质押)。

交易类型如何与 Sei 的多个虚拟机交互

性能指标

在撰写本文时,SeiDB 和 Optimistic 并行化的代码已完成。EVM 实施仍在进行中,代码应在接下来的几个月内完成。因此,Sei V2 将于 2024 年初准备好发布测试网。SeiDB 和 Optimistic 并行化的初始性能数据表明以下性能:

性能指标

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

结论

该提案概述了 Sei 从第一个并行 EVM 开始支持和增强多个虚拟机的路线。目前在任何 EVM 链上构建的应用程序都将能够部署在 Sei 上,以支持比现有区块链更多的用户,和更多类似 Web2 的交互体验。此外,它们可以提供更便宜的每笔交易成本、更高的吞吐量,并且不会受到中心化权衡、复杂性或操作以太坊 L2 Rollup 的开销的影响。

通过这种方式,Sei 再次让 EVM 变得简单。我们将在未来几周内提出治理提案,以便对该提案进行讨论和投票。详情可以在 Sei 开发者论坛上找到探索更多细节的附加技术说明。

「原文链接」