原文|IntroducingtheKona-Node:ARust-PoweredLeapfortheOPStackOPStack生态迎来里程碑:kona-node首次发布!基于Rust的模块化高性能rollup节点,为以太坊Layer2开发注入动力。本文将解析
原文|Introducing the Kona-Node: A Rust-Powered Leap for the OP Stack
OP Stack 生态迎来里程碑:kona-node
首次发布!基于 Rust 的模块化高性能 rollup 节点,为以太坊Layer 2 开发注入动力。
本文将解析 kona-node
的独特之处、它与参考实现 op-node
的对比,以及如何快速上手体验。
根据官方文档,kona-node
是符合 OP Stack 标准的 Rollup 节点实现。作为 Kona 套件的一部分,它包含底层类型库、可移植的 no_std
组件以及针对安全性和性能优化的服务模块。
其核心优势包括:
仅用约 8 千行代码(完整 Kona 客户端仅3千行)即实现了健全功能,包括故障证明能力——这体现了我们对精炼高效工程的追求。
传统 Go 语言实现的 op-node
一直是 Optimism Rollup 的中流砥柱,而 kona-node
则通过开源Rust crate 带来全新设计思路:
kona-proof
(Rust 故障证明实现)的 no_std
基础库op-node
的集中式事件系统形成鲜明对比这种模块化设计带来更优的代码可读性、资源利用率以及新功能集成速度。
通过详细文档,您可以轻松完成从安装到高级配置的所有操作。
启动 Base 链节点:
kona-node --chain base --port 8545
通过 Cargo 安装:
cargo install kona-node
文档还包含 L2 链 ID 设置、P2P 网络配置等进阶参数说明,以及故障排查指南。您甚至可以访问node.rollup.yoga 查看我们基于 OP Sepolia 测试网的实时节点运行情况。
kona-node
的模块化设计具有显著优势,例如 kona-derive
等可组合 crate 实现了高效的派生流水线,并且通过可扩展特征无缝集成数据源/属性构建器等组件。这种架构使得为自定义 Rollup(如 FPVM/SP1/Risc0 等证明系统)添加扩展变得极其简单。
以下是使用 kona-derive
的典型示例,展示如何通过 PipelineBuilder
构建从 L1 数据派生 L2 输入的 DerivationPipeline
// 动态构建派生流水线
let pipeline = PipelineBuilder::new()
.rollup_config(cfg)
.dap_source(dap)
.l2_chain_provider(l2_chain_provider)
.chain_provider(chain_provider)
.builder(attributes)
.origin(l1_origin)
.build();
接下来这段代码展示了一个简化示例——基于 kona-node-service
的API实现 RollupNodeService
特征,构建自定义验证节点。此示例演示了如何组合自定义 actor 与流水线:
use kona_node_service::{RollupNodeService, NodeActor, NodeMode, Pipeline};
use kona_derive::PipelineBuilder; // Example dependency
use std::sync::Arc;
// Define custom types (placeholders; implement as needed)
struct CustomDAWatcher; // Implements NodeActor
struct CustomDerivationPipeline; // Implements Pipeline + SignalReceiver
struct CustomDerivationActor; // Implements NodeActor
struct CustomEngineActor; // Implements NodeActor
// ... similarly for other actors
impl RollupNodeService for MyCustomNode {
type DataAvailabilityWatcher = CustomDAWatcher;
type DerivationPipeline = CustomDerivationPipeline;
type DerivationActor = CustomDerivationActor;
type EngineActor = CustomEngineActor;
// Define other associated types (e.g., NetworkActor, SupervisorExt, etc.)
fn mode(&self) -> NodeMode {
NodeMode::Validator
}
fn da_watcher_builder(&self) -> <Self::DataAvailabilityWatcher as NodeActor>::Builder {
// Return a builder for your custom DA watcher
CustomDAWatcher::builder(/* config */)
}
fn derivation_builder(&self) -> <Self::DerivationActor as NodeActor>::Builder {
// Compose with a custom pipeline builder
PipelineBuilder::new(/* rollup config */).build()
}
fn engine_builder(&self) -> <Self::EngineActor as NodeActor>::Builder {
CustomEngineActor::builder(/* L2 engine URL, etc. */)
}
// Implement other builder methods (e.g., network_builder, rpc_builder)
}
// Usage: Create and run the custom node
let custom_node = MyCustomNode { /* fields */ };
custom_node.run().await; // Assuming a run method; adapt per actual API
由于节点连接和执行逻辑均已抽象化,只需定义 actor 构建器即可。这样一来,该 trait 就能利用其抽象机制自动启动节点。
kona-node
的推出将推动 OP Stack 向更去中心化、更高效的方向演进。所有 Rust crate 均以模块化形式发布,您可以作为库自由扩展,或者作为应用直接使用,也可以任意组合改造现有功能。
立即访问 rollup.yoga 运行您的首个节点,并欢迎参与 kona代码库 贡献!
感谢各位 OP 建设者的支持,我们将在此帖子更新我们的治理进展,我们将持续更新 OP 以及超级链进展,帮助更多的建设者深度参与 OP 生态的团队,欢迎 Delegate 给我们,联系方式。
深入参与 Optimism 生态的工程师帮您解决在开发、部署、运维阶段遇到技术问题。
Join us
微信公众号: Optimism 中文
Twitter: https://x.com/Optimismzh
Telegram:https://t.me/optimism_cn
Medium: https://medium.com/@optimismcn
微信群:公众号后台回复 【加群】
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!