Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add README and import script #261

Merged
merged 9 commits into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ function sidebarHome() {
items: [
{ text: 'Introduction to Rollkit', link: '/learn/intro'},
{ text: 'About Rollkit', link: '/learn/about' },
{ text: 'Readme', link: '/learn/readme' },
]
},
{
Expand All @@ -166,7 +167,6 @@ function sidebarHome() {
{ text: 'Overview', link: '/learn/overview'},
{ text: 'Rollkit stack', link: '/learn/stack' },
{ text: 'Transaction flow', link: '/learn/transaction-flow' },
{ text: 'Building with Rollkit', link: '/learn/building-with-rollkit'},
{
text: 'Rollup Wiki',
collapsed: true,
Expand Down
2 changes: 1 addition & 1 deletion blog/introducing-rollkit.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Rollkit will support a multitude of proof schemes to ensure the execution of you

Rollkit will allow you to build a diverse range of rollups, including sovereign rollups, settlement rollups and settled rollups.

Rollkit is in an early stage of development and many features remain to be built to reach this vision. In its [current state](/learn/stack), Rollkit rollups are [sovereign rollups](https://blog.celestia.org/sovereign-rollup-chains) with single sequencers, with support for a pessimistic mode and a [work-in-progress optimistic mode](https://github.com/rollkit/rollkit/blob/manav/state_fraud_proofs_adr/docs/lazy-adr/adr-009-state-fraud-proofs.md). [Integration tutorials](/learn/building-with-rollkit) are ready and available with Cosmos SDK, Ethermint, and CosmWasm.
Rollkit is in an early stage of development and many features remain to be built to reach this vision. In its [current state](/learn/stack), Rollkit rollups are [sovereign rollups](https://blog.celestia.org/sovereign-rollup-chains) with single sequencers, with support for a pessimistic mode and a [work-in-progress optimistic mode](https://github.com/rollkit/rollkit/blob/manav/state_fraud_proofs_adr/docs/lazy-adr/adr-009-state-fraud-proofs.md). [Integration tutorials](/learn/intro) are ready and available with Cosmos SDK, Ethermint, and CosmWasm.

We invite the community to collaborate with us to build new features. Each new team that joins the growing Rollkit community brings more firepower to ship new features that we all benefit from. This is the power of modularity in action.

Expand Down
26 changes: 26 additions & 0 deletions importReadme.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import fs from 'fs';
import fetch from 'node-fetch';

const filesToImport = [
{
url: 'https://raw.githubusercontent.com/rollkit/rollkit/main/README.md',
fileName: 'readme.md',
},
];

async function importReadme(file) {
try {
const response = await fetch(file.url);
if (response.ok) {
const markdown = await response.text();
fs.writeFileSync(`./learn/${file.fileName}`, markdown);
console.log(`Markdown file '${file.fileName}' successfully imported!`);
} else {
console.error(`Error fetching the markdown file: ${response.statusText}`);
}
} catch (error) {
console.error(`Error importing the markdown file: ${error.message}`);
}
}

filesToImport.forEach(importReadme);
2 changes: 1 addition & 1 deletion index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ features:
icon: 📈
- title: Flexible
details: Freedom to configure the execution environment and other components
link: /learn/building-with-rollkit
link: /learn/intro
icon: ⚙️
- title: Easy to deploy
details: Deploy a rollup with only a few command lines
Expand Down
111 changes: 0 additions & 111 deletions learn/building-with-rollkit.md

This file was deleted.

1 change: 0 additions & 1 deletion learn/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,5 @@ transaction flow, building with Rollkit, a glossary, and more.

- [Rollkit Stack](/learn/stack)
- [Transaction Flow](/learn/transaction-flow)
- [Building with Rollkit](/learn/building-with-rollkit)
- Rollup Wiki
- [A-Z Glossary](/learn/rollup-glossary)
129 changes: 129 additions & 0 deletions learn/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Rollkit

A modular framework for rollups, with an ABCI-compatible client interface. For more in-depth information about Rollkit, please visit our [website](https://rollkit.dev).

<!-- markdownlint-disable MD013 -->
[![build-and-test](https://github.com/rollkit/rollkit/actions/workflows/test.yml/badge.svg)](https://github.com/rollkit/rollkit/actions/workflows/test.yml)
[![golangci-lint](https://github.com/rollkit/rollkit/actions/workflows/lint.yml/badge.svg)](https://github.com/rollkit/rollkit/actions/workflows/lint.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/rollkit/rollkit)](https://goreportcard.com/report/github.com/rollkit/rollkit)
[![codecov](https://codecov.io/gh/rollkit/rollkit/branch/main/graph/badge.svg?token=CWGA4RLDS9)](https://codecov.io/gh/rollkit/rollkit)
[![GoDoc](https://godoc.org/github.com/rollkit/rollkit?status.svg)](https://godoc.org/github.com/rollkit/rollkit)
<!-- markdownlint-enable MD013 -->

## Building from source

Requires Go version >= 1.20.

To build:

```sh
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](https://github.com/rollkit/local-celestia-devnet)
1. 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 |

<!-- markdownlint-disable MD013 -->
| rollkit/cosmos-sdk | rollkit/cometbft | rollkit |
|-|-|-|
| [v0.47.3-rollkit-v0.10.5-no-fraud-proofs](https://github.com/rollkit/cosmos-sdk/releases/tag/v0.47.3-rollkit-v0.10.5-no-fraud-proofs)| v0.37.2 | [v0.10.5](https://github.com/rollkit/rollkit/releases/tag/v0.10.5)|
| [v0.50.0-rc.0-rollkit-v0.11.0-rc1-no-fraud-proofs](https://github.com/rollkit/cosmos-sdk/releases/tag/v0.50.0-rc.0-rollkit-v0.11.0-rc1-no-fraud-proofs) | v0.38.0-rc3| [v0.11.0-rc1](https://github.com/rollkit/rollkit/releases/tag/v0.11.0-rc1) |
<!-- markdownlint-enable MD013 -->

#### Local development environment

The Rollkit v0.10.5 release is compatible with the
[local-celestia-devnet](https://github.com/rollkit/local-celestia-devnet) [v0.11.0](https://github.com/rollkit/local-celestia-devnet/releases/tag/v0.11.0)
release. This version combination is compatible with celestia-app
[v1.1.0](https://github.com/celestiaorg/celestia-app/releases/tag/v1.1.0)
and celestia-node
[v0.11.0](https://github.com/celestiaorg/celestia-node/releases/tag/v0.11.0).

#### Arabica devnet and Mocha testnet

The Rollkit v0.10.5 release is compatible with
[arabica-10](https://docs.celestia.org/nodes/arabica-devnet/) devnet
[mocha-4](https://docs.celestia.org/nodes/mocha-testnet/) testnet which are running
celestia-app
[v1.1.0](https://github.com/celestiaorg/celestia-app/releases/tag/v1.1.0)
and celestia-node
[v0.11.0](https://github.com/celestiaorg/celestia-node/releases/tag/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](https://golangci-lint.run/usage/install/)
1. Install [markdownlint](https://github.com/DavidAnson/markdownlint)
1. Install [hadolint](https://github.com/hadolint/hadolint)
1. Install [yamllint](https://yamllint.readthedocs.io/en/stable/quickstart.html)

## Helpful commands

```sh
# 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](https://github.com/rollkit/rollkit/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
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](https://github.com/rollkit/rollkit/blob/main/CONTRIBUTING.md)
for more details.

Please join our
[Community Discord](https://discord.com/invite/YsnTPcSfWQ)
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](https://github.com/rollkit/rollkit/blob/main/specs/src/specs/rollkit-dependency-graph.md).

## Code of Conduct

See our Code of Conduct [here](https://docs.celestia.org/community/coc).
6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@
"scripts": {
"docs:dev": "vitepress dev",
"docs:build": "vitepress build",
"docs:preview": "vitepress preview"
"docs:preview": "vitepress preview",
"import-readme": "node importReadme.mjs"
},
"devDependencies": {
"i": "^0.3.7",
"mermaid": "^10.3.0",
"vitepress": "1.0.0-rc.4",
"vitepress-plugin-mermaid": "^2.0.13"
},
"dependencies": {
"node-fetch": "^3.3.2"
}
}
Loading