You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
14
14
15
15
## Prerequisites
16
16
@@ -49,15 +49,11 @@ You will need access to a fully-synced **Ethereum Mainnet** or **Ethereum Sepoli
49
49
$ cd l2geth-source
50
50
$ git checkout VERSION
51
51
```
52
-
2. Ensure that you are using version 1.18 of `go`.
52
+
2. Ensure that you are using version 1.20 of `go`.
53
53
3. Install the gcc compiler: `sudo apt install build-essential`.
54
54
4. Build `l2geth`: `make nccc_geth`. The binary is now in `build/bin/geth`.
55
55
5. Define a command alias: `alias l2geth=./build/bin/geth`.
56
56
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
-
61
57
### Run L2geth
62
58
63
59
<Asidetype="tip">
@@ -68,8 +64,8 @@ Please consider opening port `30303`(UDP & TCP) and enabling discovery so that o
@@ -103,9 +99,9 @@ Please consider opening port `30303`(UDP & TCP) and enabling discovery so that o
103
99
Running the node in Docker might have a significant impact on node performance.
104
100
</Aside>
105
101
106
-
### Download L2geth
102
+
### Build L2geth Image
107
103
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`.
109
105
110
106
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.
111
107
@@ -117,8 +113,8 @@ Running the node in Docker might have a significant impact on node performance.
`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
-
<Asidetype="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
-
<Asidetype="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