#pipeline #op #derivation #stack #source #l2 #traits

kona-derive

A no_std derivation pipeline implementation for the OP Stack

9 releases

new 0.2.0 Dec 4, 2024
0.1.0 Nov 20, 2024
0.0.7 Nov 20, 2024
0.0.5 Oct 29, 2024
0.0.1 Feb 22, 2024

#138 in Magic Beans

Download history 8/week @ 2024-08-15 6/week @ 2024-08-22 82/week @ 2024-08-29 70/week @ 2024-09-05 29/week @ 2024-09-12 32/week @ 2024-09-19 27/week @ 2024-09-26 44/week @ 2024-10-03 21/week @ 2024-10-10 17/week @ 2024-10-17 266/week @ 2024-10-24 100/week @ 2024-10-31 176/week @ 2024-11-07 164/week @ 2024-11-14 172/week @ 2024-11-21 21/week @ 2024-11-28

574 downloads per month
Used in 7 crates (5 directly)

MIT license

1MB
7.5K SLoC

kona-derive

CI Kona Derive License Codecov

A no_std compatible implementation of the OP Stack's derivation pipeline.

Usage

The intended way of working with kona-derive is to use the DerivationPipeline which implements the Pipeline trait. To create an instance of the DerivationPipeline, it's recommended to use the PipelineBuilder as follows.

use std::sync::Arc;
use op_alloy_genesis::RollupConfig;
use kona_derive::sources::EthereumDataSource;
use kona_derive::pipeline::PipelineBuilder;
use kona_derive::attributes::StatefulAttributesBuilder;

let chain_provider = todo!();
let l2_chain_provider = todo!();
let blob_provider = todo!();
let l1_origin = todo!();

let cfg = Arc::new(RollupConfig::default());
let attributes = StatefulAttributesBuilder::new(
   cfg.clone(),
   l2_chain_provider.clone(),
   chain_provider.clone(),
);
let dap = EthereumDataSource::new(
   chain_provider.clone(),
   blob_provider,
   cfg.as_ref()
);

// Construct a new derivation pipeline.
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();

Features

The most up-to-date feature list will be available on the docs.rs Feature Flags tab of the kona-derive crate.

Some features include the following.

  • serde: Serialization and Deserialization support for kona-derive types.
  • test-utils: Test utilities for downstream libraries.

By default, kona-derive enables the serde feature.

Dependencies

~25MB
~663K SLoC