kona-engine
An extensible implementation of the OP Stack rollup node engine client.
Overview
The kona-engine crate provides a task-based engine client for interacting with Ethereum execution layers. It implements the Engine API specification and manages the execution layer state through a priority-driven task queue system.
Key Components
Engine- Main task queue processor that executes engine operations atomicallyEngineClient- HTTP client for Engine API communication with JWT authenticationEngineState- Tracks the current state of the execution layer- Task Types - Specialized tasks for different engine operations:
InsertTask- Insert new payloads into the execution engineBuildTask- Build new payloads with automatic forkchoice synchronizationConsolidateTask- Consolidate unsafe payloads to advance the safe chainFinalizeTask- Finalize safe payloads on L1 confirmationSynchronizeTask- Internal task for execution layer forkchoice synchronization
Architecture
The engine implements a task-driven architecture where forkchoice synchronization is handled automatically:
- Automatic Forkchoice Handling: The
BuildTaskautomatically performs forkchoice updates during block building, eliminating the need for explicit forkchoice management in user code. - Internal Synchronization:
SynchronizeTaskhandles internal execution layer synchronization and is primarily used by other tasks rather than directly by users. - Priority-Based Execution: Tasks are executed in priority order to ensure optimal sequencer performance and block processing efficiency.
Usage
use ;
use RollupConfig;
use JwtSecret;
use Url;
use Arc;
# async
Engine API Compatibility
The crate supports multiple Engine API versions with automatic version selection based on the rollup configuration:
- Engine Forkchoice Updated: V2, V3
- Engine New Payload: V2, V3, V4
- Engine Get Payload: V2, V3, V4
Version selection follows Optimism hardfork activation times (Bedrock, Canyon, Delta, Ecotone, Isthmus).
Features
metrics- Enable Prometheus metrics collection (optional)