Skip to content

Commit 6716ef2

Browse files
authored
chore: Update README and mdbook (#470)
* Update README and mdbook * clean readme
1 parent 8c5b360 commit 6716ef2

File tree

5 files changed

+382
-74
lines changed

5 files changed

+382
-74
lines changed

README.md

Lines changed: 19 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@ This repository is a modular Rust workspace for the Scroll rollup node. It is de
1313

1414
```
1515
.
16-
├── bin/
17-
│ └── rollup/ # Main binary crate (the node)
18-
│ ├── src/
19-
│ └── assets/
16+
├── book/ # mdBook documentation (published to GitHub Pages)
2017
├── crates/ # Internal library crates
18+
│ ├── node/ # Main binary crate (the node)
2119
│ ├── codec/
2220
│ ├── database/
2321
│ │ ├── db/
@@ -27,20 +25,21 @@ This repository is a modular Rust workspace for the Scroll rollup node. It is de
2725
│ ├── chain-orchestrator/
2826
│ ├── l1/
2927
│ ├── network/
30-
│ ├── node/
3128
│ ├── primitives/
3229
│ ├── providers/
3330
│ ├── scroll-wire/
3431
│ ├── signer/
3532
│ ├── sequencer/
3633
│ └── watcher/
34+
├── sequencer-migration/ # Migration tooling from l2geth to l2reth
35+
├── tests/ # Integration tests
3736
├── Cargo.toml # Workspace manifest
3837
└── ...
3938
```
4039

4140
## Crate Descriptions
4241

43-
- **bin/rollup/**: The main binary crate. This is the entry point for running the rollup node.
42+
- **crates/node/**: The main binary crate. This is the entry point for running the rollup node.
4443
- **crates/codec/**: Implements encoding/decoding logic for rollup data and payloads.
4544
- **crates/database/db/**: Database abstraction and storage logic for batches, blocks, and messages.
4645
- **crates/database/migration/**: Database schema migrations using SeaORM.
@@ -56,6 +55,9 @@ This repository is a modular Rust workspace for the Scroll rollup node. It is de
5655
- **crates/scroll-wire/**: Wire protocol definitions for Scroll-specific networking.
5756
- **crates/sequencer/**: Sequencer logic for ordering and batching transactions.
5857
- **crates/watcher/**: Monitors L1 chain state and handles reorgs and notifications.
58+
- **book/**: mdBook documentation published to [https://scroll-tech.github.io/rollup-node/](https://scroll-tech.github.io/rollup-node/)
59+
- **tests/**: Integration tests for the rollup node, including E2E and sequencer migration tests
60+
- **sequencer-migration/**: Scripts and tooling for migrating from l2geth to rollup-node (l2reth)
5961

6062
## Building the Project
6163

@@ -70,19 +72,20 @@ cargo build --bin rollup-node
7072
Or, from the binary crate directory:
7173

7274
```sh
73-
cd bin/rollup
75+
cd crates/node
7476
cargo build
7577
```
7678

7779
## Running the Node
7880

79-
After building, run the node with:
81+
For comprehensive instructions on running a node, including:
82+
- Hardware requirements
83+
- Configuration options
84+
- Example configurations for mainnet and sepolia
85+
- Logging and debugging
86+
- Troubleshooting
8087

81-
```sh
82-
cargo run --workspace --bin rollup-node -- [ARGS]
83-
```
84-
85-
Replace `[ARGS]` with any runtime arguments you require.
88+
Please refer to the official documentation: **[https://scroll-tech.github.io/rollup-node/](https://scroll-tech.github.io/rollup-node/)**
8689

8790
## Running Tests
8891

@@ -116,61 +119,10 @@ cargo build --release --bin rollup-node
116119

117120
The release binary will be located at `target/release/rollup-node`.
118121

119-
## Running a Sequencer Node
120-
121-
To run a sequencer node you should build the binary in release mode using the instructions defined above.
122-
123-
Then, you can run the sequencer node with the following command:
124-
125-
### Using Private Key File
126-
```sh
127-
./target/release/rollup-node node --chain dev -d --sequencer.enabled --signer.key-file /path/to/your/private.key --http --http.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev
128-
```
129-
130-
**Note**: The private key file should contain a hex-encoded private key (`64` characters, optionally prefixed with `0x`).
131-
132-
### Using AWS KMS
133-
```sh
134-
./target/release/rollup-node node --chain dev -d --sequencer.enabled --signer.aws-kms-key-id arn:aws:kms:REGION:ACCOUNT:key/KEY-ID --http --http.api admin,debug,eth,net,trace,txpool,web3,rpc,reth,ots,flashbots,miner,mev
135-
```
136-
137-
### Signer Configuration Notes
122+
## Documentation
138123

139-
When running a sequencer, a signer is required unless the `--test` flag is specified. The two signing methods are mutually exclusive - use either `--signer.key-file` or `--signer.aws-kms-key-id`, but not both.
140-
141-
**Private Key File**: Keep your private key file secure and never commit it to version control.
142-
143-
**AWS KMS**: Requires KMS permissions `kms:GetPublicKey` and `kms:Sign` for the specified key.
144-
145-
### General Information
146-
147-
The above commands will start a dev node in sequencer mode with all rpc apis enabled. You can adjust the `--http.api` flag to include or exclude specific APIs as needed.
148-
149-
The chain will be configured with a genesis that funds 20 addresses derived from the mnemonic:
150-
```
151-
test test test test test test test test test test test junk
152-
```
153-
154-
### Configuration Options
155-
156-
A list of sequencer specific configuration options can be seen below:
157-
158-
```sh
159-
--scroll-sequencer-enabled
160-
Enable the scroll block sequencer
161-
--scroll-block-time <SCROLL_BLOCK_TIME>
162-
The block time for the sequencer [default: 2000]
163-
--payload-building-duration <PAYLOAD_BUILDING_DURATION>
164-
The payload building duration for the sequencer (milliseconds) [default: 500]
165-
--max-l1-messages-per-block <MAX_L1_MESSAGES_PER_BLOCK>
166-
The max L1 messages per block for the sequencer [default: 4]
167-
--fee-recipient <FEE_RECIPIENT>
168-
The fee recipient for the sequencer [default: 0x5300000000000000000000000000000000000005]
169-
--signer.key-file <FILE_PATH>
170-
Path to the hex-encoded private key file for the signer (optional 0x prefix). Mutually exclusive with AWS KMS key ID
171-
--signer.aws-kms-key-id <KEY_ID>
172-
AWS KMS Key ID or ARN for signing transactions. Mutually exclusive with key file
173-
```
124+
- **[Official Documentation Book](https://scroll-tech.github.io/rollup-node/)** - Comprehensive guide for running follower and sequencer nodes
125+
- **[Sequencer Migration Guide](./sequencer-migration/README.md)** - Documentation for migrating from l2geth to rollup-node
174126

175127
## Contributing
176128

book/src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33
- [Introduction](./chapter_1.md)
44
- [Running a Node](./running-a-node.md)
5+
- [Running a Sequencer](./running-a-sequencer.md)
56
- [Running with Docker Compose](./docker-operations.md)

book/src/docker-operations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ your URLs and API keys are correct.
247247

248248
### Rollup Node Service
249249

250-
**Image**: `scrolltech/rollup-node:v0.0.1-rc67`
250+
**Image**: `scrolltech/rollup-node:v1.0.5`
251251

252252
**Port Mappings**:
253253

book/src/running-a-node.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ Replace:
6969
#### L1 Provider Configuration
7070

7171
- `--l1.url <URL>`: L1 Ethereum RPC endpoint URL (required for follower nodes)
72-
- `--l1.cups <NUMBER>`: Compute units per second for rate limiting (default: 1000)
72+
- `--l1.cups <NUMBER>`: Compute units per second for rate limiting (default: 10000)
7373
- `--l1.max-retries <NUMBER>`: Maximum retry attempts for L1 requests (default: 10)
7474
- `--l1.initial-backoff <MS>`: Initial backoff duration for retries in milliseconds (default: 100)
75-
- `--l1.query-range <BLOCKS>`: Block range for querying L1 logs (default: 2000)
75+
- `--l1.query-range <BLOCKS>`: Block range for querying L1 logs (default: 500)
7676

7777
#### Blob Provider Configuration
7878

@@ -112,8 +112,8 @@ These can be used as reliable blob sources without requiring your own beacon nod
112112

113113
#### Chain Orchestrator Configuration
114114

115-
- `--chain.optimistic-sync-trigger <BLOCKS>`: Block gap that triggers optimistic sync (default: 100)
116-
- `--chain.chain-buffer-size <SIZE>`: In-memory chain buffer size (default: 100)
115+
- `--chain.optimistic-sync-trigger <BLOCKS>`: Block gap that triggers optimistic sync (default: 1000)
116+
- `--chain.chain-buffer-size <SIZE>`: In-memory chain buffer size (default: 2000)
117117

118118
#### Engine Configuration
119119

@@ -125,7 +125,7 @@ These can be used as reliable blob sources without requiring your own beacon nod
125125
- `--http.addr <ADDRESS>`: HTTP server listening address (default: 127.0.0.1)
126126
- `--http.port <PORT>`: HTTP server port (default: 8545)
127127
- `--http.api <APIS>`: Enabled RPC API namespaces (comma-separated)
128-
- Available: `admin`, `debug`, `eth`, `net`, `trace`, `txpool`, `web3`, `rpc`, `reth`, `ots`
128+
- Available: `admin`, `debug`, `eth`, `net`, `trace`, `txpool`, `web3`, `rpc`, `reth`, `ots`, `flashbots`, `miner`, `mev`
129129
- `--http.corsdomain <ORIGINS>`: CORS allowed origins (comma-separated)
130130

131131
#### Rollup Node RPC
@@ -247,7 +247,7 @@ Available log levels (from least to most verbose):
247247
```bash
248248
RUST_LOG=info,scroll=debug,rollup=debug,sqlx=off \
249249
./target/release/rollup-node node \
250-
--chain scroll \
250+
--chain scroll-mainnet \
251251
--datadir /var/lib/scroll-node \
252252
--l1.url https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY \
253253
--blob.s3_url https://scroll-mainnet-blob-data.s3.us-west-2.amazonaws.com/ \

0 commit comments

Comments
 (0)