Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anton-rs/kona
A suite of `no_std` components for the OP Stack state transition function and L2 chain derivation.
https://github.com/anton-rs/kona
asterisc cannon ethereum fault-proofs layer2 optimism rust
Last synced: 18 days ago
JSON representation
A suite of `no_std` components for the OP Stack state transition function and L2 chain derivation.
- Host: GitHub
- URL: https://github.com/anton-rs/kona
- Owner: anton-rs
- License: mit
- Created: 2023-11-24T07:03:05.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-22T21:47:51.000Z (about 1 month ago)
- Last Synced: 2024-12-28T09:01:36.051Z (25 days ago)
- Topics: asterisc, cannon, ethereum, fault-proofs, layer2, optimism, rust
- Language: Rust
- Homepage: https://anton-rs.github.io/kona
- Size: 45.8 MB
- Stars: 143
- Watchers: 10
- Forks: 47
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
A verifiable implementation of the Optimism rollup state transition.
What's Kona? •
Overview •
Contributing •
Credits## What's Kona?
Kona is a suite of portable implementations of the OP Stack rollup state transition, namely the [derivation pipeline][g-derivation-pipeline] and
the block execution logic.Built on top of these libraries, this repository also features a [fault proof program][fpp-specs] designed to deterministically execute the
rollup state transition in order to verify an [L2 output root][g-output-root] from the L1 inputs it was [derived from][g-derivation-pipeline].### 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:- [`op-succinct`][op-succinct]
To build your own backend for kona, or build a new application on top of its libraries,
see the [SDK section of the book](https://anton-rs.github.io/kona/sdk/intro.html).### Development Status
`kona` is currently in active development, and is not yet ready for use in production.
## Overview
**`kona`**
- [`client`](./bin/client): The bare-metal program that runs on top of a [fault proof VM][g-fault-proof-vm].
- [`host`](./bin/host): The host program that runs natively alongside the FPVM, serving as the [Preimage Oracle][g-preimage-oracle] server.**Build Pipelines**
- [`cannon`](./build/cannon): Docker image for compiling to the bare-metal `mips-unknown-none` target.
- [`asterisc`](./build/asterisc): Docker image for compiling to the bare-metal `riscv64imac-unknown-none-elf` target.**Protocol**
- [`mpt`](./crates/mpt): Utilities for interacting with the Merkle Patricia Trie in the client program.
- [`executor`](./crates/executor): `no_std` stateless block executor for the [OP Stack][op-stack].
- [`derive`](./crates/derive): `no_std` compatible implementation of the [derivation pipeline][g-derivation-pipeline].
- [`driver`](./crates/driver): Stateful derivation pipeline driver.**Proof SDK**
- [`kona-proof`](./crates/proof-sdk/proof): High level OP Stack state transition proof SDK.
- [`preimage`](./crates/proof-sdk/preimage): High level interfaces to the [`PreimageOracle`][fpp-specs] ABI.
- [`std-fpvm`](./crates/proof-sdk/std-fpvm): Platform specific [Fault Proof VM][g-fault-proof-vm] kernel APIs.
- [`std-fpvm-proc`](./crates/proof-sdk/std-fpvm-proc): Proc macro for [Fault Proof Program][fpp-specs] entrypoints.## Book
The [book][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][op-labs] and other contributors' work on the
[`op-program`][op-program] and [BadBoiLabs][bad-boi-labs]'s work on [Cannon-rs][badboi-cannon-rs].[alloy]: https://github.com/alloy-rs/alloy
[op-alloy]: https://github.com/alloy-rs/op-alloy
[op-stack]: https://github.com/ethereum-optimism/optimism
[op-program]: https://github.com/ethereum-optimism/optimism/tree/develop/op-program
[cannon]: https://github.com/ethereum-optimism/optimism/tree/develop/cannon
[cannon-rs]: https://github.com/anton-rs/cannon-rs
[badboi-cannon-rs]: https://github.com/BadBoiLabs/cannon-rs
[asterisc]: https://github.com/etheruem-optimism/asterisc
[fpp-specs]: https://specs.optimism.io/experimental/fault-proof/index.html
[book]: https://anton-rs.github.io/kona/
[op-succinct]: https://github.com/succinctlabs/op-succinct
[op-labs]: https://github.com/ethereum-optimism
[bad-boi-labs]: https://github.com/BadBoiLabs
[g-output-root]: https://specs.optimism.io/glossary.html#l2-output-root
[g-derivation-pipeline]: https://specs.optimism.io/protocol/derivation.html#l2-chain-derivation-pipeline
[g-fault-proof-vm]: https://specs.optimism.io/experimental/fault-proof/index.html#fault-proof-vm
[g-preimage-oracle]: https://specs.optimism.io/experimental/fault-proof/index.html#pre-image-oracle