rollkit

module
v0.11.13 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2024 License: Apache-2.0

README

Rollkit

A modular framework for rollups, with an ABCI-compatible client interface. For more in-depth information about Rollkit, please visit our website.

build-and-test
golangci-lint
Go Report Card
codecov
GoDoc

Building from source

Requires Go version >= 1.21.

To build:

git clone https://github.com/rollkit/rollkit.git
cd rollkit
go build -v ./...

Building with Rollkit

While Rollkit is a modular framework that aims to be compatible with a wide range of data availability layers, settlement layers, and execution environments, the most supported development environment is building on Celestia as a data availability layer.

Building on Celestia

There are currently 2 ways to build on Celestia:

  1. Using a local development environment with local-celestia-devnet
  2. Using the Arabica or Mocha Celestia testnet
Compatibility
network rollkit celestia-node celestia-app
local-celestia-devnet v0.10.5 v0.11.0 v1.1.0
arabica v0.10.5 v0.11.0 v1.1.0
rollkit/cosmos-sdk rollkit/cometbft rollkit
v0.47.3-rollkit-v0.10.5-no-fraud-proofs v0.37.2 v0.10.5
v0.50.0-rc.0-rollkit-v0.11.0-rc1-no-fraud-proofs v0.38.0-rc3 v0.11.0-rc1
Local development environment

The Rollkit v0.10.5 release is compatible with the local-celestia-devnet v0.11.0 release. This version combination is compatible with celestia-app v1.1.0 and celestia-node v0.11.0.

Arabica devnet and Mocha testnet

The Rollkit v0.10.5 release is compatible with arabica-10 devnet mocha-4 testnet which are running celestia-app v1.1.0 and celestia-node v0.11.0.

Cometbft v0.38.x and Cosmos-SDK v0.50.x

The Rollkit v0.11.0-rc1 release is compatible with Cometbft v0.38.0-rc3 and Cosmos-SDK v0.50.0-rc.0. However, there is no support by ignite for launching a compatible app (e.g. gm app) and Rollkit is working on building a gm app for testing this release (WIP).

Tools
  1. Install golangci-lint
  2. Install markdownlint
  3. Install hadolint
  4. Install yamllint

Helpful commands

# Run unit tests
make test

# Generate protobuf files (requires Docker)
make proto-gen

# Run linters (requires golangci-lint, markdownlint, hadolint, and yamllint)
make lint

# Lint protobuf files (requires Docker and buf)
make proto-lint

Contributing

We welcome your contributions! Everyone is welcome to contribute, whether it's in the form of code, documentation, bug reports, feature requests, or anything else.

If you're looking for issues to work on, try looking at the good first issue list. Issues with this tag are suitable for a new external contributor and is a great way to find something you can help with!

See the contributing guide for more details.

Please join our Community Discord to ask questions, discuss your ideas, and connect with other contributors.

Dependency graph

To see our progress and a possible future of Rollkit visit our Dependency Graph.

Code of Conduct

See our Code of Conduct here.

Directories

Path Synopsis
da
rpc
test
log
third_party
celestia-app/shares
Package shares provides primitives for splitting block data into shares and parsing shares back into block data.
Package shares provides primitives for splitting block data into shares and parsing shares back into block data.
log

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL