diff --git a/.vitepress/components/callout.vue b/.vitepress/components/callout.vue
new file mode 100644
index 000000000..5d24c3dfb
--- /dev/null
+++ b/.vitepress/components/callout.vue
@@ -0,0 +1,15 @@
+
+
+
This tutorial explores Rollkit, currently in Alpha. If you encounter bugs, please report them via a GitHub issue ticket or reach out in our Telegram group.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vitepress/config.ts b/.vitepress/config.ts
index 81bfc7120..1a6767ff5 100644
--- a/.vitepress/config.ts
+++ b/.vitepress/config.ts
@@ -20,14 +20,14 @@ export default withMermaid({
},
head: [
- ["link", { rel: "icon", href: "/favicon.svg", type: "image/svg+xml" }],
- ["link", { rel: "icon", href: "/favicon.png", type: "image/png" }],
+ ["link", { rel: "icon", href: "/img/favicon.svg", type: "image/svg+xml" }],
+ ["link", { rel: "icon", href: "/img/favicon.png", type: "image/png" }],
// [
// 'link',
// {
// rel: 'icon',
// type: 'image/svg+xml',
- // href: '/favicon-dark.svg',
+ // href: '/img/favicon-dark.svg',
// media: '(prefers-color-scheme: dark)',
// },
// ],
@@ -36,7 +36,7 @@ export default withMermaid({
// {
// rel: 'icon',
// type: 'image/png',
- // href: '/favicon-dark.png',
+ // href: '/img/favicon-dark.png',
// media: '(prefers-color-scheme: dark)',
// },
// ],
@@ -49,7 +49,7 @@ export default withMermaid({
// {
// rel: 'icon',
// type: 'image/x-icon',
- // href: '/favicon-dark.ico',
+ // href: '/img/favicon-dark.ico',
// media: '(prefers-color-scheme: dark)',
// },
// ],
@@ -74,10 +74,10 @@ export default withMermaid({
],
["meta", { httpEquiv: "Content-Language", content: "en" }],
["meta", { name: "twitter:card", content: "summary_large_image" }],
- ["meta", { name: "twitter:image", content: "/Rollkit-og.png" }],
+ ["meta", { name: "twitter:image", content: "/img/Rollkit-og.png" }],
["meta", { name: "twitter:site:domain", content: "rollkit.dev" }],
["meta", { name: "twitter:url", content: "https://rollkit.dev" }],
- ["meta", { name: "og:image", content: "/Rollkit-og.png" }],
+ ["meta", { name: "og:image", content: "/img/Rollkit-og.png" }],
["meta", { name: "apple-mobile-web-app-title", content: "Rollkit" }],
[
"script",
@@ -136,8 +136,8 @@ export default withMermaid({
logo: {
alt: "Rollkit Logo",
- light: "/logo.svg",
- dark: "/logo-dark.svg",
+ light: "/img/logo.svg",
+ dark: "/img/logo-dark.svg",
},
socialLinks: [
@@ -167,9 +167,8 @@ export default withMermaid({
function nav() {
return [
- { text: "Intro", link: "/learn/intro" },
- { text: "Learn", link: "/learn/overview" },
- { text: "Tutorials", link: "/tutorials/overview" },
+ { text: "Learn", link: "/learn/intro" },
+ { text: "Tutorials", link: "/tutorials/quick-start" },
{ text: "How To Guides", link: "/guides/overview" },
{ text: "Testnets", link: "/testnets/cosmwasm-testnet" },
{ text: "Blog", link: "/blog/overview" },
@@ -179,43 +178,30 @@ function nav() {
function sidebarHome() {
return [
{
- text: "Introduction",
+ text: "Learn",
collapsed: true,
items: [
{ text: "Introduction to Rollkit", link: "/learn/intro" },
{ text: "About Rollkit", link: "/learn/about" },
- ],
- },
- {
- text: "Learn",
- collapsed: true,
- items: [
- { text: "Overview", link: "/learn/overview" },
{ text: "Rollkit stack", link: "/learn/stack" },
{ text: "Transaction flow", link: "/learn/transaction-flow" },
- {
- text: "Rollup Wiki",
- collapsed: true,
- items: [
- { text: "A-Z glossary", link: "/learn/rollup-glossary" },
- // { text: 'Basic Rollup', link: '/learn/basic-rollup' },
- ],
- },
+ { text: "Rollkit specs", link: "rollkit.github.io/rollkit" },
],
},
{
text: "Tutorials",
collapsed: true,
items: [
- { text: "Overview", link: "/tutorials/overview" },
{
text: "Rollkit",
collapsed: true,
items: [
- // { text: 'Starter Rollup with Docker', link: '/tutorials/rollup-docker'},
- // { text: 'Starter Rollup', link: '/tutorials/starter-rollup'},
{
- text: "GM world rollup: Part 1, local devnet",
+ text: "Quick start guide",
+ link: "/tutorials/quick-start",
+ },
+ {
+ text: "GM world rollup",
link: "/tutorials/gm-world",
},
{ text: "GM world frontend", link: "/tutorials/gm-world-frontend" },
@@ -242,10 +228,6 @@ function sidebarHome() {
items: [
{ text: "CosmWasm rollup", link: "/tutorials/cosmwasm" },
{ text: "Polaris EVM rollup", link: "/tutorials/polaris-evm" },
- // {
- // text: "Full-stack modular dapp with Celestia",
- // link: "https://docs.celestia.org/developers/full-stack-modular-development-guide",
- // },
],
},
],
diff --git a/blog/sovereign-rollups-on-bitcoin.md b/blog/sovereign-rollups-on-bitcoin.md
index 8050ca329..a8f5dfcf2 100644
--- a/blog/sovereign-rollups-on-bitcoin.md
+++ b/blog/sovereign-rollups-on-bitcoin.md
@@ -11,7 +11,7 @@ head:
content: Rollkit, Celestia
- - meta
- name: og:image
- content: /introducing-rollkit/rollkit-blog-cover.png
+ content: /img/introducing-rollkit/rollkit-blog-cover.png
---
# Sovereign rollups on Bitcoin with Rollkit
diff --git a/guides/cw-orch.md b/guides/cw-orch.md
index 27cfbdb24..a50d67547 100644
--- a/guides/cw-orch.md
+++ b/guides/cw-orch.md
@@ -219,7 +219,7 @@ members = ["packages/*", "contracts/*", "interface"]
Inside this `interface` crate, we advise to integrate all your contracts 1 by 1 in separate files. Here is the structure of the `cw-plus` integration for reference:
-```path
+```bash
interface (interface collection)
├── Cargo.toml
└── src
diff --git a/guides/full-and-sequencer-node.md b/guides/full-and-sequencer-node.md
index fd9e7a84d..5831a3d58 100644
--- a/guides/full-and-sequencer-node.md
+++ b/guides/full-and-sequencer-node.md
@@ -47,7 +47,7 @@ Now, clone the script for the full node:
```bash
# From inside the `gm` directory
cd $HOME/gm
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/gm/init-full-node.sh
+wget https://rollkit.dev/gm/init-full-node.sh
```
### Set DA height
diff --git a/guides/ibc-connection.md b/guides/ibc-connection.md
index c99439c58..96d21da11 100644
--- a/guides/ibc-connection.md
+++ b/guides/ibc-connection.md
@@ -56,7 +56,7 @@ go mod download
Now download the script to run the GM chain:
```bash
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/gm/init-local.sh
+wget https://rollkit.dev/gm/init-local.sh
```
Run the GM rollup:
@@ -86,7 +86,7 @@ make install
You also need to start local-osmosis-testnet in a separate terminal by downloading and running this script:
```bash
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/ibc/init-osmosis-local.sh
+wget https://rollkit.dev/ibc/init-osmosis-local.sh
```
Run the script:
diff --git a/guides/overview.md b/guides/overview.md
index 70cf20a60..752b4719c 100644
--- a/guides/overview.md
+++ b/guides/overview.md
@@ -14,19 +14,19 @@ your life easier when developing with Rollkit.
In this section, you'll find:
- * [How to restart your rollup](/guides/restart-rollup.md)
- * [zkML rollup](/guides/zkml.md)
- * [IBC connection](/guides/ibc-connection.md)
- * [Full and sequencer node rollup setup](/guides/full-and-sequencer-node.md)
- * [How to configure gas price](/guides/gas-price.md)
- * [How to change speed of block production](/guides/block-times.md)
- * [How to use lazy sequencing (aggregation)](/guides/lazy-sequencing.md)
- * [Testing and deploying smart-contract with cw-orch](/guides/cw-orch.md)
- * [How to integrate Range with your rollup](/guides/rollkit-monitoring.md)
+* [How to restart your rollup](/guides/restart-rollup.md)
+* [zkML rollup](/guides/zkml.md)
+* [IBC connection](/guides/ibc-connection.md)
+* [Full and sequencer node rollup setup](/guides/full-and-sequencer-node.md)
+* [How to configure gas price](/guides/gas-price.md)
+* [How to change speed of block production](/guides/block-times.md)
+* [How to use lazy sequencing (aggregation)](/guides/lazy-sequencing.md)
+* [Testing and deploying smart-contract with cw-orch](/guides/cw-orch.md)
+* [How to integrate Range with your rollup](/guides/rollkit-monitoring.md)
## 💻 Support {#support}
The guides will explore developing with Rollkit, which is still in Alpha stage.
-If you run into bugs, please write a Github
+If you run into bugs, please write a GitHub
[issue](https://github.com/rollkit/docs/issues/new) or let us know in our
[Telegram](https://t.me/rollkit).
diff --git a/index.md b/index.md
index e83293de9..ae72bbbc4 100644
--- a/index.md
+++ b/index.md
@@ -6,14 +6,14 @@ titleTemplate: ':title'
hero:
name: "Rollkit"
text: "The first sovereign rollup framework"
- tagline: Rollkit utilizes the shared security of a modular data availability network to allow anyone to launch their own sovereign, customizable blockchain as easily as a smart contract
+ tagline: Rollkit allows anyone to launch their own sovereign, customizable blockchain as easily as a smart contract
image:
- src: /logo-big.svg
+ src: /img/logo-big.svg
alt: Rollkit
actions:
- theme: brand
- text: Starter Rollup
- link: /tutorials/gm-world
+ text: Quick start
+ link: /tutorials/quick-start
- theme: alt
text: Introduction
link: /learn/intro
diff --git a/learn/based-pessimistic-rollup.md b/learn/based-pessimistic-rollup.md
deleted file mode 100644
index 2ca6f4a92..000000000
--- a/learn/based-pessimistic-rollup.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Basic Rollup
-
-## Description
-
-The simplest way to build a Rollup. You delegate Aggregation to the DA-Layer. Every Rollup node has to replay all the transactions in the rollup in order to check and update to the newest state.
-
-## Design
-
-Here is an example of what this design could look like:
-
-```mermaid
-graph TB
- U["User"] --> T["Transaction"]
- T --> A["DA Layer"]
-
- A --> B["Ordered Batch"]
- B --> FN["Rollup Full Node"]
-
- style U stroke:currentColor, fill:#FFA07A
- style A stroke:currentColor, fill: #87CEFA
- style FN stroke:currentColor, fill:#98FB98
-```
-
-## Aggregation
-
-The DA-Layer is the Aggregator. It does Inclusion and Ordering.
-
-## Header Production
-
-Each Full Node has to execute all transactions. There are no Light Nodes in this system so there is no need to produce a rollup header.
-
-## Censorship Resistance
-
-Based rollups enjoy the same censorship resistance as the DA-Layer.
-
-## Liveness
-
-Based rollups enjoys the same liveness guarantees as the DA-Layer (Based Rollups).
-
-## Rollup Light Nodes
-
-This design has no Rollup Light Nodes.
-
-## Smallest Trust-Minimized Setup
-
-DA-Layer Light Node + Rollup Full Node
diff --git a/learn/basic-rollup.md b/learn/basic-rollup.md
deleted file mode 100644
index 5457337fb..000000000
--- a/learn/basic-rollup.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Basic Rollup
-
-## Description
-
-The User submits a transaction to the Aggregator. After Aggregation, the Rollup Full Node can use the Batch and apply the changes to the state.
-
-During the Header Production, the Header is generated with some security grantees. The Rollup Light Node can consume the Header and validate those security guarantees.
-
-## Diagram
-
-Here is an example of what this design could look like:
-
-```mermaid
-graph TB
- U["User"] --> T["Transaction"]
- T --> A["Aggregator"]
-
- A --> B["Batch"]
- B --> HP["Header Producer"]
- B --> FN["Rollup Full Node"]
-
- HP --> H["Header+"]
- H --> LN["Rollup Light Node"]
-
- style U stroke:currentColor, fill:#FFA07A
- style FN stroke:currentColor, fill:#98FB98
- style LN stroke:currentColor, fill:#D8BFD8
- style A stroke:currentColor, fill: #87CEFA
- style HP stroke:currentColor, fill:#FA8072
-```
-
-## Aggregation
-
-TBD
-
-## Header Production
-
-TBD
-
-## Censorship Resistance
-
-TBD
-
-## Liveness
-
-TBD
-
-## Rollup Light Nodes
-
-TBD
-
-## Smallest Trust-Minimized Setup
-
-TBD
diff --git a/learn/building-and-deploying-a-rollup.md b/learn/building-and-deploying-a-rollup.md
index 9b6a54cca..6312c689a 100644
--- a/learn/building-and-deploying-a-rollup.md
+++ b/learn/building-and-deploying-a-rollup.md
@@ -12,7 +12,6 @@ You can get started with the following tutorials:
- [GM world](/tutorials/gm-world)
- [GM world frontend](/tutorials/gm-world-frontend)
-- [Recipe Book](/tutorials/recipe-book)
- [Restart your rollup](/guides/restart-rollup)
## 2️. Intermediate {#intermediate}
@@ -27,7 +26,7 @@ You can get started with the following tutorials:
## 💻 Support {#support}
The tutorials will explore developing with Rollkit,
-which is still in Alpha stage. If you run into bugs, please write a Github
+which is still in Alpha stage. If you run into bugs, please write a GitHub
[issue](https://github.com/rollkit/docs/issues/new)
or let us know in our [Telegram](https://t.me/rollkit).
Furthermore, while Rollkit allows you to build sovereign rollups
diff --git a/learn/intro.md b/learn/intro.md
index d0a4d3633..eb4dc0f22 100644
--- a/learn/intro.md
+++ b/learn/intro.md
@@ -6,7 +6,6 @@ Rollkit is the first sovereign rollup framework.
Our mission is allow anyone to launch their own sovereign, customizable blockchain as easily as a smart contract by utilizing the shared security of a modular data availability network.
-
We're setting the bar high for developers' flexibility and ability to customize rollups however they see fit.
::: tip
@@ -19,25 +18,17 @@ If you're familiar with Rollkit, you may want to skip to the [tutorials section]
## Table of contents
-### Introduction
+### Learn
- [Introduction to Rollkit](/learn/intro)
- [About Rollkit](/learn/about)
-
-### Learn
-
-- [Overview](/learn/overview)
- [Rollkit stack](/learn/stack)
- [Transaction flow](/learn/transaction-flow)
- [Building with Rollkit](/learn/building-and-deploying-a-rollup)
-#### Rollup Wiki
-
-- [A-Z glossary](/learn/rollup-glossary)
-
### Tutorials
-[Overview](/tutorials/overview)
+- [Overview](/tutorials/overview)
### Testnets
diff --git a/learn/overview.md b/learn/overview.md
deleted file mode 100644
index 62bca21f3..000000000
--- a/learn/overview.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-description: This page provides an overview of the key concepts and guides related to Rollkit. It serves as a reference for understanding the Rollkit stack, transaction flow, building with Rollkit, and more.
----
-
-# Learn
-
-This category provides an overview of the key concepts and guides related to
-Rollkit. It serves as a reference for understanding the Rollkit stack,
-transaction flow, building with Rollkit, a glossary, and more.
-
-## Table of contents
-
-- [Rollkit Stack](/learn/stack)
-- [Transaction Flow](/learn/transaction-flow)
-- Rollup Wiki
- - [A-Z Glossary](/learn/rollup-glossary)
diff --git a/learn/pessimistic-rollup-with-a-shared-sequencer.md b/learn/pessimistic-rollup-with-a-shared-sequencer.md
deleted file mode 100644
index 5bb60bc51..000000000
--- a/learn/pessimistic-rollup-with-a-shared-sequencer.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Pessimistic Rollup with a Shared Sequencer
-
-## Description
-
-This is a pessimistic Rollup using a Shared Sequencer. This design follows the Forum Post originating the [Shared Sequencer Design](https://forum.celestia.org/t/sharing-a-sequencer-set-by-separating-execution-from-aggregation/702/9). We assume the only canonical way to order the transactions are through the Shared Sequencer. All transactions have to be ordered by the Shared Sequencer and other batches are ignored.
-
-## Design
-
-Here is an example of what this design could look like:
-
-```mermaid
-graph TB
- U["User"] --> T["Transaction"] --> SA["Shared Aggregator"]
-
- subgraph A["Aggregator"]
- SA --> OB1["Ordered Batch"] --> DAL["DA-Layer"]
- SA --> OB2["Soft Committed Ordered Batch \n & Shared Aggregator Header+"]
- end
-
- OB2 --> FN["Rollup Full Node"]
- DAL --> OB3["Ordered Batch"] --> FN
-
- style U stroke:currentColor, fill:#FFA07A
- style SA stroke:currentColor, fill:#87CEFA
- style FN stroke:currentColor, fill:#98FB98
- style DAL stroke:currentColor, fill:#D8BFD8
-```
-
-## Aggregation
-
-The Shared Sequencer Aggregates Transactions and posts the ordered Batch to the underlying DA-Layer.
-
-> To unlock a web2 equivalent UX, the shared sequencers […] can provide fast soft commitments. These soft commitments provide some arbitrary promise of the final ordering of transactions, and can be used to create prematurely updated versions of the state. As soon as the block data has been confirmed to be posted on the base layer, the state can be considered final.
->
-
-The Shared Sequencer does Inclusion and Ordering.
-
-## Header Production
-
-Each Full Node has to execute all transactions. There are no Light Nodes in this system so there is no need to produce a rollup header.
-
-## Censorship Resistance
-
-Lets assume $L_{ss}$ is the liveness of the Shared Sequencer and the $L_{da}$ is the liveness of the DA-Layer. Then the liveness of this scheme is $L = Min[L_{ss},L_{da}]$ saying if one of the Systems has a liveness failure the Rollup has a liveness failure. If the Shared Sequencer fails then we cannot proceed with the Rollup. If the DA-Layer fails we could continue with the Shared Sequencers Soft Commitments. We would inherit the consensuses and data-availability from the Shared Sequencer which would be worse than the original Data-Availability Layer.
-
-## Liveness
-
-Based rollups enjoys the same liveness guarantees as the DA-Layer (Based Rollups).
-
-## Rollup Light Nodes
-
-N/A
-
-## Smallest Trust-Minimized Setup
-
-DA-Layer Light Node + Shared Sequencer Light Node + Rollup Full Node
-
-We need a Shared Sequencer Light Node to validate the Headers of the Shared Sequencer. We made an assumption in the beginning that the order is fixed by the ordering of the shared sequencer. The Shared Sequencer will have a cryptographic commitment of the order of the Transaction inside the Shared Sequencer Header. This way we can confirm that the batch that we receive or read from the DA-Layer is the one created by the Shared Sequencer.
diff --git a/learn/readme.md b/learn/readme.md
deleted file mode 100644
index 7a72c14b1..000000000
--- a/learn/readme.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# Rollkit
-
-The first sovereign rollup framework, with an ABCI-compatible client interface. For more in-depth information about Rollkit, please visit our [website](https://rollkit.dev).
-
-
-[](https://github.com/rollkit/rollkit/actions/workflows/test.yml)
-[](https://github.com/rollkit/rollkit/actions/workflows/lint.yml)
-[](https://goreportcard.com/report/github.com/rollkit/rollkit)
-[](https://codecov.io/gh/rollkit/rollkit)
-[](https://godoc.org/github.com/rollkit/rollkit)
-
-
-## Rollkit CLI
-
-Requires Go version >= 1.21.
-
-A cli tool that allows you to run different kinds of nodes for a rollkit network
-while also helping you generate the required configuration files
-
-### Install
-
-To install `rollkit`, simply run the following command at the root of the
-rollkit repo
-
-```bash
-make install
-```
-
-The latest Rollkit is now installed. You can verify the installation by running:
-
-```bash
-rollkit version
-```
-
-Explore the CLI documentation [here](./cmd/rollkit/docs/rollkit.md)
-
-## 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
-
-You can build Rollkit rollups with [local-celestia-devnet](https://github.com/rollkit/local-celestia-devnet),
-[arabica devnet](https://docs.celestia.org/nodes/arabica-devnet) and
-[mocha testnet](https://docs.celestia.org/nodes/mocha-testnet) and
-[mainnet beta](https://docs.celestia.org/nodes/mainnet).
-
-#### Compatibility
-
-| network | rollkit | celestia-node | celestia-app |
-| --------------------- | ------- | ------------- | ------------ |
-| local-celestia-devnet | v0.13.1 | v0.13.1 | v1.7.0 |
-| arabica | v0.13.1 | v0.13.1 | v1.7.0 |
-| mocha | v0.13.1 | v0.13.1 | v1.7.0 |
-| mainnet | v0.13.1 | v0.13.1 | v1.7.0 |
-
-
-| rollkit/cosmos-sdk | rollkit/cometbft | rollkit |
-|-|-|-|
-| [v0.50.5-rollkit-v0.13.1-no-fraud-proofs](https://github.com/rollkit/cosmos-sdk/releases/tag/v0.50.5-rollkit-v0.13.1-no-fraud-proofs) | v0.38.5| [v0.13.1](https://github.com/rollkit/rollkit/releases/tag/v0.13.1) |
-
-
-#### Local development environment
-
-The Rollkit v0.13.1 release is compatible with the
-[local-celestia-devnet](https://github.com/rollkit/local-celestia-devnet) [v0.13.1](https://github.com/rollkit/local-celestia-devnet/releases/tag/v0.13.1)
-release. This version combination is compatible with celestia-app
-[v1.7.0](https://github.com/celestiaorg/celestia-app/releases/tag/v1.7.0)
-and celestia-node
-[v0.13.1](https://github.com/celestiaorg/celestia-node/releases/tag/v0.13.1).
-
-#### Arabica devnet and Mocha testnet
-
-The Rollkit v0.13.1 release is compatible with
-[arabica-11](https://docs.celestia.org/nodes/arabica-devnet/) devnet
-[mocha-4](https://docs.celestia.org/nodes/mocha-testnet/) testnet which are running
-celestia-app
-[v1.7.0](https://github.com/celestiaorg/celestia-app/releases/tag/v1.7.0)
-and celestia-node
-[v0.13.1](https://github.com/celestiaorg/celestia-node/releases/tag/v0.13.1).
-
-#### Celestia mainnet
-
-The Rollkit v0.13.1 release is compatible with [mainnet-beta](https://docs.celestia.org/nodes/mainnet/)
-which is running celestia-app
-[v1.7.0](https://github.com/celestiaorg/celestia-app/releases/tag/v1.7.0)
-and celestia-node
-[v0.13.1](https://github.com/celestiaorg/celestia-node/releases/tag/v0.13.1).
-
-#### Cometbft v0.37.x and Cosmos-SDK v0.47.x
-
-The Rollkit v0.10.7 release is compatible with Cometbft v0.37.2 and Cosmos-SDK
-v0.47.6. However, this version is no longer supported for future developments and
-it is recommended to use Rollkit v0.13.x.
-
-### Tools
-
-1. Install [golangci-lint](https://golangci-lint.run/welcome/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).
diff --git a/learn/rollup-glossary.md b/learn/rollup-glossary.md
deleted file mode 100644
index bc30a53eb..000000000
--- a/learn/rollup-glossary.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# Rollup glossary
-
-A wiki of terms to define different Rollup designs and terminology:
-
-
-
-## Terminology
-
-### Aggregation
-
-Aggregation is the process of batching transactions into one batch. A batch of transactions consists of one or more transactions.
-
-### Based rollup
-
-A based rollup is a rollup that delegates aggregation to a DA-Layer.
-
-### Execution
-
-Execution is the process by which the transactions in the blockchain are processed and their effects are applied to the state of the blockchain.
-
-### Header production
-
-Header production is the process of creating the Rollup header backed by specific security properties.
-
-### Inclusion
-
-Inclusion is the process by which a transaction is accepted into the blockchain.
-
-### Ordering
-
-Ordering is the process of arranging transactions in a specific sequence in the blockchain.
-
-### Pessimistic rollup
-
-A pessimistic rollup is a rollup that only supports full nodes that replay all the transactions in the rollup to check its validity.
-
-### Rollup Block
-
-A rollup block is a data structure representing the Blockchain at a certain height. It consists of [**Rollup Data**](#rollup-data) and
-[**Rollup Headers**](#rollup-header).
-
-### Rollup Data
-
-Rollup data is either a batch of transactions or the state difference between transaction batches.
-
-### Rollup Header
-
-is metadata about the block which at minimum includes a commitment to the transactions in that block.
-
-### Rollups
-
-Rollups are blockchains that post their Transaction Data to another blockchain and inherit its consensus and data availability.
-
-### Sequencing
-
-Sequencing is the process of aggregation and header production.
diff --git a/public/RollkitGPT-icon.svg b/public/RollkitGPT-icon.svg
deleted file mode 100644
index 9c4ba7393..000000000
--- a/public/RollkitGPT-icon.svg
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
\ No newline at end of file
diff --git a/public/RollkitGPT.svg b/public/RollkitGPT.svg
deleted file mode 100644
index e43dd0dae..000000000
--- a/public/RollkitGPT.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
\ No newline at end of file
diff --git a/scripts/cosmwasm/init.sh b/public/cosmwasm/init.sh
similarity index 100%
rename from scripts/cosmwasm/init.sh
rename to public/cosmwasm/init.sh
diff --git a/scripts/gm/init-arabica-testnet.sh b/public/gm/init-arabica-testnet.sh
similarity index 100%
rename from scripts/gm/init-arabica-testnet.sh
rename to public/gm/init-arabica-testnet.sh
diff --git a/scripts/gm/init-full-node.sh b/public/gm/init-full-node.sh
similarity index 100%
rename from scripts/gm/init-full-node.sh
rename to public/gm/init-full-node.sh
diff --git a/scripts/gm/init-local.sh b/public/gm/init-local.sh
similarity index 100%
rename from scripts/gm/init-local.sh
rename to public/gm/init-local.sh
diff --git a/scripts/gm/init-mainnet.sh b/public/gm/init-mainnet.sh
similarity index 100%
rename from scripts/gm/init-mainnet.sh
rename to public/gm/init-mainnet.sh
diff --git a/scripts/gm/init-mocha-testnet.sh b/public/gm/init-mocha-testnet.sh
similarity index 100%
rename from scripts/gm/init-mocha-testnet.sh
rename to public/gm/init-mocha-testnet.sh
diff --git a/scripts/ibc/init-osmosis-local.sh b/public/ibc/init-osmosis-local.sh
similarity index 100%
rename from scripts/ibc/init-osmosis-local.sh
rename to public/ibc/init-osmosis-local.sh
diff --git a/public/Rollkit-og.png b/public/img/Rollkit-og.png
similarity index 100%
rename from public/Rollkit-og.png
rename to public/img/Rollkit-og.png
diff --git a/public/color-scheme.png b/public/img/color-scheme.png
similarity index 100%
rename from public/color-scheme.png
rename to public/img/color-scheme.png
diff --git a/public/favicon-dark.ico b/public/img/favicon-dark.ico
similarity index 100%
rename from public/favicon-dark.ico
rename to public/img/favicon-dark.ico
diff --git a/public/favicon-dark.png b/public/img/favicon-dark.png
similarity index 100%
rename from public/favicon-dark.png
rename to public/img/favicon-dark.png
diff --git a/public/favicon-dark.svg b/public/img/favicon-dark.svg
similarity index 100%
rename from public/favicon-dark.svg
rename to public/img/favicon-dark.svg
diff --git a/public/favicon.png b/public/img/favicon.png
similarity index 100%
rename from public/favicon.png
rename to public/img/favicon.png
diff --git a/public/favicon.svg b/public/img/favicon.svg
similarity index 100%
rename from public/favicon.svg
rename to public/img/favicon.svg
diff --git a/public/introducing-rollkit/comparison-table.png b/public/img/introducing-rollkit/comparison-table.png
similarity index 100%
rename from public/introducing-rollkit/comparison-table.png
rename to public/img/introducing-rollkit/comparison-table.png
diff --git a/public/introducing-rollkit/rollkit-blog-cover.png b/public/img/introducing-rollkit/rollkit-blog-cover.png
similarity index 100%
rename from public/introducing-rollkit/rollkit-blog-cover.png
rename to public/img/introducing-rollkit/rollkit-blog-cover.png
diff --git a/public/introducing-rollkit/rollkit-lego.png b/public/img/introducing-rollkit/rollkit-lego.png
similarity index 100%
rename from public/introducing-rollkit/rollkit-lego.png
rename to public/img/introducing-rollkit/rollkit-lego.png
diff --git a/public/logo-big.svg b/public/img/logo-big.svg
similarity index 100%
rename from public/logo-big.svg
rename to public/img/logo-big.svg
diff --git a/public/logo-dark.svg b/public/img/logo-dark.svg
similarity index 100%
rename from public/logo-dark.svg
rename to public/img/logo-dark.svg
diff --git a/public/logo.svg b/public/img/logo.svg
similarity index 100%
rename from public/logo.svg
rename to public/img/logo.svg
diff --git a/public/transaction-flow.png b/public/img/transaction-flow.png
similarity index 100%
rename from public/transaction-flow.png
rename to public/img/transaction-flow.png
diff --git a/public/install-gm-rollup.sh b/public/install-gm-rollup.sh
new file mode 100644
index 000000000..b744bf929
--- /dev/null
+++ b/public/install-gm-rollup.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+echo "Downloading GM tutorial rollup source code..."
+git clone https://github.com/rollkit/gm.git
+cd gm || { echo "Failed to find the downloaded repository"; exit 1; }
+git fetch && git checkout remotes/origin/tutorial-local-da
+echo "Building and configuring rollup chain..."
+bash init.sh
diff --git a/public/install-go.sh b/public/install-go.sh
new file mode 100644
index 000000000..b6c8102ba
--- /dev/null
+++ b/public/install-go.sh
@@ -0,0 +1,120 @@
+#!/bin/bash -e
+
+# This script installs or updates to the latest version of Go.
+# Multi-platform (Linux and macOS)
+# Multi-architecture (amd64, arm64, arm) support
+
+deps=( curl jq )
+
+for dep in "${deps[@]}"; do
+ if ! command -v "$dep" &> /dev/null; then
+ echo "$dep is not installed. Downloading and executing the script..."
+ curl -sSL https://rollkit.dev/install-jq.sh | bash
+ exit $?
+ fi
+done
+
+version="${1:-$(curl -s 'https://go.dev/dl/?mode=json' | jq -r '.[0].version')}"
+current="$(/usr/local/go/bin/go version 2>/dev/null | awk '{print $3}')"
+if [[ "$current" == "$version" ]]; then
+ echo "Go is already up-to-date at version ${version}"
+ exit 0
+fi
+
+update_go() {
+ local arch="$1"
+ local os="$2"
+
+ local go_url="https://golang.org/dl/${version}.${os}-${arch}.tar.gz"
+
+ curl -so "/tmp/${version}.${os}-${arch}.tar.gz" -L "$go_url" && \
+ rm -rf /usr/local/go && tar -C /usr/local -xzf /tmp/${version}.${os}-${arch}.tar.gz
+
+ tar -C /usr/local -xzf "/tmp/${version}.${os}-${arch}.tar.gz" && \
+ echo "Go updated to version ${version}"
+
+ rm "/tmp/${version}.${os}-${arch}.tar.gz"
+}
+
+case "$(uname -s)" in
+ Linux)
+ case "$(uname -m)" in
+ armv6l|armv7l)
+ update_go "armv6l" "linux"
+ ;;
+ arm64)
+ update_go "arm64" "linux"
+ ;;
+ x86_64)
+ update_go "amd64" "linux"
+ ;;
+ *)
+ echo "Unsupported architecture: $(uname -m)" >&2
+ exit 1
+ ;;
+ esac
+ ;;
+ Darwin)
+ case "$(uname -m)" in
+ arm64)
+ update_go "arm64" "darwin"
+ ;;
+ x86_64)
+ update_go "amd64" "darwin"
+ ;;
+ *)
+ echo "Unsupported architecture: $(uname -m)" >&2
+ exit 1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Unsupported operating system: $(uname -s)" >&2
+ exit 1
+ ;;
+esac
+
+# Define the Go binary path
+GO_BIN_PATH="/usr/local/go/bin"
+
+# Function to add path to the specific shell config file
+add_path_to_config() {
+ local config_file="$1"
+
+ # Check if the Go bin path is already in the config file to prevent duplicates
+ if ! grep -q "export PATH=.*$GO_BIN_PATH" "$config_file" ; then
+ echo "export PATH=\$PATH:$GO_BIN_PATH" >> "$config_file"
+ echo "Added $GO_BIN_PATH to $config_file"
+ else
+ echo "$GO_BIN_PATH is already in $config_file"
+ fi
+}
+
+# Determine shell and appropriate config file
+if [[ -n "$ZSH_VERSION" ]]; then
+ # Assuming the user is using Zsh
+ CONFIG_FILE="$HOME/.zshenv"
+elif [[ -n "$BASH_VERSION" ]]; then
+ # Check if .bash_profile exists, otherwise use .profile
+ if [[ -f "$HOME/.bash_profile" ]]; then
+ CONFIG_FILE="$HOME/.bash_profile"
+ else
+ CONFIG_FILE="$HOME/.profile"
+ fi
+else
+ echo "Unsupported shell. Only Bash and Zsh are supported."
+ exit 1
+fi
+
+# Check if the Go bin path is already in the PATH
+if [[ ":$PATH:" != *":$GO_BIN_PATH:"* ]]; then
+ echo "Adding $GO_BIN_PATH to PATH."
+ add_path_to_config "$CONFIG_FILE"
+ # Source the config file to update the current session
+ source "$CONFIG_FILE"
+ echo "$GO_BIN_PATH added to PATH successfully."
+else
+ echo "$GO_BIN_PATH is already in PATH."
+fi
+
+/usr/local/go/bin/go version
diff --git a/public/install-jq.sh b/public/install-jq.sh
new file mode 100644
index 000000000..3f1b84f5e
--- /dev/null
+++ b/public/install-jq.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+if [[ "$OSTYPE" == "darwin"* ]]; then
+ echo "Detected macOS. Installing jq..."
+ if ! command -v brew &> /dev/null; then
+ echo "Homebrew is not installed. Installing Homebrew..."
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+ fi
+ brew install jq
+ echo "jq has been installed successfully."
+
+elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
+ echo "Detected Linux. Installing jq..."
+ if command -v apt &> /dev/null; then
+ sudo apt update
+ sudo apt install -y jq
+ elif command -v yum &> /dev/null; then
+ sudo yum install -y epel-release
+ sudo yum install -y jq
+ else
+ echo "Unsupported package manager. Please install jq manually."
+ exit 1
+ fi
+ echo "jq has been installed successfully."
+
+else
+ echo "Unsupported operating system."
+ exit 1
+fi
diff --git a/public/install-mock-da.sh b/public/install-mock-da.sh
new file mode 100644
index 000000000..1a0b6cdf6
--- /dev/null
+++ b/public/install-mock-da.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+echo "Downloading Mock-DA source code..."
+git clone https://github.com/rollkit/mock-da.git
+cd mock-da || { echo "Failed to find the downloaded repository"; exit 1; }
+git checkout $1
+echo "Building and installing Mock DA..."
+make build
+echo "Starting Mock DA..."
+./build/mock-da
diff --git a/public/install.sh b/public/install.sh
new file mode 100755
index 000000000..53c9b7160
--- /dev/null
+++ b/public/install.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+echo "Downloading Rollkit source code..."
+git clone https://github.com/rollkit/rollkit.git
+
+if ! which go > /dev/null; then
+ echo "Go is not installed. Attempting to install Go..."
+ if ! which go > /dev/null; then
+ curl -sL https://rollkit.dev/install-go.sh | sh -s 1.22.2
+ if ! which go > /dev/null; then
+ echo "Failed to install Go. Please install it manually and rerun this script."
+ exit 1
+ fi
+ fi
+fi
+
+cd rollkit || { echo "Failed to find the downloaded repository."; exit 1; }
+git checkout $1
+echo "Building and installing Rollkit..."
+make install
+cd ..
+echo "Installation completed successfully."
+
diff --git a/public/lets-roll.jpg b/public/lets-roll.jpg
deleted file mode 100644
index 72682e907..000000000
Binary files a/public/lets-roll.jpg and /dev/null differ
diff --git a/public/recipes/light-node.png b/public/recipes/light-node.png
deleted file mode 100644
index b5cf41dd9..000000000
Binary files a/public/recipes/light-node.png and /dev/null differ
diff --git a/public/recipes/query.gif b/public/recipes/query.gif
deleted file mode 100644
index 5627a8338..000000000
Binary files a/public/recipes/query.gif and /dev/null differ
diff --git a/public/recipes/query.png b/public/recipes/query.png
deleted file mode 100644
index 692a403fd..000000000
Binary files a/public/recipes/query.png and /dev/null differ
diff --git a/public/recipes/recipe-start.gif b/public/recipes/recipe-start.gif
deleted file mode 100644
index 0a56b7eea..000000000
Binary files a/public/recipes/recipe-start.gif and /dev/null differ
diff --git a/public/recipes/recipes.gif b/public/recipes/recipes.gif
deleted file mode 100644
index c1e0b4abb..000000000
Binary files a/public/recipes/recipes.gif and /dev/null differ
diff --git a/public/recipes/send-tx.png b/public/recipes/send-tx.png
deleted file mode 100644
index 171d284c3..000000000
Binary files a/public/recipes/send-tx.png and /dev/null differ
diff --git a/scripts/wordle/init.sh b/public/wordle/init.sh
similarity index 100%
rename from scripts/wordle/init.sh
rename to public/wordle/init.sh
diff --git a/scripts/recipes/init.sh b/scripts/recipes/init.sh
deleted file mode 100644
index 1a29ca9f0..000000000
--- a/scripts/recipes/init.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-
-# set variables for the chain
-VALIDATOR_NAME=validator1
-CHAIN_ID=recipes
-KEY_NAME=recipes-key
-CHAINFLAG="--chain-id ${CHAIN_ID}"
-TOKEN_AMOUNT="10000000000000000000000000stake"
-STAKING_AMOUNT="1000000000stake"
-
-# query the DA Layer start height, in this case we are querying
-# an RPC endpoint provided by Celestia Labs. The RPC endpoint is
-# to allow users to interact with Celestia's core network by querying
-# the node's state and broadcasting transactions on the Celestia
-# network. This is for Arabica, if using another network, change the RPC.
-DA_BLOCK_HEIGHT=$(curl https://rpc.celestia-arabica-11.com/block | jq -r '.result.block.header.height')
-echo -e "\n Your DA_BLOCK_HEIGHT is $DA_BLOCK_HEIGHT \n"
-
-AUTH_TOKEN=$(celestia light auth write --p2p.network arabica)
-echo -e "\n Your DA AUTH_TOKEN is $AUTH_TOKEN \n"
-
-# build the recipes chain with Rollkit
-ignite chain build
-
-# reset any existing genesis/chain data
-recipesd tendermint unsafe-reset-all
-
-# initialize the validator with the chain ID you set
-recipesd init $VALIDATOR_NAME --chain-id $CHAIN_ID
-
-# add key to keyring-backend test
-recipesd keys add $KEY_NAME --keyring-backend test
-
-# add a genesis account
-recipesd genesis add-genesis-account $KEY_NAME $TOKEN_AMOUNT --keyring-backend test
-
-# set the staking amounts in the genesis transaction
-recipesd genesis gentx $KEY_NAME $STAKING_AMOUNT --chain-id $CHAIN_ID --keyring-backend test
-
-# collect genesis transactions
-recipesd genesis collect-gentxs
-
-# copy centralized sequencer address into genesis.json
-# Note: validator and sequencer are used interchangeably here
-ADDRESS=$(jq -r '.address' ~/.recipes/config/priv_validator_key.json)
-PUB_KEY=$(jq -r '.pub_key' ~/.recipes/config/priv_validator_key.json)
-jq --argjson pubKey "$PUB_KEY" '.consensus["validators"]=[{"address": "'$ADDRESS'", "pub_key": $pubKey, "power": "1000", "name": "Rollkit Sequencer"}]' ~/.recipes/config/genesis.json > temp.json && mv temp.json ~/.recipes/config/genesis.json
-
-# create a restart-testnet.sh file to restart the chain later
-[ -f restart-recipes.sh ] && rm restart-recipes.sh
-echo "DA_BLOCK_HEIGHT=$DA_BLOCK_HEIGHT" >> restart-recipes.sh
-echo "AUTH_TOKEN=$AUTH_TOKEN" >> restart-recipes.sh
-
-echo "recipesd start --rollkit.aggregator --rollkit.da_auth_token=\$AUTH_TOKEN --rollkit.da_namespace 00000000000000000000000000000000000000000008e5f679bf7116cb --rollkit.da_start_height \$DA_BLOCK_HEIGHT --rpc.laddr tcp://127.0.0.1:36657 --grpc.address 127.0.0.1:9290 --p2p.laddr \"0.0.0.0:36656\" --minimum-gas-prices="0.025stake"" >> restart-recipes.sh
-
-# start your recipes rollup
-recipesd start --rollkit.aggregator --rollkit.da_auth_token=$AUTH_TOKEN --rollkit.da_namespace 00000000000000000000000000000000000000000008e5f679bf7116cb --rollkit.da_start_height $DA_BLOCK_HEIGHT --rpc.laddr tcp://127.0.0.1:36657 --grpc.address 127.0.0.1:9290 --p2p.laddr "0.0.0.0:36656" --minimum-gas-prices="0.025stake"
\ No newline at end of file
diff --git a/testnets/cosmwasm-testnet.md b/testnets/cosmwasm-testnet.md
index 5fbb1437a..cbb568dcc 100644
--- a/testnets/cosmwasm-testnet.md
+++ b/testnets/cosmwasm-testnet.md
@@ -6,7 +6,7 @@ description: This page provides details about Rollkit testnets.
Our cosmwasm testnet is deployed by following the [cosmwasm tutorial](/tutorials/cosmwasm.md). The [rollkit/wasmd](https://github.com/rollkit/wasmd/tree/v0.50.0) contains the code for the same.
-## Details of ROSM testnet
+## Details of ROSM testnet
- Chain ID: `rosm`
- Address Prefix: `wasm`
diff --git a/tutorials/cosmwasm.md b/tutorials/cosmwasm.md
index 45bff1676..d4ab3d165 100644
--- a/tutorials/cosmwasm.md
+++ b/tutorials/cosmwasm.md
@@ -7,14 +7,15 @@ exploring how to integrate CosmWasm with Celestia's
[data availability layer](https://docs.celestia.org/concepts/how-celestia-works/data-availability-layer)
using Rollkit.
-::: tip
-This tutorial will explore developing with Rollkit,
-which is still in Alpha stage. If you run into bugs, please write a Github
-[Issue ticket](https://github.com/rollkit/docs/issues/new)
-or let us know in our [Telegram](https://t.me/rollkit).
+
+
-Learn how to [restart your rollup](/guides/restart-rollup.md).
+:::tip
+
:::
+
::: warning
The script for this tutorial is built for Celestia's
@@ -171,15 +172,14 @@ that communicates between `wasmd` and Rollkit.
### 🗞️ Initializing CosmWasm rollup with a bash script {#initialize-rollup}
-We have a handy `init.sh` found in this repo
-[here](https://github.com/rollkit/docs/blob/main/scripts/cosmwasm/init.sh).
+We have a handy `init.sh` [found in this repo](https://rollkit.dev/cosmwasm/init.sh).
We can copy it over to our directory with the following commands:
```bash
# From inside the `wasmd` directory
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/cosmwasm/init.sh
+wget https://rollkit.dev/cosmwasm/init.sh
```
@@ -207,8 +207,7 @@ View your rollup by
You can skip this section, but it is important to know
how Rollkit is initializing the cosmwasm rollup.
-View the script
-[here](https://github.com/rollkit/docs/blob/main/scripts/cosmwasm/init.sh).
+[View the script](https://rollkit.dev/cosmwasm/init.sh).
## 📒 Contract deployment on CosmWasm with Rollkit {#contract-deployment-on-cosmwasm}
diff --git a/tutorials/gm-world-arabica-testnet.md b/tutorials/gm-world-arabica-testnet.md
index 56651f02c..f3072a723 100644
--- a/tutorials/gm-world-arabica-testnet.md
+++ b/tutorials/gm-world-arabica-testnet.md
@@ -9,6 +9,16 @@ the tutorial and are familiar with running a local rollup devnet.
The script for this tutorial is built for Celestia's
[Arabica devnet](https://docs.celestia.org/nodes/arabica-devnet).
+
+
+
+:::tip
+
+:::
+
+
### 🪶 Run a Celestia light node {#run-celestia-node}
Fully sync and fund a light node
@@ -21,14 +31,14 @@ Keep the node running while doing the next steps.
### 🟢 Start your sovereign rollup {#start-your-sovereign-rollup}
We have
-[a handy `init-arabica-testnet.sh` found in this repo](https://github.com/rollkit/docs/tree/main/scripts/gm).
+[a handy `init-arabica-testnet.sh` found in this repo](https://rollkit.dev/gm/init-arabica-testnet.sh).
We can copy it over to our directory with the following commands:
```bash
# From inside the `gm` directory
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/gm/init-arabica-testnet.sh
+wget https://rollkit.dev/gm/init-arabica-testnet.sh
```
diff --git a/tutorials/gm-world-frontend.md b/tutorials/gm-world-frontend.md
index c7baf6030..c263888bb 100644
--- a/tutorials/gm-world-frontend.md
+++ b/tutorials/gm-world-frontend.md
@@ -14,6 +14,16 @@ In the end, you'll have something that looks like this
[demo](https://rollkit-frontend.vercel.app)
([repo](https://github.com/jcstein/rollkit-frontend)).
+
+
+
+:::tip
+
+:::
+
+
## Getting started
In order to complete this tutorial you will need to have completed
@@ -31,6 +41,7 @@ yarn global add create-cosmos-app
::: tip
✋ If you don't have yarn, run this command to install it using cURL on most Linux distros and macOS:
+
```bash
curl -o- -L https://yarnpkg.com/install.sh | bash
```
diff --git a/tutorials/gm-world-mainnet.md b/tutorials/gm-world-mainnet.md
index d1189257e..b77d356e9 100644
--- a/tutorials/gm-world-mainnet.md
+++ b/tutorials/gm-world-mainnet.md
@@ -5,6 +5,16 @@ is expected that you've completed [part 1](./gm-world.md) or [part
2](./gm-world-mocha-testnet.md) of the tutorial and are familiar with running a
local rollup devnet or posting to a Celestia testnet.
+
+
+
+:::tip
+
+:::
+
+
## Deploying to Celestia Mainnet Beta
### 🪶 Run a Celestia light node {#run-celestia-node}
@@ -35,7 +45,7 @@ using `Control + C` in the terminal.
```bash
# From inside the `gm` directory
- wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/gm/init-mainnet.sh
+ wget https://rollkit.dev/gm/init-mainnet.sh
```
@@ -54,7 +64,6 @@ using `Control + C` in the terminal.
[View the example rollup's namespace on Celenium](https://celenium.io/namespace/000000000000000000000000000000000000000008e5f679bf7116cb).
-
:::tip
`init-mainnet.sh` script uses a default namespace `00000000000000000000000000000000000000000008e5f679bf7116cb`. You can set your own by using a command
similar to this (or, you could get creative 😎):
@@ -62,6 +71,7 @@ similar to this (or, you could get creative 😎):
```bash
openssl rand -hex 10
```
+
Replace the last 10 characters in `00000000000000000000000000000000000000000008e5f679bf7116cb` with the newly generated 10 characters.
[Learn more about namespaces](https://celestiaorg.github.io/celestia-app/specs/namespace.html)
diff --git a/tutorials/gm-world-mocha-testnet.md b/tutorials/gm-world-mocha-testnet.md
index d99337ecf..f20f49671 100644
--- a/tutorials/gm-world-mocha-testnet.md
+++ b/tutorials/gm-world-mocha-testnet.md
@@ -9,6 +9,16 @@ the tutorial and are familiar with running a local rollup devnet.
The script for this tutorial is built for Celestia's
[Mocha testnet](https://docs.celestia.org/nodes/mocha-devnet).
+
+
+
+:::tip
+
+:::
+
+
### 🪶 Run a Celestia light node {#run-celestia-node}
Fully sync and fund a light node
@@ -21,14 +31,14 @@ After the node is synced, stop the light node.
### 🟢 Start your sovereign rollup {#start-your-sovereign-rollup}
We have
-[a handy `init-mocha-testnet.sh` found in this repo](https://github.com/rollkit/docs/tree/main/scripts/gm).
+[a handy `init-mocha-testnet.sh` found in this repo](https://rollkit.dev/gm/init-mocha-testnet.sh).
We can copy it over to our directory with the following commands:
```bash
# From inside the `gm` directory
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/gm/init-mocha-testnet.sh
+wget https://rollkit.dev/gm/init-mocha-testnet.sh
```
@@ -45,6 +55,7 @@ similar to this (or, you could get creative 😎):
```bash
openssl rand -hex 10
```
+
Replace the last 10 characters in `00000000000000000000000000000000000000000008e5f679bf7116cb` with the newly generated 10 characters.
[Learn more about namespaces](https://celestiaorg.github.io/celestia-app/specs/namespace.html)
diff --git a/tutorials/gm-world.md b/tutorials/gm-world.md
index 3439da101..1d790188a 100644
--- a/tutorials/gm-world.md
+++ b/tutorials/gm-world.md
@@ -1,419 +1,117 @@
---
-description: Build a sovereign rollup with Ignite CLI, Celestia and Rollkit locally and on a testnet
+description: Build a sovereign rollup with Ignite CLI, Celestia, and Rollkit locally and on a testnet
---
-# GM world rollup: Part 1
+# GM World Rollup
-## Building a rollup locally
+## 🌞Introduction {#introduction}
-### 🌅 Introduction {#introduction}
+This tutorial will guide you through building a sovereign `gm-world` rollup (`gm` stands for "good morning") using Rollkit. Unlike the [Quick Start Guide](https://rollkit.dev/tutorials/quick-start), this tutorial provides a more practical approach to understanding sovereign rollup development.
-This tutorial will guide you through building a sovereign `gm-world` rollup using Rollkit,
-using Celestia’s data availability and consensus layer to submit Rollkit blocks.
+We will cover:
-We'll cover setting up Ignite CLI,
-building a Cosmos-SDK application-specific rollup blockchain,
-and posting data to Celestia.
-First, we will test on a local DA network, then to a live
-testnet, and lastly to mainnet.
+- Building and configuring a Cosmos-SDK application-specific rollup blockchain.
+- Posting rollup data to a Data Availability (DA) network.
+- Executing transactions (the end goal).
-1. Part 1 (This page): Run your rollup and post DA to a local devnet, and make sure everything works as expected.
-2. [Part 2](./gm-world-mocha-testnet.md): Deploy the rollup, posting to a DA testnet (Mocha). Confirm again that everything is functioning properly.
-3. [Part 3](./gm-world-mainnet.md): Deploy your rollup to the DA layer's mainnet.
+No prior understanding of the build process is required, just that it utilizes the [Cosmos SDK](https://github.com/cosmos/cosmos-sdk) for blockchain applications.
-The [Cosmos SDK](https://github.com/cosmos/cosmos-sdk) is a framework for
-building blockchain applications. The Cosmos Ecosystem uses
-[Inter-Blockchain Communication (IBC)](https://github.com/cosmos/ibc-go)
-to allow blockchains to communicate with one another.
-
-::: tip
-This tutorial will explore developing with Rollkit,
-which is still in Alpha stage. If you run into bugs, please write a Github
-[Issue ticket](https://github.com/rollkit/docs/issues/new)
-or let us know in our [Telegram](https://t.me/rollkit).
-
-Learn how to [restart your rollup](/guides/restart-rollup.md).
-:::
-
-## 🤔 What is GM? {#what-is-gm}
-
-GM means good morning. It's GM o'clock somewhere, so there's never a bad time
-to say GM, Gm, or gm. You can think of "GM" as the new version of
-"hello world".
-
-## Dependencies {#dependencies}
-
-* Operating systems: GNU/Linux or macOS
-* [Golang 1.21+](https://go.dev)
-* [Ignite CLI v28.3.0](https://github.com/ignite/cli)
-* [Homebrew](https://brew.sh)
-* [wget](https://www.gnu.org/software/wget)
-* [A Celestia Light Node](https://docs.celestia.org/nodes/light-node)
-
-Next, head either to [Linux setup](#linux-setup) or [MacOS setup](#macos-setup).
-
-## Linux setup
-
-### 🏃 Install Golang on Linux {#install-golang-linux}
-
-[Celestia-App](https://github.com/celestiaorg/celestia-app),
-[Celestia-Node](https://github.com/celestiaorg/celestia-node),
-and [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk) are
-written in the Golang programming language. You will need
-Golang to build and run them.
-
-You can [install Golang here](https://docs.celestia.org/nodes/environment#install-golang).
-
-### 🔥 Install Ignite CLI on Linux {#install-ignite-cli-linux}
-
-First, you will need to create `/usr/local/bin` if you have not already:
-
-```bash
-sudo mkdir -p -m 775 /usr/local/bin
-```
-
-Run this command in your terminal to install Ignite CLI:
-
-```bash
-curl https://get.ignite.com/cli@v28.3.0! | bash
-```
-
-::: tip
-✋ On some machines, you may run into permissions errors like the one below.
-You can resolve this error by following the guidance
-[here](https://docs.ignite.com/v0.25.2/guide/install#write-permission) or below.
-
-```bash
-# Error
-jcs @ ~ % curl https://get.ignite.com/cli@v28.3.0! | bash
-
-
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
-100 3967 0 3967 0 0 16847 0 --:--:-- --:--:-- --:--:-- 17475
-Installing ignite v28.3.0..... // [!code focus]
-######################################################################## 100.0% // [!code focus]
-mv: rename ./ignite to /usr/local/bin/ignite: Permission denied // [!code focus]
-============ // [!code focus]
-Error: mv failed // [!code focus]
-```
-
-The following command will resolve the permissions error:
-
-```bash
-sudo curl https://get.ignite.com/cli@v28.3.0! | bash
-```
+
+
+:::tip
+
:::
+
-A successful installation will return something similar to the response below:
+## 🛠️ Dependencies {#dependencies}
-```bash
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
-100 4073 0 4073 0 0 4363 0 --:--:-- --:--:-- --:--:-- 4379
-Installing ignite v28.3.0..... // [!code focus]
-######################################################################## 100.0% // [!code focus]
-Password:
-Installed at /usr/local/bin/ignite // [!code focus]
-```
+Rollkit uses the [Go programming language](https://go.dev/dl/). Here's how to install it:
-Verify you’ve installed Ignite CLI by running:
+- **Linux or macOS**: Run the provided script:
-```bash
-ignite version
-```
-
-The response that you receive should look something like this:
-
-```bash
-jcs @ ~ % ignite version // [!code focus]
-Ignite CLI version: v28.3.0 // [!code focus]
-Ignite CLI build date: 2024-03-20T15:31:07Z
-Ignite CLI source hash: 159abdca88605ed82cb4aabd52618db91069b7af
-Ignite CLI config version: v1
-Cosmos SDK version: v0.50.5
-Your OS: darwin
-Your arch: arm64
-Your Node.js version: v20.4.0
-Your go version: go version go1.21.5 darwin/arm64
-Your uname -a: Darwin Joshs-MacBook-Air.local 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun 8 22:21:34 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T8112 arm64
-Your cwd: /Users/joshstein
-Is on Gitpod: false
-```
-
-Your development environment is setup! Now, head to [part 1](#part-1).
-
-## macOS setup
-
-### 🏃 Install Golang on macOS {#install-golang-mac}
-
-[Celestia-App](https://github.com/celestiaorg/celestia-app),
-[Celestia-Node](https://github.com/celestiaorg/celestia-node),
-and [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk) are
-written in the Golang programming language. You will need
-Golang to build and run them.
-
-You can [install Golang here](https://docs.celestia.org/nodes/environment#install-golang).
-
-#### 🔥 Install Ignite CLI on macOS {#install-ignite-mac}
-
-First, you will need to create `/usr/local/bin` if you have not already:
-
-```bash
-sudo mkdir -p -m 775 /usr/local/bin
-```
-
-Run this command in your terminal to install Ignite CLI:
-
-```bash
-curl https://get.ignite.com/cli@v28.3.0! | bash
-```
-
-::: tip
-✋ On some machines, you may run into permissions errors like the one below.
-You can resolve this error by following the guidance
-[here](https://docs.ignite.com/v0.25.2/guide/install#write-permission) or below.
-
-```bash
-# Error
-jcs @ ~ % curl https://get.ignite.com/cli@v28.3.0! | bash
-
-
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
-100 3967 0 3967 0 0 16847 0 --:--:-- --:--:-- --:--:-- 17475
-Installing ignite v28.3.0..... // [!code focus]
-######################################################################## 100.0% // [!code focus]
-mv: rename ./ignite to /usr/local/bin/ignite: Permission denied // [!code focus]
-============ // [!code focus]
-Error: mv failed // [!code focus]
-```
-
-The following command will resolve the permissions error:
-
-```bash
-sudo curl https://get.ignite.com/cli@v28.3.0! | sudo bash
-```
-
-:::
-
-A successful installation will return something similar the response below:
-
-```bash
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
-100 3967 0 3967 0 0 15586 0 --:--:-- --:--:-- --:--:-- 15931
-Installing ignite v28.3.0..... // [!code focus]
-######################################################################## 100.0% // [!code focus]
-Installed at /usr/local/bin/ignite // [!code focus]
-```
-
-Verify you’ve installed Ignite CLI by running:
-
-```bash
-ignite version
-```
-
-The response that you receive should look something like this:
-
-```bash
-jcs @ ~ % ignite version // [!code focus]
-Ignite CLI version: v28.3.0
-Ignite CLI build date: 2024-03-20T15:31:07Z
-Ignite CLI source hash: 159abdca88605ed82cb4aabd52618db91069b7af
-Ignite CLI config version: v1
-Cosmos SDK version: v0.50.5
-Your OS: darwin
-Your arch: arm64
-Your Node.js version: v17.9.0
-Your go version: go version go1.21.6 darwin/arm64
-Your uname -a: Darwin Joshs-MacBook-Air.local 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun 8 22:21:34 PDT 2023; root:xnu-8796.121.3~7/RELEASE_ARM64_T8112 arm64
-Your cwd: /Users/joshstein
-Is on Gitpod: false
-```
+ ```bash
+ curl -sSL https://rollkit.dev/install-go.sh | sh -s 1.22.2
+ ```
-### 🍺 Install Homebrew on macOS {#install-homebrew-mac}
+- **Windows**: Download and execute the [installer](https://go.dev/dl/go1.22.2.windows-amd64.msi).
-Homebrew will allow us to install dependencies for our Mac:
+## 🌐 Running a Local DA Network {#running-local-da}
-```bash
-/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-```
+Learn to run a local DA network, designed for educational purposes, on your machine.
-Be sure to run the commands similar to the output below from the successful installation:
+To set up a mock DA network node:
```bash
-==> Next steps:
-- Run these three commands in your terminal to add Homebrew to your PATH:
- echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/joshstein/.zprofile
- echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/joshstein/.zprofile
- eval "$(/opt/homebrew/bin/brew shellenv)"
+curl -sSL https://rollkit.dev/install-mock-da.sh | sh v0.1.0
```
-### 🏃 Install wget on macOS {#install-wget-mac}
+This script builds and runs the node, now listening on port `7980`.
-wget is an Internet file retriever:
-
-```bash
-brew install wget
-```
+## 🏗️ Building Your Sovereign Rollup {#building-your-sovereign-rollup}
-Your development environment is setup! Now, head to [part 1](#part-1).
+With the local DA network running, let’s prepare your rollup blockchain.
-## Part 1
+To make it simple we will download a repository with a `gm-world` rollup that has an `init.sh` script that does all the setup for you.
-This part of the tutorial will teach developers how to easily run a local data availability (DA) devnet on their own machine (or in the cloud).
-**Running a local devnet for DA to test your rollup is the recommended first step before deploying to a testnet.**
-This eliminates the need for testnet tokens and deploying to a testnet until you are ready.
+Download and build a `gm-world` rollup with an interactive script in a new terminal:
::: warning
-Part 1 of the tutorial has only been tested on an AMD machine running Ubuntu 22.10 x64.
+In order to run it you need to have the jq command line tool installed. You can install it by running `sudo apt-get install jq` on Ubuntu or `brew install jq` on macOS.
:::
-
-Whether you're a developer simply testing things on your laptop or using a virtual machine in the cloud,
-this process can be done on any machine of your choosing. We tested out the Devnet section (part 1) on a machine with the following specs:
-
-* Memory: 1 GB RAM
-* CPU: Single Core AMD
-* Disk: 25 GB SSD Storage
-* OS: Ubuntu 22.10 x64
-
-### 💻 Prerequisites {#prerequisites}
-
-* [Docker](https://docs.docker.com/get-docker) installed on your machine
-
-### 🏠 Running local devnet with a Rollkit rollup {#running-local-devnet-rollup}
-
-First, run the [`local-celestia-devnet`](https://github.com/rollkit/local-celestia-devnet) by running the following command:
-
-```bash
-docker run -t -i \
- -p 26657:26657 -p 26658:26658 -p 26659:26659 -p 9090:9090 \
- ghcr.io/rollkit/local-celestia-devnet:v0.13.1
-```
-
-The docker image runs a celestia bridge node.
-
-### 🏗️ Building your sovereign rollup {#building-your-sovereign-rollup}
-
-Now that you have a Celestia devnet running, we are ready to use Golang
-to build and run our Cosmos-SDK blockchain.
-
-The Ignite CLI comes with scaffolding commands to make development of
-blockchains quicker by creating everything that is needed to start a new
-Cosmos SDK blockchain.
-
-Check your version:
-
-```bash
-ignite version
-```
-
-Open a new tab or window in your terminal and run this command to
-scaffold your rollup. Scaffold the chain:
-
-```bash
-cd $HOME
-ignite scaffold chain gm --address-prefix gm
-```
-
::: tip
-The `--address-prefix gm` flag will change the address prefix from `cosmos` to `gm`. Read more on the [Cosmos docs](https://docs.cosmos.network/v0.46/basics/accounts.html).
-:::
-
-The response will look similar to below:
-
-::: warning
-Do not run `ignite chain serve` as we will build the chain later in the tutorial.
+If you get errors of `gmd` not found, you may need to add the `go/bin` directory to your PATH. You can do this by running `export PATH=$PATH:$HOME/go/bin` and then running the `init.sh` script manually again.
:::
```bash
-jcs @ ~ % ignite scaffold chain gm --address-prefix gm
-
-⭐️ Successfully created a new blockchain 'gm'. // [!code focus]
-👉 Get started with the following commands: // [!code focus]
-
- % cd gm // [!code focus]
- % ignite chain serve
-
-Documentation: https://docs.ignite.com
+curl -sSL https://rollkit.dev/install-gm-rollup.sh | sh
```
-This command has created a Cosmos SDK blockchain in the `gm` directory. The
-`gm` directory contains a fully functional blockchain. The following standard
-Cosmos SDK [modules](https://docs.cosmos.network/main/modules) have been
-imported:
-
-* `staking` - for delegated Proof-of-Stake (PoS) consensus mechanism
-* `bank` - for fungible token transfers between accounts
-* `gov` - for on-chain governance
-* `mint` - for minting new units of staking token
-* `nft` - for creating, transferring, and updating NFTs
-* and [more](https://docs.cosmos.network/main/architecture/adr-043-nft-module.html)
+## 🚀 Starting Your Rollup {#start-your-rollup}
-Change to the `gm` directory:
+Start the rollup, posting to the local DA network:
```bash
-cd gm
+gmd start --rollkit.aggregator --minimum-gas-prices="0.025stake" --rollkit.da_address http://localhost:7980
```
-You can learn more about the `gm` directory’s file structure [here](https://docs.ignite.com/v0.25.2/guide/hello#blockchain-directory-structure).
-Most of our work in this tutorial will happen in the `x` directory.
-
-### 🗞️ Install Rollkit {#install-rollkit}
-
-To swap out CometBFT for Rollkit, run the following command
-from inside the `gm` directory:
+Notice how we specified the DA network address along with a few other flags. Now you should see the logs of the running node:
```bash
-go mod edit -replace github.com/cosmos/cosmos-sdk=github.com/rollkit/cosmos-sdk@v0.50.5-rollkit-v0.13.1-no-fraud-proofs
-go mod tidy
-go mod download
+12:21PM INF starting node with ABCI CometBFT in-process module=server
+12:21PM INF starting node with Rollkit in-process module=server
+12:21PM INF service start impl=multiAppConn module=proxy msg="Starting multiAppConn service"
+12:21PM INF service start connection=query impl=localClient module=abci-client msg="Starting localClient service"
+12:21PM INF service start connection=snapshot impl=localClient module=abci-client msg="Starting localClient service"
+12:21PM INF service start connection=mempool impl=localClient module=abci-client msg="Starting localClient service"
+12:21PM INF service start connection=consensus impl=localClient module=abci-client msg="Starting localClient service"
+12:21PM INF service start impl=EventBus module=events msg="Starting EventBus service"
+12:21PM INF service start impl=PubSub module=pubsub msg="Starting PubSub service"
+12:21PM INF Using default mempool ttl MempoolTTL=25 module=BlockManager
+12:21PM INF service start impl=IndexerService module=txindex msg="Starting IndexerService service"
+12:21PM INF service start impl=RPC module=server msg="Starting RPC service"
+12:21PM INF service start impl=Node module=server msg="Starting Node service"
+12:21PM INF starting P2P client module=server
+12:21PM INF serving HTTP listen address=127.0.0.1:26657 module=server
+12:21PM INF listening on address=/ip4/127.0.0.1/tcp/26656/p2p/12D3KooWSicdPmMTLf9fJbSSHZc9UVP1CbNqKPpbYVbgxHvbhAUY module=p2p
+12:21PM INF listening on address=/ip4/163.172.162.109/tcp/26656/p2p/12D3KooWSicdPmMTLf9fJbSSHZc9UVP1CbNqKPpbYVbgxHvbhAUY module=p2p
+12:21PM INF no seed nodes - only listening for connections module=p2p
+12:21PM INF working in aggregator mode block time=1000 module=server
+12:21PM INF Creating and publishing block height=22 module=BlockManager
+12:21PM INF starting gRPC server... address=127.0.0.1:9290 module=grpc-server
+12:21PM INF finalized block block_app_hash=235D3710D61F347DBBBDD6FD63AA7687842D1EF9CB475C712856D7DA32F82F09 height=22 module=BlockManager num_txs_res=0 num_val_updates=0
+12:21PM INF executed block app_hash=235D3710D61F347DBBBDD6FD63AA7687842D1EF9CB475C712856D7DA32F82F09 height=22 module=BlockManager
+12:21PM INF indexed block events height=22 module=txindex
+...
```
-### ▶️ Start your rollup {#start-your-rollup}
+Good work so far, we have a Rollup node, DA network node, now we can start submitting transactions.
-Download the `init-local.sh` script to start the chain:
+## 💸 Transactions {#transactions}
-```bash
-# From inside the `gm` directory
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/gm/init-local.sh
-```
-
-Run the `init-local.sh` script:
-
-::: warning
-In order to run init-local.sh you need to have the jq command line tool installed. You can install it by running `sudo apt-get install jq` on Ubuntu or `brew install jq` on MacOS.
-:::
-
-```bash
-bash init-local.sh
-```
-
-::: tip
-If you get errors of `gmd` not found, you may need to add the `go/bin` directory to your PATH. You can do this by running `export PATH=$PATH:$HOME/go/bin` and then running the `init-local.sh` script again.
-:::
-
-This will start your rollup, connected to the local Celestia devnet you have running.
-
-Now let's explore a bit.
-
-::: tip
-
-If you are restarting your rollup, you'll need to clear the old
-chain history and binary:
-
-```bash
-rm -rf $HOME/.gm
-rm $HOME/go/bin/gmd
-```
-
-:::
-
-#### 🔑 Keys {#keys}
-
-List your keys:
+First, list your keys:
```bash
gmd keys list --keyring-backend test
@@ -422,50 +120,33 @@ gmd keys list --keyring-backend test
You should see an output like the following
```bash
-- address: gm1sa3xvrkvwhktjppxzaayst7s7z4ar06rk37jq7 // [!code focus]
- name: gm-key-2 // [!code focus]
- pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AlXXb6Op8DdwCejeYkGWbF4G3pDLDO+rYiVWKPKuvYaz"}'
+- address: gm18k57hn42ujcccyn0n5v7r6ydpacycn2wkt7uh9
+ name: gm-key-2
+ pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Al92dlOeLpuAiOUSIaJapkIveiwlhlEdz/O5CrniMdwH"}'
type: local
-- address: gm13nf52x452c527nycahthqq4y9phcmvat9nejl2 // [!code focus]
- name: gm-key // [!code focus]
- pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AwigPerY+eeC2WAabA6iW1AipAQora5Dwmo1SnMnjavt"}'
+- address: gm1e4fqspwdsy0dzkmzsdhkadfcrd0udngw0f88pw
+ name: gm-key
+ pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AwdsLY+2US2VV+rbyfi60GB4/Ir/FeTIkLJ3CWVhUF6b"}'
+ type: local
+- address: gm1vvl79phavqruppr6f5zy4ypxy7znshrqam48qy
+ name: gm-relay
+ pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"AlnSEnBUv5GO86fMWe11qth1+R76g2e1lv8c1FWhLpqP"}'
type: local
```
-#### 💸 Transactions {#transactions}
-
-Now we can test sending a transaction from one of our keys to the other. We can do that with the following command:
-
-```bash
-gmd tx bank send [from_key_or_address] [to_address] [amount] [flags]
-```
-
-Set your keys as variables to make it easier to add the address:
+For convenience we export two of our keys like this:
```bash
-export KEY1=gm1sa3xvrkvwhktjppxzaayst7s7z4ar06rk37jq7
-export KEY2=gm13nf52x452c527nycahthqq4y9phcmvat9nejl2
+export KEY1=gm18k57hn42ujcccyn0n5v7r6ydpacycn2wkt7uh9
+export KEY2=gm1e4fqspwdsy0dzkmzsdhkadfcrd0udngw0f88pw
```
-
-So using our information from the [keys](#keys) command, we can construct the transaction command like so to send 42069stake from one address to another:
-
-```bash
-gmd tx bank send $KEY1 $KEY2 42069stake --keyring-backend test \
---node tcp://127.0.0.1:36657 --chain-id gm --fees 5000stake
-```
-
-::: tip
-We're using the `--node [ip:port]` flag to point to port 36657, which is
-the custom port we used in the `init-local.sh` script to avoid
-clashing with 26657 on local-celestia-devnet. We set it here:
+Now let's submit a transaction that sends coins from one account to another (don't worry about all the flags, for now, we just want to submit transaction from a high level perspective):
```bash
---rpc.laddr tcp://127.0.0.1:36657
+gmd tx bank send $KEY1 $KEY2 42069stake --keyring-backend test --chain-id gm --fees 5000stake
```
-:::
-
You'll be prompted to accept the transaction:
```bash
@@ -485,41 +166,31 @@ body:
amount:
- amount: "42069"
denom: stake
- from_address: gm1sa3xvrkvwhktjppxzaayst7s7z4ar06rk37jq7
- to_address: gm13nf52x452c527nycahthqq4y9phcmvat9nejl2
+ from_address: gm18k57hn42ujcccyn0n5v7r6ydpacycn2wkt7uh9
+ to_address: gm1e4fqspwdsy0dzkmzsdhkadfcrd0udngw0f88pw
non_critical_extension_options: []
timeout_height: "0"
signatures: []
confirm transaction before signing and broadcasting [y/N]: // [!code focus]
```
-Type `y` if you'd like to confirm and sign the transaction. Then, you'll see the confirmation:
+Confirm and sign the transaction as prompted. now you see the transaction hash at the output:
```bash
-code: 0
-codespace: ""
-data: ""
-events: []
-gas_used: "0"
-gas_wanted: "0"
-height: "0"
-info: ""
-logs: []
-raw_log: '[]'
-timestamp: ""
-tx: null
+//...
+
txhash: 677CAF6C80B85ACEF6F9EC7906FB3CB021322AAC78B015FA07D5112F2F824BFF
```
-#### ⚖️ Balances {#balances}
+## ⚖️ Checking Balances {#balances}
-Then, query your balance:
+Query balances after the transaction:
```bash
-gmd query bank balances $KEY2 --node tcp://127.0.0.1:36657
+gmd query bank balances $KEY2
```
-This is the key that received the balance, so it should have increased past the initial `STAKING_AMOUNT`:
+The receiver’s balance should show an increase.
```bash
balances: // [!code focus]
@@ -530,13 +201,13 @@ pagination:
total: "0"
```
-The other key, should have decreased in balance:
+For the sender’s balance:
```bash
-gmd query bank balances $KEY1 --node tcp://127.0.0.1:36657
+gmd query bank balances $KEY1
```
-Response:
+Output:
```bash
balances: // [!code focus]
@@ -547,8 +218,7 @@ pagination:
total: "0"
```
-## Next steps
+## 🎉 Next steps
Congratulations! You've built a local rollup that posts to a
-local Celestia devnet. In the next tutorial, you can learn
-how to post data to Celestia's Arabica devnet.
+local DA network. So far so good, keep diving deeper if you like it. Good luck!
diff --git a/tutorials/overview.md b/tutorials/overview.md
deleted file mode 100644
index fd37332ab..000000000
--- a/tutorials/overview.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-description: This page provides a comprehensive overview of tutorials available for Rollkit.
----
-
-# Tutorials
-
-Welcome to the Rollkit tutorials section! Here, you'll find a wide range of
-tutorials and guides designed to help you understand and effectively use
-Rollkit, the first sovereign rollup framework.
-
-Whether you're a beginner just starting out, an intermediate user looking
-to expand your knowledge, or an advanced user seeking to delve into more
-complex topics, we've got you covered. Our tutorials are categorized based
-on the level of expertise required, so you can easily find the resources
-that best suit your needs.
-
-In this section, you'll find:
-
-* Rollkit
- * [GM world rollup: Part 1, local devnet](/tutorials/gm-world.md)
- * [GM world frontend](/tutorials/gm-world-frontend.md)
- * [Wordle app](/tutorials/wordle.md)
-* DA
- * [GM world rollup: Part 2, mocha testnet](/tutorials/gm-world-mocha-testnet.md)
- * [GM world rollup: Part 3, mainnet](/tutorials/gm-world-mainnet.md)
-* Execution
- * [CosmWasm rollup](/tutorials/cosmwasm.md)
- * [Polaris EVM rollup](/tutorials/polaris-evm.md)
-
-## 💻 Support {#support}
-
-The tutorials will explore developing with Rollkit,
-which is still in Alpha stage. If you run into bugs, please write a Github
-[issue](https://github.com/rollkit/docs/issues/new)
-or let us know in our [Telegram](https://t.me/rollkit).
-Furthermore, while Rollkit allows you to build sovereign rollups
-on Celestia, it currently does not support fraud proofs yet and is
-therefore running in "pessimistic" mode, where nodes would need to
-re-execute the transactions to check the validity of the chain
-(i.e. a full node). Furthermore, Rollkit currently only supports
-a single sequencer.
diff --git a/tutorials/polaris-evm.md b/tutorials/polaris-evm.md
index 7e72d11ae..fbc2f3b09 100644
--- a/tutorials/polaris-evm.md
+++ b/tutorials/polaris-evm.md
@@ -1,7 +1,7 @@
# Polaris EVM and Rollkit
::: danger
-We regret to inform that Polaris V1 and Rollkit integration is not fully functional. Current issues are tracked in https://github.com/rollkit/rollkit/issues/1594. We are expecting Polaris V2 release soon and Rollkit support will be added along with update tutorial.
+We regret to inform that Polaris V1 and Rollkit integration is not fully functional. Current issues are tracked in https://github.com/rollkit/rollkit/issues/1594. We are expecting Polaris V2 release soon and Rollkit support will be added along with update tutorial.
:::
This tutorial provides step-by-step instructions for running the
@@ -14,9 +14,15 @@ layer. This integration uses a local-celestia-devnet. Rollkit
is used to deploy a Polaris EVM rollup without needing to set up a data
availability and consensus network.
-::: tip
-Learn how to [restart your rollup](/guides/restart-rollup.md).
+
+
+
+:::tip
+
:::
+
## Prerequisites
diff --git a/tutorials/quick-start.md b/tutorials/quick-start.md
new file mode 100644
index 000000000..04df3ce91
--- /dev/null
+++ b/tutorials/quick-start.md
@@ -0,0 +1,47 @@
+---
+description: Quickly start a rollup node using the Rollkit CLI.
+---
+
+# Quick start guide
+
+Welcome to Rollkit, a sovereign rollup framework! The easiest way to launch your sovereign rollup node is by using the Rollkit CLI.
+
+## 📦 Install Rollkit (CLI)
+
+To install Rollkit, run the following command in your terminal:
+
+```bash
+curl -sSL https://rollkit.dev/install.sh | sh -s v0.13.2
+```
+
+Verify the installation by checking the Rollkit version:
+
+```bash
+rollkit version
+```
+
+A successful installation will display the version number and its associated git commit hash.
+
+## 🚀 Run your sovereign rollup node
+
+To start a basic sovereign rollup node, execute:
+
+```bash
+rollkit start
+```
+
+Upon execution, the CLI will output log entries that provide insights into the node's initialization and operation:
+
+```bash
+I[2024-05-01|09:58:46.001] Found private validator module=main keyFile=/root/.rollkit/config/priv_validator_key.json stateFile=/root/.rollkit/data/priv_validator_state.json
+I[2024-05-01|09:58:46.002] Found node key module=main path=/root/.rollkit/config/node_key.json
+I[2024-05-01|09:58:46.002] Found genesis file module=main path=/root/.rollkit/config/genesis.json
+...
+I[2024-05-01|09:58:46.080] Started node module=main
+I[2024-05-01|09:58:46.081] Creating and publishing block module=BlockManager height=223
+I[2024-05-01|09:58:46.082] Finalized block module=BlockManager height=223 num_txs_res=0 num_val_updates=0 block_app_hash=
+```
+
+## 🎉 Conclusion
+
+That's it! Your sovereign rollup node is now up and running. It's incredibly simple to start a blockchain (which is essentially what a rollup is) these days using Rollkit. Explore further and discover how you can build useful applications on Rollkit. Good luck!
diff --git a/tutorials/recipe-book.md b/tutorials/recipe-book.md
deleted file mode 100644
index 02d6dc643..000000000
--- a/tutorials/recipe-book.md
+++ /dev/null
@@ -1,498 +0,0 @@
-# 🥗 Recipe Book rollup
-
-## 📖 Overview {#overview}
-
-In this tutorial, we are going to build a blockchain
-for your favorite recipes. The goal of this tutorial
-is to create a Rollkit rollup with a module that allows
-you to write and read data to and from your application-specific
-blockchain. The end user will be able to submit new
-recipes and read them from the blockchain.
-
-In the [`GM world` tutorial](/tutorials/gm-world), we defined a
-new API endpoint and modified a keeper query function
-to return static data. In this tutorial, we will be
-modifying the state with transactions (Cosmos SDK messages)
-that are routed to a module and its message handlers, which
-are sent to the `recipes` blockchain.
-
-::: tip
-This tutorial will explore developing with Rollkit,
-which is still in Alpha stage. If you run into bugs, please write a Github
-[Issue ticket](https://github.com/rollkit/docs/issues/new)
-or let us know in our [Telegram](https://t.me/rollkit).
-
-Learn how to [restart your rollup](/guides/restart-rollup.md).
-:::
-
-::: warning
-The script for this tutorial is built for Celestia's
-[Arabica devnet](https://docs.celestia.org/nodes/arabica-devnet).
-:::
-
-## 💻 Prerequisites {#prerequisites}
-
-- [GM world tutorial](/tutorials/gm-world)
-
-## 🏗 Scaffolding your rollup {#scaffolding-your-rollup}
-
-### 🔥 Use Ignite CLI to scaffold a `recipes` rollup {#ignite-scaffold-recipes-rollup}
-
-Run the following command to scaffold your `recipes` chain using Ignite CLI:
-
-```bash
-ignite scaffold chain recipes --address-prefix recipes
-```
-
-Your new `recipes` chain has been scaffolded and
-`--address-prefix recipes` allows the address prefix
-to be `recipes` instead of `cosmos`.
-
-Change into the `recipes` directory:
-
-```bash
-cd recipes
-```
-
-### 💎 Installing Rollkit {#installing-rollkit}
-
-To swap out CometBFT for Rollkit, run the following commands:
-
-```bash
-go mod edit -replace github.com/cosmos/cosmos-sdk=github.com/rollkit/cosmos-sdk@v0.50.5-rollkit-v0.13.1-no-fraud-proofs
-go mod tidy
-go mod download
-```
-
-## 💬 Message types {#message-types}
-
-### ✨ Create message types {#create-message-types}
-
-Create a message type and its handler with the `message` command:
-
-```bash
-ignite scaffold message createRecipe dish ingredients
-```
-
-Response:
-
-```bash
-modify proto/recipes/recipes/tx.proto
-modify x/recipes/client/cli/tx.go
-create x/recipes/client/cli/tx_create_recipe.go
-create x/recipes/keeper/msg_server_create_recipe.go
-modify x/recipes/module_simulation.go
-create x/recipes/simulation/create_recipe.go
-modify x/recipes/types/codec.go
-create x/recipes/types/message_create_recipe.go
-create x/recipes/types/message_create_recipe_test.go
-
-🎉 Created a message `createRecipe`.
-```
-
-Head to your `recipes/proto/recipes/recipes/tx.proto` file
-and you will see the `MsgCreateRecipe` has been created.
-Add `uint64 id = 1;` to the `MsgCreateRecipeResponse` function:
-
-```proto title="recipes/proto/recipes/recipes/tx.proto"
-message MsgCreateRecipeResponse {
- uint64 id = 1; // [!code focus]
-}
-```
-
-#### 🤿 Diving deeper into the message code {#diving-deeper-into-message-code}
-
-Looking further into the message, we can see that
-`MsgCreateRecipe` has 3 fields: creator, dish, and ingredients.
-
-```proto title="recipes/proto/recipes/recipes/tx.proto"
-message MsgCreateRecipe {
- string creator = 1;
- string dish = 2;
- string ingredients = 3;
-}
-```
-
-We can also see that the `CreateRecipe` RPC has already been added to the `Msg` service:
-
-```proto title="recipes/proto/recipes/recipes/tx.proto"
-service Msg {
- rpc CreateRecipe(MsgCreateRecipe) returns (MsgCreateRecipeResponse);
-}
-```
-
-### 📕 Define messages logic {#define-messages-logic}
-
-Navigate to `recipes/x/recipes/keeper/msg_server_create_recipe.go`.
-For our recipes chain, we want the dish and ingredients to be written
-to the blockchain’s state as a new recipe. Add the following code to
-the `CreateRecipe` function underneath the imports:
-
-
-```go title="recipes/x/recipes/keeper/msg_server_create_recipe.go"
-func (k msgServer) CreateRecipe(goCtx context.Context, msg *types.MsgCreateRecipe) (*types.MsgCreateRecipeResponse, error) {
- // Get the context
- ctx := sdk.UnwrapSDKContext(goCtx)
-
- // Create variable of type Recipe
- var recipe = types.Recipe{
- Creator: msg.Creator,
- Dish: msg.Dish,
- Ingredients: msg.Ingredients,
- }
-
- // Add a recipe to the store and get back the ID
- id := k.AppendRecipe(ctx, recipe)
-
- // Return the ID of the recipe
- return &types.MsgCreateRecipeResponse{Id: id}, nil
-}
-```
-
-
-You will see errors in your text editor, which we will resolve in the next step.
-
-## 🔁 Keepers {#keepers}
-
-### 📗 Define `Recipe` type and `AppendRecipe` keeper method {#define-recipe-and-appendrecipe}
-
-Create a file `recipes/proto/recipes/recipes/recipe.proto` and
-define the `Recipe` message:
-
-```go title="recipes/proto/recipes/recipes/recipe.proto"
-syntax = "proto3";
-
-package recipes.recipes;
-
-option go_package = "recipes/x/recipes/types";
-
-message Recipe {
- string creator = 1;
- uint64 id = 2;
- string dish = 3;
- string ingredients = 4;
-}
-```
-
-### 📘 Define keeper methods {#define-keeper-methods}
-
-Now you’ll define your `AppendRecipe` keeper method.
-
-Create the `recipes/x/recipes/keeper/recipe.go` file. The
-`AppendRecipe` function is a placeholder to brainstorm how
-to implement it:
-
-```go title="recipes/x/recipes/keeper/recipe.go"
-package keeper
-
-import (
- "encoding/binary"
-
- "cosmossdk.io/store/prefix"
- "github.com/cosmos/cosmos-sdk/runtime"
- sdk "github.com/cosmos/cosmos-sdk/types"
-
- "recipes/x/recipes/types"
-)
-
-// func (k Keeper) AppendRecipe() uint64 {
-// count := k.GetRecipeCount()
-// store.Set()
-// k.SetRecipeCount()
-// return count
-// }
-```
-
-Add these prefixes to the `recipes/x/recipes/types/keys.go` file
-in the `const` and add a comment for your reference:
-
-```go title="recipes/x/recipes/types/keys.go"
-const (
- //...
-
- // Keep track of the index of recipes
- RecipeKey = "Recipe-value-"
- RecipeCountKey = "Recipe-count-"
-)
-```
-
-Next, implement `GetRecipeCount` in the `recipes/x/recipes/keeper/recipe.go` file:
-
-
-```go title="recipes/x/recipes/keeper/recipe.go"
-func (k Keeper) GetRecipeCount(ctx sdk.Context) uint64 {
- // Get the store using storeKey (which is "recipes") and RecipeCountKey (which is "Recipe-count-")
- storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx))
- store := prefix.NewStore(storeAdapter, []byte(types.RecipeCountKey))
-
- // Convert the RecipeCountKey to bytes
- byteKey := []byte(types.RecipeCountKey)
-
- // Get the value of the count
- bz := store.Get(byteKey)
-
- // Return zero if the count value is not found (for example, it's the first recipe)
- if bz == nil {
- return 0
- }
-
- // Convert the count into a uint64
- return binary.BigEndian.Uint64(bz)
-}
-```
-
-And then `SetRecipeCount`:
-
-```go title="recipes/x/recipes/keeper/recipe.go"
-func (k Keeper) SetRecipeCount(ctx sdk.Context, count uint64) {
- // Get the store using storeKey (which is "recipes") and RecipeCountKey (which is "Recipe-count-")
- storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx))
- store := prefix.NewStore(storeAdapter, []byte(types.RecipeCountKey))
-
- // Convert the RecipeCountKey to bytes
- byteKey := []byte(types.RecipeCountKey)
-
- // Convert count from uint64 to string and get bytes
- bz := make([]byte, 8)
- binary.BigEndian.PutUint64(bz, count)
-
- // Set the value of Recipe-count- to count
- store.Set(byteKey, bz)
-}
-```
-
-
-Now you’re ready to implement the `AppendRecipe` function at
-the top of the file above `GetRecipeCount` and `SetRecipeCount`:
-
-```go title="recipes/x/recipes/keeper/recipe.go"
-func (k Keeper) AppendRecipe (ctx sdk.Context, recipe types.Recipe) uint64 {
- // Get the current number of recipes in the store
- count := k.GetRecipeCount(ctx)
-
- // Assign an ID to the recipe based on the number of recipes in the store
- recipe.Id = count
-
- // Get the store
- storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx))
- store := prefix.NewStore(storeAdapter, []byte(types.RecipeKey))
-
- // Convert the recipe ID into bytes
- byteKey := make([]byte, 8)
- binary.BigEndian.PutUint64(byteKey, recipe.Id)
-
- // Marshal the recipe into bytes
- appendedValue := k.cdc.MustMarshal(&recipe)
-
- // Insert the recipe bytes using recipe ID as a key
- store.Set(byteKey, appendedValue)
-
- // Update the recipe count
- k.SetRecipeCount(ctx, count+1)
- return count
-}
-```
-
-Now you have implemented all the code required to create
-new recipes and store them on-chain. When a transaction that
-contains a message type `MsgCreateRecipe` is broadcast, the
-message is routed to the recipes module.
-
-- `k.CreateRecipe` calls `AppendRecipe`, which gets the recipe
-count, adds a recipe using the count as the ID, increments the
-count, and returns the ID
-
-## 🍽️ Querying recipes {#querying-recipes}
-
-### 🖥 Query recipes {#query-recipes}
-
-In order to query your recipes, scaffold a query with Ignite:
-
-```bash
-ignite scaffold query dishes --response dish,ingredients
-```
-
-A response on a successful scaffold will look like this:
-
-```bash
-modify proto/recipes/recipes/query.proto
-modify x/recipes/client/cli/query.go
-create x/recipes/client/cli/query_dishes.go
-create x/recipes/keeper/query_dishes.go
-
-🎉 Created a query `dishes`.
-```
-
-In the `proto/recipes/recipes/query.proto` file import:
-
-```proto title="proto/recipes/recipes/query.proto"
-import "recipes/recipes/recipe.proto";
-```
-
-Add pagination to the recipe *request*:
-
-```proto title="proto/recipes/recipes/query.proto"
-message QueryDishesRequest {
- // Adding pagination to request
- cosmos.base.query.v1beta1.PageRequest pagination = 1;
-}
-```
-
-Add pagination to the recipe *response*:
-
-```proto title="proto/recipes/recipes/query.proto"
-message QueryDishesResponse {
- // Returning a list of recipes
- repeated Recipe Recipe = 1;
-
- // Adding pagination to response
- cosmos.base.query.v1beta1.PageResponse pagination = 2;
-}
-```
-
-In order to implement recipe querying logic in
-`recipes/x/recipes/keeper/query_dishes.go`,
-delete the file contents and replace them with:
-
-
-```go title="recipes/x/recipes/keeper/query_dishes.go"
-package keeper
-
-import (
- "context"
- "github.com/cosmos/cosmos-sdk/store/prefix"
- sdk "github.com/cosmos/cosmos-sdk/types"
- "github.com/cosmos/cosmos-sdk/types/query"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/status"
-
- "recipes/x/recipes/types"
-)
-
-func (k Keeper) Dishes(c context.Context, req *types.QueryDishesRequest) (*types.QueryDishesResponse, error) {
- // Throw an error if request is nil
- if req == nil {
- return nil, status.Error(codes.InvalidArgument, "invalid request")
- }
-
- // Define a variable that will store a list of recipes
- var dishes []*types.Recipe
-
- // Get context with the information about the environment
- ctx := sdk.UnwrapSDKContext(c)
-
- // Get the key-value module store using the store key (in our case store key is "chain")
- storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx))
-
- // Get the part of the store that keeps recipes (using recipe key, which is "Recipe-value-")
- recipeStore := prefix.NewStore(storeAdapter, []byte(types.RecipeKey))
-
- // Paginate the recipes store based on PageRequest
- pageRes, err := query.Paginate(recipeStore, req.Pagination, func(key []byte, value []byte) error {
- var dish types.Recipe
- if err := k.cdc.Unmarshal(value, &dish); err != nil {
- return err
- }
-
- dishes = append(dishes, &dish)
-
- return nil
- })
-
- // Throw an error if pagination failed
- if err != nil {
- return nil, status.Error(codes.Internal, err.Error())
- }
-
- // Return a struct containing a list of recipes and pagination info
- return &types.QueryDishesResponse{Recipe: dishes, Pagination: pageRes}, nil
-}
-```
-
-
-## 👩🍳 Running the recipes rollup {#running-recipes-rollup}
-
-### ✨ Run a Celestia light node {#run-celestia-light-node}
-
-Follow instructions to install and start your Celestia Data Availability
-layer Light Node selecting the Arabica Devnet. You can
-find instructions to install and run the node [here](https://docs.celestia.org/nodes/light-node).
-
-After you have Go and Ignite CLI installed, and your Celestia Light
-Node running on your machine, you're ready to build, test, and launch your own
-sovereign rollup.
-
-Be sure you have initialized your node before trying to start it.
-Your start command should look similar to:
-
-::: tip
-
-It is recommended that you [create your own key](https://docs.celestia.org/nodes/light-node#keys-and-wallets) and fund it with a [testnet tokens](https://docs.celestia.org/nodes/light-node#testnet-tokens).
-
-:::
-
-
-```bash
-celestia light start --core.ip validator-1.celestia-arabica-11.com --p2p.network arabica
-```
-
-After you have Go and Ignite CLI installed, and your Celestia
-Light Node running on your machine, you're ready to build,
-test, and launch your own sovereign rollup.
-
-### 🗞️ Start the recipes rollup {#start-recipes-rollup}
-
-We have a handy `init.sh` found in this repo
-[here](https://github.com/rollkit/docs/tree/main/scripts/recipes).
-
-We can copy it over to our directory with the following commands:
-
-
-```bash
-# From inside the `recipes` directory
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/recipes/init.sh
-```
-
-
-This copies over our `init.sh` script to initialize our
-Recipes Rollup.
-
-You can view the contents of the script to see how we
-initialize the Recipes Rollup.
-
-🟢 From your project working directory (`recipes/`), start the chain with:
-
-```bash
-bash init.sh
-```
-
-With that, we have kickstarted our `recipesd` network!
-
-
-
-Find
-[your account address on an Arabica explorer to see your `PayForBlobs` transactions](https://explorer.modular.cloud/celestia-arabica/transactions).
-
-Open another teminal instance. Now, create your first
-recipe in the command line by sending a transaction from `recipes-key`,
-when prompted, confirm the transaction by entering `y`:
-
-
-```bash
-recipesd tx recipes create-recipe salad "spinach, mandarin oranges, sliced almonds, smoked gouda, citrus vinaigrette" --from recipes-key --keyring-backend test --fees 5000stake --chain-id recipes
-```
-
-
-
-
-### ⌨️ Query your recipes with the CLI {#query-recipes-with-cli}
-
-To query all of the on-chain recipes:
-
-```bash
-recipesd q recipes dishes
-```
-
-
-
-🎉 Congratulations, again! You have now successfully built a recipe book rollup.
diff --git a/tutorials/rollup-docker.md b/tutorials/rollup-docker.md
deleted file mode 100644
index c4cda45ae..000000000
--- a/tutorials/rollup-docker.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Starter Rollup with Docker
-
-This tutorial will guide you through starting a Rollkit rollup with Docker.
-
-## Prerequisites
-
-* [Docker](https://docs.docker.com/engine/install/) installed on your machine
-
-## Clone the repository
-
-First, clone the rollup-docker repository and change into the directory:
-
-```bash
-git clone https://github.com/rollkit/rollup-docker.git && cd rollup-docker
-```
diff --git a/tutorials/starter-rollup.md b/tutorials/starter-rollup.md
deleted file mode 100644
index b66748dc4..000000000
--- a/tutorials/starter-rollup.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# Starter Rollup
-
-In this tutorial, you will learn how to build a Rollkit rollup that uses a local Celestia devnet
-for consensus and data availability. This is the first-stop for developers building on Rollkit.
-
-This is built for MacOS and has been tested on an M1 and M2 Mac.
-
-## Prerequisites
-
-* Docker running on your machine
-
-## Clone the repo
-
-First, clone the starter repository and change into the `$HOME/gm-starter` repository:
-
-```bash
-git clone https://github.com/rollkit/gm-starter.git && cd gm-starter
-```
-
-## Run a local-celestia-devnet
-
-In a second terminal instance, start the local-celestia-devnet:
-
-```bash
-docker run -i -t --platform linux/amd64 -p 26657:26657 -p 26658:26658 -p 26659:26659 ghcr.io/rollkit/local-celestia-devnet:v0.11.0
-```
-
-When passing the `--rollkit.da_config` flag later in the tutorial, it will require `auth_token`` to be passed in. The auth token with write permission is required to submit blobs and can be obtained from the logs on local-celestia-devnet before the bridge node starts.
-
-```bash
-WARNING: Keep this auth token secret **DO NOT** log this auth token outside of development. CELESTIA_NODE_AUTH_TOKEN=
-
-WARNING: Celestia custom network specified. Only use this option if the node is freshly created and initialized.
-**DO NOT** run a custom network over an already-existing node store!
-
-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiLCJhZG1pbiJdfQ.a_-CStbScoe_ot8Z1K9YaccvhngeieiSBdgO4uObuvI // [!code focus]
-```
-
-The auth token is the last string, which you can now set as a variable. (It's long, so don't forget to copy the whole thing!):
-
-```bash
-export AUTH_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJBbGxvdyI6WyJwdWJsaWMiLCJyZWFkIiwid3JpdGUiLCJhZG1pbiJdfQ.a_-CStbScoe_ot8Z1K9YaccvhngeieiSBdgO4uObuvI
-```
-
-## Start the Starter Rollup
-
-```bash
-bash init-local.sh
-```
-
-The rollup logs will begin to look similar to this:
-
-```bash
-3:35PM INF submitting block to DA layer height=1 module=BlockManager
-3:35PM INF successfully submitted Rollkit block to DA layer daHeight=148 module=BlockManager rollkitHeight=1
-3:35PM INF commit synced commit=436F6D6D697449447B5B3230302031373020313933203836203730203334203139302031353220383220313432203133342034382032333520343920363220313720323131203133312032343720313133203634203933203134372032332031353920323435203931203133342031342031333520323138203138355D3A317D
-3:35PM INF indexed block height=1 module=txindex
-```
-
-## Next steps
-
-In the next tutorial, you'll learn how to build the GM world rollup using Ignite CLI.
diff --git a/tutorials/wordle.md b/tutorials/wordle.md
index d1f47afeb..3efee6a5e 100644
--- a/tutorials/wordle.md
+++ b/tutorials/wordle.md
@@ -12,14 +12,15 @@ The tutorial will go over the simple design,
as well as conclude with future implementations and ideas
to extend this codebase.
-::: tip
-This tutorial will explore developing with Rollkit,
-which is still in Alpha stage. If you run into bugs, please write a Github
-[Issue ticket](https://github.com/rollkit/docs/issues/new)
-or let us know in our [Telegram](https://t.me/rollkit).
+
+
-Learn how to [restart your rollup](/guides/restart-rollup.md).
+:::tip
+
:::
+
::: warning
The script for this tutorial is built for Celestia's
@@ -34,7 +35,6 @@ in Ignite to understand all the different components in Cosmos-SDK before
proceeding with this tutorial.
* [GM world](/tutorials/gm-world)
-* [Recipe Book](/tutorials/recipe-book) or [Blog and Module Basics](https://docs.ignite.com/guide/blog/intro)
* [Nameservice Tutorial](https://docs.ignite.com/v0.25.2/guide/nameservice)
* [Scavenger Hunt](https://docs.ignite.com/v0.25.2/guide/scavenge)
@@ -95,7 +95,7 @@ sudo mv ignite /usr/local/bin/
```
This installs Ignite CLI in your local machine.
-This tutorial uses a MacOS but it should work for Windows.
+This tutorial uses a macOS but it should work for Windows.
For Windows users, check out the Ignite docs on installation
for Windows machines.
@@ -575,15 +575,14 @@ test, and launch your own sovereign rollup.
### 🟢 Building and running wordle chain {#build-and-run-wordle-chain}
-We have a handy `init.sh` found in this repo
-[here](https://github.com/rollkit/docs/tree/main/scripts/wordle).
+We have a handy `init.sh` [found in this repo](https://rollkit.dev/wordle/init.sh).
We can copy it over to our directory with the following commands:
```bash
# From inside the `wordle` directory
-wget https://raw.githubusercontent.com/rollkit/docs/main/scripts/wordle/init.sh
+wget https://rollkit.dev/wordle/init.sh
```