AlphaNet是一个与OP Stack兼容的测试网络,旨在提高Reth性能并推动以太坊研究。它使用Rust的高级类型系统和抽象,允许自定义RPC、EVM和块生成器。AlphaNet的目标是突破千兆大关,具有高性能和实验性质。它将在Reth 1.0之后发布,邀请社区与他们分享想法和一起编写代码。开发人员可以通过AlphaNet学习如何使用其“开发人员预览”功能。如果您对此感兴趣,请联系[email protected]。
原文标题:Reth AlphaNet
原文作者:Georgios Konstantopoulos
原文来源:paradigm
编译:Kate, 火星财经
今天,我们很高兴开源Reth AlphaNet,这是一个与OP Stack兼容的测试网络,旨在最大限度地提高Reth性能,并实现前沿以太坊研究的实验。
通过这篇文章,我们希望开发人员能够通过实验、性能优化来为AlphaNet做出贡献和构建,并与我们一起推动以太坊系统研究、工程和工具的前沿。
Reth AlphaNet是OP Reth Rollup,具有以下特点:
• Testnet:这是一个测试网rollup,不持有真正有价值的资产。
如果我们想要引入重大更改,我们可以定期重置它。
我们对完全重置或跨重置迁移一些状态持开放态度。
• 实验:它最初配备了3个EIP,这些EIP在撰写本文时在任何其他网络中都不可用:
EIP-3074: AUTH和AUTHCALL指令(源代码)。
EIP-7212:预编译secp256r1曲线支持(源代码)。
EIP-2537:预编译BLS12-381曲线操作(源代码)。
• 高性能:它的目标是突破千兆大关(每秒1千兆),并正面应对状态增长问题。
Reth 在 alpha.13 版本(2023 年 12 月 4 日)上的基准测试为每秒 100-200 兆加气,用于“实时同步”(包括发送方恢复、执行、哈希和尝试),在具有快速 SSD 的 16 核 @ 3.1GHz、512GB RAM 机器上以每秒 1-3 千兆加的速度进行“历史同步”(仅执行)。
我们目前处于 beta.5 阶段(2024 年 4 月 3 日),自原始基准测试以来,我们合并了多项优化。
我们邀请社区来审查基准测试,并帮助我们进一步对代码进行压力测试。
放大:
1AlphaNet 通过Node Optimism实现了OP Stack标准的Ecotone硬分叉。
2桥接进和桥接出rollup的工作原理与stock OP Stack相同。存款和取款延迟将处于较低端,针对希望在钱包、区块浏览器和其他基础设施中进行端到端测试桥接流程的开发人员进行了优化。
3我们对AlphaNet 应该使用什么样的数据可用性机制没有明确的看法。我们将从blobs和calldata开始,并最终探索基于费用的跨多个数据可用性层的多路复用。我们也在关注OP Plasma。
整个代码库少于1500行Rust代码(LoC),包括测试:
AlphaNet 现在在 Apache/MIT 许可下开源,任何人都可以分叉、修改或启动。
AlphaNet 建立在Reth之上,而不是分叉。
我们对Reth的最初设想不仅将其描述为一个节点,还将其描述为一个软件开发工具包(SDK),作为构建以EVM为中心的基础设施的乐高积木。
分叉节点非常脆弱,很难在整个生态系统中传播更新,并且很难重新建立大型功能分支。这也意味着缺乏关于代码更改发生位置的原则。
Reth SDK是构建节点的新范例,专门为定制和以rollup为中心的路线图而构建。
AlphaNet实现了由Reth SDK的Reth节点构建器API提供的特性,允许在不分叉节点的情况下进行极端定制。这与节点的原始架构密切相关,该架构分离关注点,并允许将交易池或RPC等组件作为单独的进程运行。Reth SDK使用Rust的高级类型系统和清晰的抽象将其更进一步。
这里有一些你可以在节点上做的修改示例:
1自定义RPC:增加额外的RPC方法和名称空间。
2自定义EVM:覆盖EVM的预编译器、指令等。
3自定义块生成器:使用您自己的订单流或自定义内存池构建块。
我们打算在接下来的几个月里分享更多关于如何使用Reth SDK(或Reth Core)的信息,因为我们将推动它的功能完整性。我们对此感到无比兴奋。目前,示例和NodeBuilder是在代码库中查找的最佳内容。
我们称它为AlphaNet ,因为它是用于实验的“alpha”软件,但也因为它为学习如何使用其“开发人员预览”功能的开发人员提供了优势。
AlphaNet 的目标是:
1使开发人员能够使用Reth的模块化架构对以太坊节点进行实验:
• AlphaNet 可以作为研究想法的分发渠道,并鼓励第二层实验。
• 选择AlphaNet 的节点扩展是因为它们能够使应用程序增强链上用户体验,并大大降低现有应用程序的成本,从而改善用户体验。
• Reth公开了Revm的新EVMBuilder API (pr),它使开发人员能够使用自定义操作码、指令、gas代币等扩展EVM。
• Reth SDK还将允许交换出关键节点组件,如块执行器、状态根算法,并且已经支持交换出大多数其他组件,如网络堆栈、块有效负载构建器、数据库等。
2测试Reth在极端情况下的性能,达到每秒1gb甚至更高。
• 我们希望使用已经在以太坊和基础主网上测试过的研究技术,解决状态增长性能瓶颈,并找到解决它的方法。
• 我们希望使用见证者来试验状态过期、租用、压缩和恢复风格的技术,以及任何让我们在那里移动指针的东西。
• 我们还将部署我们已经讨论了很长时间的其他技术,例如并行EVM(基于块 STM 的实时同步,并通过计算历史同步的最佳调度)、JIT/AOT EVM、替代状态根实现和优化、多租户等。我们已经对并行EVM和JIT/AOT的概念进行了验证,我们将在接下来的几个月里进一步推动它们的发展。
我们的AlphaNet短期路线图如下:
1在Conduit上发布一个托管版本的AlphaNet ,目标是50 megagas/秒,并最终提升到1 gigagas/秒。如果我们运行的节点由于状态增长而无法跟上排序器,我们可能会从零重新开始实验,然后再试一次。
2通过foundryup --alphanet命令发布修改后的Foundry构建,以便任何Foundry开发人员都可以访问节点扩展的工具。
3使用Rivet作为“实验性开发者钱包”,以便迭代EIP-3074, BLS签名和本地Passkey支持的钱包UX。
我们对 AlphaNet 上带有 Foundry 和 Rivet 的 EIP-3074 感到特别兴奋,并建议整个生态系统在 2024 年 4 月 11 日的全核心开发者会议上为即将在以太坊 L1 中的部署做好准备。如果你想在 EIP-3074 Invoker 上工作,帮助清理我们的 Foundry 集成,或为 Rivet 做出贡献,请联系我们。
中期:
1我们想尝试其他EIP和RIP,如RIP7560和EOF(已经在Revm中实现)。我们还应该尝试什么?
2大力推动上面“为什么要构建 AlphaNet?”一节中提到的 Reth 性能优化。
3在Rust中使用Reth (FPVM选择TBD,介于RISCV和MIPS之间)推动第二个OP故障证明实现,加速OP Stack的第二阶段故障证明路线图。
我们希望Reth将成为每个Layer 2扩展策略的基本构建块。
我们的长期目标是与社区一起扩展以太坊及其 L2 生态系统。我们将使用 AlphaNet 作为反馈回路,以推动前沿并在生产 L1 和 L2 中部署最佳技术。我们邀请社区与我们分享他们希望我们尝试的内容,或与我们一起编写代码。
AlphaNet 将在Reth 1.0之后不久发布,在第二季度结束之前。
Reth SDK为构建可修改的高性能节点提供了非常强大的抽象,我们认为这仅仅是个开始。在接下来的几周内,我们将分享我们用Reth SDK构建的所有内容。我们还将分享优化和架构改进,以突破达到网络规模加密货币所需的性能和功能障碍。
我们正在寻求反馈,并邀请开发人员为Github上的代码库做出贡献。如果这听起来令人兴奋,请联系[email protected]。