Skip to content
This repository was archived by the owner on Aug 7, 2025. It is now read-only.

Commit 99c649c

Browse files
committed
remove rollup from tutorials
1 parent 4539461 commit 99c649c

File tree

13 files changed

+135
-128
lines changed

13 files changed

+135
-128
lines changed

learn/stack.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This page will cover the main components of Rollkit.
44

5-
Rollup sequencer nodes collect transactions from users, aggregate them into blocks, and post the blocks onto a data availability (DA) layer (such as Celestia) to be ordered and finalized. Full nodes execute and verify rollup blocks, and in the case of an optimistic rollup, propagate fraud proofs when needed. Light clients will receive headers, verify proofs (fraud, zk, etc), and authenticate trust-minimized queries about the state.
5+
Sequencer nodes collect transactions from users, aggregate them into blocks, and post the blocks onto a data availability (DA) layer (such as Celestia) to be ordered and finalized. Full nodes execute and verify blocks, and in the case of an optimistic system, propagate fraud proofs when needed. Light clients will receive headers, verify proofs (fraud, zk, etc), and authenticate trust-minimized queries about the state.
66

77
## Application structure
88

@@ -22,28 +22,28 @@ Rollkit's execution API is simple and allows developers to bring their own execu
2222

2323
#### Cosmos SDK
2424

25-
Would you like to change your Cosmos SDK application to a Rollkit rollup?
25+
Would you like to change your Cosmos SDK application to a Rollkit chain?
2626
No problem! All you need to do is use the start function we provide in the ABCI Folder, [see here on what changes are needed](TODO)
2727

2828
### Data availability
2929

3030
[Data availability (DA)](https://github.com/rollkit/rollkit/tree/main/da) can be accessed using generic [interfaces](https://github.com/rollkit/rollkit/blob/main/core/da/da.go).
3131

3232
The `BlockRetriever` interface serves to enable syncing of full nodes from the data availability layer.
33-
It's important to keep in mind that there is no direct correlation between the DA layer block height and the rollup height. Each DA layer block may contain an arbitrary number of rollup blocks.
33+
It's important to keep in mind that there is no direct correlation between the DA layer block height and the chain height. Each DA layer block may contain an arbitrary number of blocks.
3434

3535
#### Celestia
3636

3737
Celestia is a prominent example of a data availability integration implemented for Rollkit.
3838
It's using the [Celestia Node API](https://node-rpc-docs.celestia.org)
3939
via the [`rollkit/da`](https://github.com/rollkit/rollkit/tree/main/da) package.
40-
To deploy a Rollkit rollup on Celestia you also have to [run a Celestia light node](https://docs.celestia.org/how-to-guides/celestia-node).
40+
To deploy a Rollkit chain on Celestia you also have to [run a Celestia light node](https://docs.celestia.org/how-to-guides/celestia-node).
4141

4242
## Node components
4343

4444
### Block manager
4545

46-
The [block manager](https://github.com/rollkit/rollkit/tree/main/block) contains routines `AggregationLoop`, `RetrieveLoop`, and `SyncLoop` that communicate through Go channels. These Go routines are run when a Rollkit node starts up (`OnStart`). Only the sequencer nodes run `AggregationLoop` which controls the frequency of block production for a rollup with a timer as per the `BlockTime` in `BlockManager`.
46+
The [block manager](https://github.com/rollkit/rollkit/tree/main/block) contains routines `AggregationLoop`, `RetrieveLoop`, and `SyncLoop` that communicate through Go channels. These Go routines are run when a Rollkit node starts up (`OnStart`). Only the sequencer nodes run `AggregationLoop` which controls the frequency of block production for a chain with a timer as per the `BlockTime` in `BlockManager`.
4747

4848
All nodes run `SyncLoop` which looks for the following operations:
4949

@@ -52,16 +52,16 @@ All nodes run `SyncLoop` which looks for the following operations:
5252
<!-- - **Receive state fraud proofs**: state fraud proofs are received through a channel `FraudProofInCh` and Rollkit nodes attempt to verify them. Note that we plan to make this configurable for full nodes since full nodes also produce state fraud proofs on their own. -->
5353
- Signal `RetrieveLoop` with timer as per the `DABlockTime` in `BlockManager`.
5454

55-
All nodes also run `RetrieveLoop` which is responsible for interacting with the data availability layer. It checks the last updated `DAHeight` to retrieve a block with timer `DABlockTime` signaled by `SyncLoop`. Note that the start height of the DA layer for the rollup, `DAStartHeight`, is configurable in `BlockManager`.
55+
All nodes also run `RetrieveLoop` which is responsible for interacting with the data availability layer. It checks the last updated `DAHeight` to retrieve a block with timer `DABlockTime` signaled by `SyncLoop`. Note that the start height of the DA layer for the chain, `DAStartHeight`, is configurable in `BlockManager`.
5656

57-
### Comet RPC
57+
### Comet RPC
5858

5959
Rollkit's ABCI [RPC](https://github.com/rollkit/go-execution-abci/tree/main/pkg/rpc) implements the [CometBFT RPC](https://docs.cometbft.com/v0.37/spec/rpc/) interfaces and APIs for querying:
6060

61-
- **Information about the rollup node**: information such as node's health, status, and network info.
62-
- **The rollup blockchain**: getting information about the rollup blockchain such as blocks and block headers.
63-
- **The rollup transactions**: getting transaction information and broadcasting raw transactions, with search capabilities.
64-
- **ABCI**: rollup application information.
61+
- **Information about the node**: information such as node's health, status, and network info.
62+
- **The blockchain**: getting information about the blockchain such as blocks and block headers.
63+
- **The transactions**: getting transaction information and broadcasting raw transactions, with search capabilities.
64+
- **ABCI**: application information.
6565

6666
The following RPC protocols are currently supported:
6767

@@ -84,30 +84,30 @@ curl http://127.0.0.1:26657/block?height=included
8484
### P2P layer
8585

8686
Rollkit's [P2P layer](https://github.com/rollkit/rollkit/tree/main/p2p) enables
87-
direct communication between rollup nodes.
87+
direct communication between nodes.
8888
It's used to gossip transactions, headers of newly created blocks, and state fraud proofs.
8989
The P2P layer is implemented using [libp2p](https://github.com/libp2p).
9090

9191
Rollkit uses [DHT-based active peer discovery](https://curriculum.pl-launchpad.io/curriculum/libp2p/dht/).
9292
Starting a node connects to pre-configured bootstrap peers, and advertises its namespace ID in the DHT.
93-
This solution is flexible, because multiple rollup networks may reuse the same DHT/bootstrap nodes,
94-
but specific rollup network might decide to use dedicated nodes as well.
93+
This solution is flexible, because multiple networks may reuse the same DHT/bootstrap nodes,
94+
but specific network might decide to use dedicated nodes as well.
9595

9696
## Rollkit node types
9797

9898
Rollkit nodes are implemented in the [`node`](https://github.com/rollkit/rollkit/tree/main/node) package.
9999

100100
### Full node
101101

102-
Full nodes verify all blocks, and produce fraud proofs for optimistic rollups. Since they fully verify all rollup blocks, they don't rely on fraud or validity proofs for security.
102+
Full nodes verify all blocks, and produce fraud proofs for optimistic systems. Since they fully verify all blocks, they don't rely on fraud or validity proofs for security.
103103

104104
### Sequencer node
105105

106-
Rollups can utilize sequencer nodes. Sequencers are block producers for rollups, responsible for aggregating transactions into blocks, and typically executing transactions to produce a state root, used by the rollup's light clients.
106+
Sequencer nodes can be utilized. Sequencers are block producers, responsible for aggregating transactions into blocks, and typically executing transactions to produce a state root, used by the light clients.
107107

108108
Rollkit plans to support multiple different pluggable sequencer schemes:
109109

110-
| | Deploy in one-click | Faster soft-confirmations than L1 | Control over rollup's transaction ordering | Atomic composability with other rollups | Censorship resistance | Implementation Status |
110+
| | Deploy in one-click | Faster soft-confirmations than L1 | Control over transaction ordering | Atomic composability with other chains | Censorship resistance | Implementation Status |
111111
|:---------------------:|:--------------------------------:|:---------------------------------:|:------------------------------------------:|:---------------------------------------:|:---------------------:|:---------------------:|
112112
| Single sequencer | Requires spinning up a sequencer | Yes ✅ | Yes ✅ | No ❌ | Eventual ⏳* | ✅ Implemented! |
113113
| Based sequencer | Requires spinning up a gateway | No ❌ | Yes ✅ | No ❌ | Yes ✅ | Planned |
@@ -116,6 +116,6 @@ Rollkit plans to support multiple different pluggable sequencer schemes:
116116

117117
### Pessimistic (full nodes only)
118118

119-
A pessimistic rollup is a rollup that only supports full nodes that replay all the transactions in the rollup in order to check its validity. Rollkit supports pessimistic rollups by default.
119+
A pessimistic system is one that only supports full nodes that replay all the transactions in the system in order to check its validity. Rollkit supports pessimistic operation by default.
120120

121-
Pessimistic rollups are similar to how Tether uses Bitcoin as a data availability layer via [OmniLayer](https://github.com/OmniLayer/spec/blob/master/OmniSpecification-v0.6.adoc#summary).
121+
This pessimistic mode of operation is similar to how Tether uses Bitcoin as a data availability layer via [OmniLayer](https://github.com/OmniLayer/spec/blob/master/OmniSpecification-v0.6.adoc#summary).

learn/transaction-flow.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Transaction flow
22

3-
Rollup users use a light node to communicate with the rollup P2P network for two primary reasons:
3+
Users use a light node to communicate with the P2P network for two primary reasons:
44

55
- submitting transactions
66
- gossipping headers and fraud proofs
@@ -35,7 +35,7 @@ sequenceDiagram
3535
FullNode->>FullNode: Add to Mempool (if valid)
3636
FullNode-->>User: Transaction Processed (if valid)
3737
FullNode->>Sequencer: Inform about Valid Transaction
38-
Sequencer->>DALayer: Add to Rollup Block
38+
Sequencer->>DALayer: Add to Block
3939
```
4040

4141
## Block processing
@@ -44,9 +44,9 @@ sequenceDiagram
4444
sequenceDiagram
4545
participant DALayer
4646
participant FullNode
47-
participant RollupChain
47+
participant Chain
4848
49-
DALayer->>RollupChain: Update State
49+
DALayer->>Chain: Update State
5050
DALayer->>FullNode: Download & Validate Block
5151
FullNode->>FullNode: Generate Fraud Proofs (if invalid)
5252
```
@@ -57,20 +57,20 @@ sequenceDiagram
5757
sequenceDiagram
5858
participant FullNode
5959
participant LightNode
60-
participant RollupChain
60+
participant Chain
6161
6262
FullNode->>LightNode: Gossip Fraud Proofs (if invalid)
63-
RollupChain->>RollupChain: Halt & Decide to Fork (if invalid)
64-
RollupChain->>DALayer: Submit New Block (after fork)
63+
Chain->>Chain: Halt & Decide to Fork (if invalid)
64+
Chain->>DALayer: Submit New Block (after fork)
6565
```
6666

6767
To transact, users submit a transaction to their light node, which gossips the transaction to a full node. Before adding the transaction to their mempool, the full node checks its validity. Valid transactions are included in the mempool, while invalid ones are refused, and the user's transaction will not be processed.
6868

69-
If the transaction is valid and has been included in the mempool, the sequencer can add it to a rollup block, which is then submitted to the data availability (DA) layer. This results in a successful transaction flow for the user, and the state of the rollup is updated accordingly.
69+
If the transaction is valid and has been included in the mempool, the sequencer can add it to a block, which is then submitted to the data availability (DA) layer. This results in a successful transaction flow for the user, and the state of the system is updated accordingly.
7070

7171
<!--
7272
TODO: need to update design and docs
7373
After the block is submitted to the DA layer, the full nodes download and validate the block.
74-
However, there is a possibility that the sequencer may maliciously submit a block to the DA layer with invalid transactions or state. In such cases, the full nodes of the rollup chain will consider the block invalid. In the case of an optimistic rollup, if they find the block invalid, they generate fraud proofs and gossip them in the P2P network among other full and light nodes.
74+
However, there is a possibility that the sequencer may maliciously submit a block to the DA layer with invalid transactions or state. In such cases, the full nodes of the chain will consider the block invalid. In the case of an optimistic system, if they find the block invalid, they generate fraud proofs and gossip them in the P2P network among other full and light nodes.
7575
76-
As a result, the rollup chain will halt, and the network will decide to fork the chain through social consensus. In the future, when a decentralized sequencer scheme is in place, additional options will be available, such as slashing the sequencer or selecting another full node as the sequencer. However, in any case, a new block must be created and submitted to the DA layer. You can read more about sequencer nodes [here](/learn/stack#sequencer-node). -->
76+
As a result, the chain will halt, and the network will decide to fork the chain through social consensus. In the future, when a decentralized sequencer scheme is in place, additional options will be available, such as slashing the sequencer or selecting another full node as the sequencer. However, in any case, a new block must be created and submitted to the DA layer. You can read more about sequencer nodes [here](/learn/stack#sequencer-node). -->

tutorials/bitcoin.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
# Bitcoin rollup tutorial
1+
# Bitcoin integration tutorial
22

33
## ☀️Introduction
44

5-
In this tutorial, we will explore how to use Rollkit to create sovereign rollups on Bitcoin. First, we will install Bitcoin Core to run a local testnet. Then, we will install and set up a Rollkit node to work with Bitcoin as a data availability layer. Lastly, we'll look at how to create a custom EVM execution environment and how to deploy a sovereign rollup on Bitcoin using Rollkit.
5+
In this tutorial, we will explore how to use Rollkit to create sovereign systems on Bitcoin. First, we will install Bitcoin Core to run a local testnet. Then, we will install and set up a Rollkit node to work with Bitcoin as a data availability layer. Lastly, we'll look at how to create a custom EVM execution environment and how to deploy a sovereign system on Bitcoin using Rollkit.
66

7-
By the end of this tutorial, you will have a good understanding of how Rollkit works and how to create sovereign rollups on Bitcoin using Rollkit. You will also have the knowledge and skills needed to customize Rollkit with different execution environments and data availability layers, opening up new possibilities for creating scalable and efficient blockchain applications.
7+
By the end of this tutorial, you will have a good understanding of how Rollkit works and how to create sovereign systems on Bitcoin using Rollkit. You will also have the knowledge and skills needed to customize Rollkit with different execution environments and data availability layers, opening up new possibilities for creating scalable and efficient blockchain applications.
88

99
Read more in our [blog post](../../../blog/sovereign-rollups-on-bitcoin).
1010

1111
![rollkit-bitcoin](/bitcoin-rollkit/rollkit-bitcoin-1.png)
1212

1313
### 📖 The stack
1414

15-
Sovereign rollups on Bitcoin are made possible through a module that allows Rollkit rollups to use Bitcoin for data availability. This integration opens up possibilities for developers to create rollups with arbitrary execution environments that inherit Bitcoin’s data availability guarantees and security guarantees.
15+
Sovereign systems on Bitcoin are made possible through a module that allows Rollkit instances to use Bitcoin for data availability. This integration opens up possibilities for developers to create systems with arbitrary execution environments that inherit Bitcoin’s data availability guarantees and security guarantees.
1616

17-
The Taproot upgrade and [Ordinals](https://ordinals.com/) usage of Bitcoin for publishing arbitrary data made it possible to integrate Bitcoin as a data availability layer into Rollkit. The modular design of Rollkit allows for easy integration of new data availability layers, making it possible to deploy sovereign rollups on Bitcoin.
17+
The Taproot upgrade and [Ordinals](https://ordinals.com/) usage of Bitcoin for publishing arbitrary data made it possible to integrate Bitcoin as a data availability layer into Rollkit. The modular design of Rollkit allows for easy integration of new data availability layers, making it possible to deploy sovereign systems on Bitcoin.
1818

19-
The goal of Rollkit is to make it easy to build and customize rollups, enabling developers to build sovereign rollups on Bitcoin or customize Rollkit with different execution environments and data availability layers.
19+
The goal of Rollkit is to make it easy to build and customize systems, enabling developers to build sovereign systems on Bitcoin or customize Rollkit with different execution environments and data availability layers.
2020

2121
## 💻 Prerequisites
2222

@@ -143,7 +143,7 @@ apt install gcc -y
143143

144144
### 🪙 Install Bitcoin
145145

146-
Running the rollup requires a local regtest Bitcoin node. You can set this up by running the following commands.
146+
Running the system requires a local regtest Bitcoin node. You can set this up by running the following commands.
147147

148148
Install Bitcoin Core:
149149

@@ -305,7 +305,7 @@ In the case that you are starting your regtest network again, you can use the fo
305305
rm -rf ${LOCATION OF .bitcoin folder}
306306
```
307307

308-
## 🏃‍♀️ Running the Ethermint rollup
308+
## 🏃‍♀️ Running the Ethermint application
309309

310310
:::danger
311311
The Ethermint tutorial is currently not supported.
@@ -340,7 +340,7 @@ Start the chain:
340340
ethermintd start --rollkit.aggregator --rollkit.da_layer bitcoin --rollkit.da_config='{"host":"127.0.0.1:18332","user":"rpcuser","pass":"rpcpass","http_post_mode":true,"disable_tls":true}' --rollkit.namespace_id $NAMESPACE --rollkit.da_start_height 1
341341
```
342342

343-
Congratulations! Now that you have your Ethermint and Bitcoin rollup running, you're ready to deploy some smart contracts to the EVM!
343+
Congratulations! Now that you have your Ethermint and Bitcoin integration running, you're ready to deploy some smart contracts to the EVM!
344344

345345
### ⚡️ Initialize development environment
346346

@@ -552,7 +552,7 @@ We can then perform read operations with `cast call`:
552552
cast call $CONTRACT_ADDRESS "getCount()(int)" --rpc-url $RPC_URL
553553
```
554554

555-
### 🧪 Deploying to the Ethermint sovereign rollup
555+
### 🧪 Deploying to the Ethermint sovereign application
556556

557557
Now that we've deployed and tested locally, we can deploy to our
558558
Ethermint chain.
@@ -582,7 +582,7 @@ Set the contract address in the output as the `CONTRACT_ADDRESS` variable:
582582
export CONTRACT_ADDRESS=<new-contract-address>
583583
```
584584

585-
Once the contract has been deployed to the Ethermint rollup, we can
585+
Once the contract has been deployed to the Ethermint application, we can
586586
use `cast send` to test sending transactions to it:
587587

588588
```bash

0 commit comments

Comments
 (0)