有关更详细信息,请在Sei 开发者论坛上查看这篇额外的技术说明。
在这篇文章中,Sei Labs 介绍并提出了对 Sei 的升级:v2 - 第一个并行化的 EVM。
Sei v2 充分利用了 Sei 的已验证优势,供全球范围的 EVM 开发人员使用。这使得 Sei 能够充分发挥 Solana 和 Ethereum 的优势 - 一个经过超级优化的执行层,充分利用了围绕 EVM 的工具和思考观点。
自 2023 年 8 月以来,Sei 的主网 beta 版上线,在此期间一直在推动全球分布式节点能实现的极限:
Sei 始终以 390 毫秒的速度完成区块,成为已有的最快链;
Sei 持续保持每秒超过 45 笔交易的活跃度,成为目前运行中每秒成功交易数量第二多的链[1]。
所有这些都是在没有中断或意外的网络停机的情况下完成的。这进一步加强了一个基本的技术论点,即集成的区块链比使用模块化链具有更显著的性能优势。
Sei 目前支持使用 Rust 编写的 Cosmwasm 智能合约。随着 Sei 继续吸引更多开发者的兴趣,开发者最大的需求之一是增加 Sei 支持的执行环境的灵活性。特别是,EVM 支持是许多开发者关注的重点。
因此,我们提出 Sei V2:Sei 的首次重大升级,成为第一个完全并行化的 EVM。此升级将使 Sei 具备以下功能:
EVM 智能合约的向后兼容性 - 允许开发者在不进行代码更改的情况下部署来自 EVM 兼容区块链的经过审计的智能合约。
熟悉和广泛使用的应用程序和工具的可重用性,如 Metamask。
乐观的并行化 - 允许链支持并行化,无需开发者定义任何依赖关系。
SeiDB - 对存储层的改进,以防止状态膨胀,提高状态读 / 写性能,并使新节点更容易进行状态同步和追赶。
与现有链的互操作性,允许在 Sei 上支持的 EVM 和其他任何执行环境之间实现无缝的可组合性。
从性能角度来看,Sei V2 将提供每秒 28,300 个批处理交易的吞吐量,同时提供 390 毫秒的区块时间和 390 毫秒的最终性。这使得 Sei 能够支持比现有区块链更多的用户和更丰富的互动体验,同时提供更低廉的每笔交易成本。
Sei 的主要升级目前几乎已经完成了编码。一旦审核完成,这个升级将在 2024 年第一季度发布到公共测试网,并将在 2024 年上半年的某个时候部署到主网。
Sei 由不同的软件组件组成,它们相互协作以支持区块链。其中一些组件与共识层相关,而另一些与执行层相关。
Sei V2 将改变执行层的工作方式,以支持乐观并行化和优化状态存储。此外,它还将创建一个新的组件来支持 EVM 智能合约。这些 EVM 智能合约将受益于对共识和并行化所做的所有更改,并能够与现有的 Cosmwasm 智能合约进行交互。
相比要求开发者完全重写智能合约以在 Sei 上部署,Sei V2 考虑到了向后兼容性。这意味着存在于以太坊上的每个主要合约都可以无缝地在 Sei 上重新部署,而无需进行任何代码更改[2]。
从技术角度来看,作为 Sei 链二进制文件的一部分,Sei 节点将自动导入Geth,即以太坊虚拟机的 Go 实现。Geth 将用于处理以太坊交易,而任何由此产生的更新(状态更新或调用与非 EVM 相关的合约)将使用 Sei 专为 EVM 创建的特殊接口进行。
这种方法允许完全的字节码兼容性,使得任何可以在 Geth 上运行的内容都可以轻松地由 Sei 处理。此外,由于 Sei 与 EVM 的 RPC 接口将是相同的,因此可以无缝重用来自以太坊的现有工具。例如,用户只需切换连接的 RPC,就可以使用 Metamask;开发者可以使用工具,如 Foundry、Remix 和 Hardhat。
Sei 目前要求智能合约开发者选择性地定义智能合约正在使用的状态。这种可选的方法不幸地引入了更大的开发者摩擦。
Sei V2 将消除开发者自行定义状态访问的需求。相反,链将乐观地并行运行所有交易。每当发生冲突(涉及相同状态的交易)时,链将跟踪每个交易涉及的存储部分。涉及不同存储部分的交易将在并行中重新运行,涉及相同状态的交易将按顺序重新运行。这将递归地继续,直到没有更多未解决的冲突为止。由于交易在一个块中有序排列,这是一个确定性的过程,将简化开发者的工作流程,同时保持链级别的并行化。
乐观并行化将适用于在 Sei 上运行的所有交易,包括 Sei 原生交易、Cosmwasm 交易和 EVM 交易。有关技术实现的更多详细信息可以在这里找到。
Sei 目前使用由 IAVL 树数据结构组成的普通数据库层。Sei 已经重新架构了存储接口,以优化不同的用例。Sei 通过将单个 IAVL 树分为 2 个组件 - 状态存储和状态提交(动机)来实现这一点。状态存储层提供对原始键值对的低延迟直接访问,有助于 RPC 节点更好地处理查询。将历史数据存储为原始键值对消除了冗余元数据的开销,并帮助将磁盘使用减少数个数量级。状态存储还使用写前日志,在发生崩溃时帮助恢复。状态提交层使用高度优化的内存中 IAVL 树,负责提交数据,这将有助于验证者更快地达成共识,因为磁盘访问的数量减少了。
除了这个改变之外,Sei 对各种业界领先的数据库进行了严格的基准测试,Sei V2 将转向使用 PebbleDB 而不是 GoLevelDB,这将大大提高多线程访问的读 / 写性能。
有关技术实现的更多详细信息可以在这里找到。
由于 Sei 是一个集成链,前往 Sei 不同组件(Cosmwasm、EVM、银行、质押)的所有交易都能够相互通信。尽管这些交易有不同的目的,但它们最终具有许多相似的特征,如燃气、发件人和交易体。当链接收到这些交易时,它们将被处理为 Sei 原生交易,并转发到存储的相应部分(即,CosmWasm 交易将被发送到 wasm 模块并执行)。这带来了更无缝的开发者体验 - EVM 开发者可以轻松访问原生代币和其他链功能,如质押。
截至目前,SeiDB 和乐观并行化已经完成了编码。EVM 的实施仍在进行中,预计在接下来的几个月内完成编码。因此,Sei V2 将在 2024 年初准备好推出测试网。
SeiDB 和乐观并行化的初始性能数据表明如下性能:
这些测试是在一个包含 20 个节点的集群中进行的,这些节点平均分布在俄亥俄州、加利福尼亚州、法兰克福和爱尔兰。每个节点都是 AWS 8xlarge,具有 32 个核心和 64GB RAM。
这个提案概述了 Sei 支持和增强多个虚拟机的路线,首先是第一个并行化的 EVM。
目前在任何 EVM 链上构建的应用程序都将能够在 Sei 上部署,以支持更多用户和比现有区块链更多的‘Web-2’风格的互动体验。
此外,它们可以提供更低廉的每笔交易成本、更高的吞吐量,并且不会受到中心化的权衡、复杂性或运营以太坊 L2 Rollup 的开销的影响。
通过这种方式,Sei 正在使 EVM 再次变得简单。
预计将在未来几周内提出一个治理提案,以便讨论和投票对此提案进行决策。
有关更详细信息的额外技术说明可以在 Sei开发者论坛上找到 - 欢迎贡献、提问和思考。
脚注
[1] 这个数字代表活动量,而不是 Sei 能够处理的交易的最大阈值。
*[2] Ethereum L1 和 Sei V2 之间的最大区别是状态存储的方式 - 以太坊使用 Patricia Merkle Tree,而 Sei 使用 IAVL 树,因此任何需要状态证明的内容都需要重新编 * 写。
不想错过 Sei 的最新动态?点击下方按钮免费订阅!
“Sei 中文”官方推特、Sei 中文电报群、Sei 中文公告电报群已开通,现在 Follow 来第一时间了解 Sei 的最新进展:
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。