Rollkit
A modular framework for rollups, with an ABCI-compatible client interface. For more in-depth information about Rollkit, please visit our website.
Building From Source
Requires Go version >= 1.19.
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:
- Using a local development environment with local-celestia-devnet
- Using the Arabica or Mocha Celestia testnet
Compatibility
network |
rollkit |
celestia-node |
celestia-app |
local-celestia-devnet |
v0.8.1 |
v0.10.4 |
v0.13.3 |
arabica |
v0.8.2-rc0 |
v0.11.0-rc2 |
v1.0.0-rc0 |
rollkit/cosmos-sdk |
rollkit/cometbft |
rollkit |
v0.46.13-rollkit-v0.8.1-no-fraud-proofs |
v0.0.0-20230524013049-75272ebaee38 |
v0.8.1 |
v0.45.16-rollkit-v0.8.1-no-fraud-proofs |
v0.0.0-20230524013001-2968c8b8b121 |
v0.8.1 |
|
|
|
v0.46.13-rollkit-v0.8.2-rc0-no-fraud-proofs |
v0.0.0-20230524013049-75272ebaee38 |
v0.8.2-rc0 |
v0.45.16-rollkit-v0.8.2-rc0-no-fraud-proofs |
v0.0.0-20230524013001-2968c8b8b121 |
v0.8.2-rc0 |
Local Development Environment
The current Rollkit v0.8.1 release is compatible with the
local-celestia-devnet
v0.10.4 release. This version combination is compatible with
celesita-app v0.13.3 and
celestia-node v0.10.4.
For more information see the release
notes
for v0.10.4 of local-celestia-devnet.
Arabica and Mocha Testnets
⚠ Rollkit v0.8.1 is not compatible with latest releases of Arabica and Mocha. ⚠
Arabica compatibility is currently under development on the arabica
branch of
the rollkit repo. If you are need to test or build on Arabica, please reach out
the Rollkit team and track the progress of the arabica
branch and the
v0.8.2-rcx releases.
The key updates to making Rollkit compatible with Arabica and Mocha are making
Rollkit compatible with celestia-app v1.0.0-rcX and celestia-node v0.11.0-rcX.
- Install golangci-lint
- Install markdownlint
- Install hadolint
- Install yamllint
Helpful Commands
# Run unit tests
make test-unit
# Run unit tests with the data race detector
make test-unit-race
# Run tests with and without the data race detector
make test-all
# 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.