Skip to content

Commit 1454a2f

Browse files
committed
PR comments
1 parent 431ed2e commit 1454a2f

File tree

1 file changed

+8
-43
lines changed

1 file changed

+8
-43
lines changed

src/content/docs/en/developers/guides/running-a-scroll-node.mdx

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ excerpt: "This guide contains instructions on how to to run your own node on the
1010
import Aside from "../../../../../components/Aside.astro"
1111
import ToggleElement from "../../../../../components/ToggleElement.astro"
1212

13-
Scroll implements a fork of geth, with clique for consensus, which we call l2geth.
13+
For most developers, using [our official RPC endpoint](../developer-quickstart#network-configuration) or one offered by other RPC providers in the ecosystem is the easiest way to get started on Scroll. For those looking to maintain their own node, this guide provides instructions on how to run a "follower node" that participates in the public mempool of transactions, but does not participate in consensus or block building. Scroll nodes are a fork of geth, using the clique protocol for consensus, which we call l2geth.
1414

1515
## Prerequisites
1616

@@ -49,15 +49,11 @@ You will need access to a fully-synced **Ethereum Mainnet** or **Ethereum Sepoli
4949
$ cd l2geth-source
5050
$ git checkout VERSION
5151
```
52-
2. Ensure that you are using version 1.18 of `go`.
52+
2. Ensure that you are using version 1.20 of `go`.
5353
3. Install the gcc compiler: `sudo apt install build-essential`.
5454
4. Build `l2geth`: `make nccc_geth`. The binary is now in `build/bin/geth`.
5555
5. Define a command alias: `alias l2geth=./build/bin/geth`.
5656

57-
{/* <Aside>
58-
`nccc` stands for “*no circuit capacity checker*”. This feature disables an expensive block validation rule that is not crucial on follower nodes. We recommend that you do not enable it. **If you do, please let us know so that we can notify you in case of breaking ccc upgrades.**
59-
</Aside> */}
60-
6157
### Run L2geth
6258

6359
<Aside type="tip">
@@ -68,8 +64,8 @@ Please consider opening port `30303`(UDP & TCP) and enabling discovery so that o
6864

6965
```bash
7066
$ l2geth --scroll \
71-
--datadir "./l2geth-datadir" \
72-
--gcmode archive --cache.noprefetch \
67+
--datadir "./l2geth-datadir" \
68+
--gcmode archive --cache.noprefetch \
7369
--http --http.addr "0.0.0.0" --http.port 8545 --http.api "eth,net,web3,debug,scroll" \
7470
--l1.endpoint "$L2GETH_L1_ENDPOINT" --rollup.verify
7571
```
@@ -103,9 +99,9 @@ Please consider opening port `30303`(UDP & TCP) and enabling discovery so that o
10399
Running the node in Docker might have a significant impact on node performance.
104100
</Aside>
105101

106-
### Download L2geth
102+
### Build L2geth Image
107103

108-
1. Build the container using `make mockccc_docker`. This will produce the image `scrolltech/l2geth:latest`.
104+
1. Build the image using `make mockccc_docker`. This will produce the image `scrolltech/l2geth:latest`.
109105

110106
Alternatively, you can download the `l2geth` Docker image using `docker pull scrolltech/l2geth:VERSION`. In this case, substitute this image name in the commands below.
111107

@@ -117,8 +113,8 @@ Running the node in Docker might have a significant impact on node performance.
117113
```bash
118114
$ docker run --rm --name l2geth-docker -v $(pwd):/volume -p 8545:8545 -e RUST_LOG="info" -e CHAIN_ID="534352" scrolltech/l2geth:latest \
119115
--scroll \
120-
--datadir "/volume/l2geth-datadir" \
121-
--gcmode archive --cache.noprefetch \
116+
--datadir "/volume/l2geth-datadir" \
117+
--gcmode archive --cache.noprefetch \
122118
--http --http.addr "0.0.0.0" --http.port 8545 --http.api "eth,net,web3,debug,scroll" \
123119
--l1.endpoint "$L2GETH_L1_ENDPOINT" --rollup.verify
124120
```
@@ -372,34 +368,3 @@ enode://dd1ac5433c5c2b04ca3166f4cb726f8ff6d2da83dbc16d9b68b1ea83b7079b371eb16ef4
372368
}
373369
```
374370
</ToggleElement>
375-
376-
---
377-
## Troubleshooting
378-
379-
<Aside type="danger">
380-
`Fatal: Failed to create the protocol stack: mkdir /volume/l2geth-datadir: operation not permitted`
381-
</Aside>
382-
383-
If you run `l2geth` in Docker and get this error on MacOS, you need to add the **`/volume`** directory to the list of shared paths in Docker Desktop settings.
384-
385-
1. Click the Docker icon in the macOS menu bar, then click **Settings**.
386-
2. Go to the **Resources** tab.
387-
3. Click on **File Sharing**.
388-
4. Click the "+" (plus) button to add a new shared folder.
389-
5. Navigate to the root directory, select the **`volume`** folder, and click **Open**.
390-
6. Click **Apply & Restart** for the changes to take effect.
391-
392-
<Aside type="danger">
393-
`Fatal: Failed to register the Ethereum service: database contains incompatible genesis (have a4fc62b9b0643e345bdcebe457b3ae898bef59c7203c3db269200055e037afda, new abf4a84278164e166e17c33a64e1e6fea407afd52226b8d1db0878f8774991e8)`
394-
</Aside>
395-
396-
The genesis config format changed starting at version **`scroll-v3.1.3`**. You can fix this error in two ways:
397-
398-
- Run `l2geth` with the `--scroll` flag. This will automatically import the up-to-date genesis config.
399-
- Alternatively, you can download the latest [genesis.json](#configuration-reference) , and run `l2geth --datadir "./l2geth-datadir" init "./genesis.json"` before running the node. This command will import the updated genesis config. Note: Your local database will remain intact.
400-
401-
<Aside type="danger">
402-
`no matching manifest for linux/arm64/v8 in the manifest list entries`
403-
</Aside>
404-
405-
If DockerHub does not have the container version required by your system, you can pass `--platform linux/amd64` to each Docker command. For better performance, we recommend that you build the image for your platform or [Build and Run From Source](#build-and-run-from-source).

0 commit comments

Comments
 (0)