此网页仅供信息参考之用。部分服务和功能可能在您所在的司法辖区不可用。

从 geth 迁移至 reth:X Layer 执行客户端的演进

X Layer 是 OKX 推出的基于 OP Stack 的 EVM 兼容 Layer 2 网络。自上线以来,X Layer 经历了两次关键的架构演进:先从 Polygon CDK(zkEVM Validium)整体迁移至 OP Stack,再将执行客户端从 geth 升级至 reth。本文聚焦于后者,介绍这次升级的技术动因,以及为适配 X Layer 生产环境所完成的关键工程实现。

一、技术选型背景

OP Stack 生态的执行客户端长期以 geth 为主流——geth 是 go-ethereum 的 OP Stack 分支,稳定性经过充分验证。然而随着链上交易量的持续增长,go-ethereum 在架构层面的两个局限性愈发突出。其一是存储开销。归档节点的磁盘占用随链历史线性增长,在 L2 的高吞吐场景下,增速相当可观,长期运营的成本压力不可忽视。其二是延迟稳定性。Go 语言的垃圾回收机制在持续高负载下会引入不确定性停顿,LevelDB/PebbleDB 的后台压缩也会周期性阻塞出块流程,最终体现为用户可感知的尾延迟抖动。reth 由 Paradigm 以 Rust 重写,从架构层面解决了上述问题。Rust 的所有权模型在编译期完成内存管理,彻底消除了运行时 GC 开销;reth 采用 MDBX 存储引擎与阶段式同步架构,在磁盘效率和延迟一致性上均有质的提升。可扩展性是另一个关键考量。reth 提供了完整的 Node Builder API——通过预定义的框架钩子,可以在不触碰上游源码的前提下,将自定义逻辑注入节点生命周期的各个阶段。对于需要深度定制的 L2 执行客户端,这套机制意味着更小的 diff、更低的升级成本,以及更清晰的自定义逻辑边界。

二、整体架构设计

xlayer-reth 采用三层依赖结构:

xlayer-reth          ← X Layer customization layer
    └── op-reth      ← OP Stack execution layer (maintained by Optimism)
            └── paradigmxyz/reth  ← core Rust Ethereum execution engine

所有 X Layer 特有的代码均收敛于顶层,通过 reth 的框架钩子接入;中间两层直接引用各自上游仓库的代码,不引入任何私有改动。这一结构保证了上游的安全修复与性能优化可以低成本地持续合入,合并时无需处理核心逻辑的分叉冲突。代码组织上,各功能模块以独立 crate 形式拆分,包括 Chainspec、历史 RPC 路由、Flashblocks、自定义 RPC 等。每个 crate 独立演化与测试,主二进制仅负责将它们组合装配。

三、核心功能实现

  1. 非零起始块号支持

X Layer 从 Polygon zkEVM 迁移至 OP Stack 时,旧链在主网第 42,810,021 号区块终止,OP Stack 新链从该高度接续出块。这一连续的区块号对区块浏览器、链上索引服务,以及任何依赖历史区块号的应用而言都至关重要。然而 reth 最初在初始化创世块时固定使用区块号 0,genesis JSON 中的 number 字段被静默忽略。X Layer 团队为此向 reth 社区提交了 Issue #19874,并以 PR #19877 的形式将非零创世块号支持合入了官方 reth,而非在私有 fork 中维护补丁。该 PR 已合并,其他有类似迁移场景的链可以直接使用。

  1. 历史数据透明路由

迁移高度(第 42,810,021 号区块)以下的历史状态仅存储于旧 Polygon zkEVM 节点(基于 erigon),新 reth 节点本地不持有这部分数据。若不加处理,针对迁移前区块的 RPC 查询将返回空结果。xlayer-reth 在 jsonrpsee RPC 服务栈中引入了一个 Tower 中间件路由器。请求到达 reth 之前,路由器依据所查区块号与迁移高度的关系进行判断:低于阈值的请求透明转发至旧节点,其余由本地 reth 处理。对调用方而言,整个过程无感知——同一个 RPC 端点覆盖了完整的区块范围。涉及区块范围的查询需要额外处理。以eth_getLogs 为例,当查询范围横跨迁移前后时,路由器会将其拆分为两个并发子请求,分别发往新旧节点,结果合并后统一返回,无需客户端做任何特殊处理。

  1. 硬分叉与链参数配置(Chainspec)

xlayer-reth 内置了 X Layer 三个网络(主网链 ID 196、测试网、开发网)的完整链参数,涵盖链 ID、创世区块配置及所有硬分叉的激活时间表。从以太坊 Frontier 到 OP Stack Isthmus,所有历史硬分叉均在 X Layer 创世时即激活。节点无需回放历史协议演进,从第一个区块起便运行于当前的完整 EVM 执行环境。这避免了节点启动时逐一回放历史分叉规则的复杂性。此外,X Layer 还定义了自定义硬分叉 Jovian,对应 OP Stack 第 17 次网络升级。Jovian 已于 2025 年 12 月在主网激活,与 OP 主网的升级节奏保持同步。

  1. Flashblocks

OP Stack 的标准出块间隔约为 2 秒。Flashblocks 是一种预确认机制,可将用户感知到的交易确认延迟降低约 10 倍:sequencer 每隔约 250 毫秒向外发布一个 flashblock(区块执行的中间状态),客户端无需等待完整区块上链即可获取交易执行结果。在节点侧,RPC 节点通过 WebSocket 实时订阅上游 sequencer 推送的 flashblock 流,在本地完整执行后将状态写入内存缓存。22 个标准以太坊 RPC 方法(包括 eth_getBlockByNumber、eth_getBalance、eth_call 等)被覆写,当查询 latest 或 pending 状态时直接从该缓存返回预确认结果。为减少重复执行,引擎验证器与 Flashblocks 处理器共享同一套执行状态缓存。flashblock 阶段已执行的交易,在引擎验证完整 payload 时可直接复用。

  1. 自定义 RPC 扩展

xlayer-reth 在标准以太坊 JSON-RPC 基础上新增了两个 X Layer 专有接口:

  • eth_flashblocksEnabled:查询节点的 Flashblocks 服务是否处于活跃状态,并正常接收 sequencer 数据。

  • eth_flashblocksPeerStatus:返回 sequencer 节点上 Flashblocks P2P 层各 peer 的连接状态,供运维监控使用。

两个接口通过 reth 的 RPC 扩展机制注册,与标准接口共存,不影响任何现有方法的行为。

四、工程实践原则

xlayer-reth 的开发遵循两条核心原则。优先通过框架钩子注册,不修改上游代码:凡是能通过 reth 已有的框架钩子实现的功能——中间件注册、引擎验证器注入、RPC 模块替换——均以此方式接入,不修改上游源码。定制逻辑收敛于顶层 crate,便于独立审计与迭代,上游更新的合并成本极低。具有通用价值的修改贡献至上游:若某项功能确实需要改动 reth 内部逻辑,优先以 PR 形式合入官方仓库,而非在私有 fork 中积压补丁。非零创世块号支持(PR #19877)是这一原则的落地案例:该能力现已成为 reth 的原生特性,其他有同类需求的链可直接使用,无需各自维护分叉。

五、总结

将执行客户端从 geth 迁移至 reth,核心驱动力是性能——更低的区块构建延迟、更小的存储开销、更快的节点同步速度。要在生产环境中兑现这些收益,需要系统性地解决 X Layer 特有的工程问题:来自旧链的非零创世区块、仅存于旧节点的历史状态、跨越两套协议架构的链参数配置、改变客户端交互模式的预确认机制,以及配套的运维监控能力。以成熟开源框架为基础进行扩展、而非 fork 核心基础设施,并将通用改进回馈给社区,是 X Layer 技术演进的一贯路径,也是 L2 生态中可持续的工程协作模式。 代码仓库:okx/xlayer-reth

免责声明
本文章可能包含不适用于您所在地区的产品相关内容。本文仅致力于提供一般性信息,不对其中的任何事实错误或遗漏负责任。本文仅代表作者个人观点,不代表欧易的观点。 本文无意提供以下任何建议,包括但不限于:(i) 投资建议或投资推荐;(ii) 购买、出售或持有数字资产的要约或招揽;或 (iii) 财务、会计、法律或税务建议。 持有的数字资产 (包括稳定币) 涉及高风险,可能会大幅波动,甚至变得毫无价值。您应根据自己的财务状况仔细考虑交易或持有数字资产是否适合您。有关您具体情况的问题,请咨询您的法律/税务/投资专业人士。本文中出现的信息 (包括市场数据和统计信息,如果有) 仅供一般参考之用。尽管我们在准备这些数据和图表时已采取了所有合理的谨慎措施,但对于此处表达的任何事实错误或遗漏,我们不承担任何责任。 © 2025 OKX。本文可以全文复制或分发,也可以使用本文 100 字或更少的摘录,前提是此类使用是非商业性的。整篇文章的任何复制或分发亦必须突出说明:“本文版权所有 © 2025 OKX,经许可使用。”允许的摘录必须引用文章名称并包含出处,例如“文章名称,[作者姓名 (如适用)],© 2025 OKX”。部分内容可能由人工智能(AI)工具生成或辅助生成。不允许对本文进行衍生作品或其他用途。

相关推荐

查看更多
Exchange OS Thumb

OKX 发布 Exchange OS 协议,人人皆可开设交易市场

—— OKX 创始人兼 CEO Star Xu 今天,我们正式发布 Exchange OS,这是 X Layer 的一次重大协议升级。它让开发者、机构和生态参与者,能够使用与 OKX 相同的机构级基础设施,部署现货、永续合约或预测三种市场。 基于 Exchange OS 的第一个市场将于 6 月上线
2026年5月26日
OKX x BR x SCB Buidl

OKX 联合贝莱德与渣打银行推出新一代 「 RWA 代币化应用框架」

今天,我们与 BlackRock(贝莱德)及 Standard Chartered(渣打银行)合作,推出一套面向加密市场的 「现实世界资产(RWA)代币化」 的全新应用框架。 在这一框架下,美国国债基金的代币化可以在同一体系中,同时作为产生收益的交易所保证金以及交易所外抵押品使用。 具体而言,符
2026年4月28日
OKX Pay Thumbnail

OKX Pay:开启下一代加密支付新纪元

数千万用户的选择, 注册 OKX ,畅享极致交易体验及多元理财产品。 来自OKX CEO Star的一封信: 今天,我们面向过亿全球用户正式推出OKX Pay首个版本。作为业内首个真正实现非托管与合规融合的支付应用,OKX Pay 将内嵌于 OKX App 中,目前已向部分市场开放,预计在数月内全面
2026年3月22日
okxice 2

新篇章:共建下一代金融基础设施

OKX 与洲际交易所(ICE)的合作,对 OKX 而言是一个重要时刻,对整个数字资产市场的演进而言同样意义深远。ICE 建立并运营着全球最重要的金融基础设施,包括纽约证券交易所以及全球衍生品和清算平台。此次 ICE 选择投资 OKX 并加入我们的董事会,体现了双方的共同信念——数字资产技术将在金融市
2026年3月10日
Star

致敬砥砺前行的又一年

作为OKX的CEO,也是一名不忘初心的Builder,我很自豪地回顾这一年OKX取得的非凡成长与进步。尽管挑战重重,2024年依然是一个充满专注、创新和坚韧的年份。我们不仅拓展并优化了产品,还在推出透明且符合监管要求的本地化业务方面取得了重要进展,同时进一步壮大了全球管理团队。值得一提的是,在经历了
2026年1月29日
star2025

2025:行稳致远共赴金融自由

—— OKX 创始人兼 CEO Star 致全球用户的年终信 “金融自由”常被误解。它并非意味着没有规则,而是在规则存在的前提下,依然拥有选择的权利——并且,当系统真正经受考验时,它依然可靠、有效。 这正是我们在 2025 年始终专注的方向。 首先,我想向全球的客户、合作伙伴以及监管机构致以诚挚的感
2026年1月16日
查看更多