/kona

A suite of `no_std` components for the OP Stack state transition function and L2 chain derivation.

Primary LanguageRustMIT LicenseMIT

Kona

A verifiable implementation of the Optimism rollup state transition.

CI License Book OP Stack

What's Kona?OverviewContributingCredits

What's Kona?

Kona is a suite of portable implementations of the OP Stack rollup state transition, namely the derivation pipeline and the block execution logic.

Built on top of these libraries, this repository also features a fault proof program designed to deterministically execute the rollup state transition in order to verify an L2 output root from the L1 inputs it was derived from.

Alternative Backends

Kona's libraries were built with alternative backend support and extensibility in mind - it is not just a fault proof program! Kona is also used by:

To build your own backend for kona, or build a new application on top of its libraries, see the SDK section of the book.

Development Status

kona is currently in active development, and is not yet ready for use in production.

Overview

kona

Build Pipelines

  • cannon: Docker image for compiling to the bare-metal mips-unknown-none target.
  • asterisc: Docker image for compiling to the bare-metal riscv64gc-unknown-none-elf target.

client / host SDK

  • common: A suite of utilities for developing client programs to be ran on top of Fault Proof VMs.
  • common-proc: Proc macro for the client program entrypoint.
  • primitives: Primitive types for use in kona crates.
  • preimage: High level interfaces to the PreimageOracle ABI
  • mpt: Utilities for interacting with the Merkle Patricia Trie in the client program.
  • executor: no_std stateless block executor for the OP Stack.
  • derive: no_std compatible implementation of the derivation pipeline.

Book

The book contains a more in-depth overview of the project, contributor guidelines, tutorials for getting started with building your own programs, and a reference for the libraries and tools provided by Kona.

Credits

kona is inspired by the work of several teams, namely OP Labs and other contributors' work on the op-program and BadBoiLabs's work on Cannon-rs.