[Author: Dood]
CPU | OS | RAM | DISK |
---|---|---|---|
4c/8t | Debian 12 | >=16GB | >= 1TB SSD/NVME |
{% hint style="info" %} The archive node size was 300G as of 29.02.2024 {% endhint %}
{% hint style="success" %} This guide was tested with Debian 12 but, should run on every OS that can run Docker {% endhint %}
Unofficial Docs & Support:
If not already installed, install Docker
Setting Up a Firewall
Add a rule to block all traffic on the port:
iptables -I DOCKER-USER -p tcp --dport 8545 -j DROP
Add a rule for access:
iptables -I DOCKER-USER -p tcp --dport 8545 -s $YOURIP$ -j ACCEPT
Replace
Create docker-compose.yml
If possible, replace '--l1.endpoint "https://eth.llamarpc.com"' with your own L1 Ethereum endpoint.
nano docker-compose.yml
{% tabs %} {% tab title="JavaScript" %}
version: "3.1"
services:
scroll:
container_name: scroll
image: scrolltech/l2geth:scroll-v5.1.10
restart: unless-stopped
volumes:
- scroll:/scroll-datadir
ports:
- 8545:8545
command: |
--scroll
--datadir "./scroll-datadir"
--gcmode archive
--syncmode full
--cache.noprefetch
--http
--http.corsdomain "*"
--http.vhosts "*"
--http.addr "0.0.0.0"
--http.port 8545
--http.api "eth,net,web3,debug,scroll"
--l1.endpoint "https://eth.llamarpc.com"
--rollup.verify
--l1.confirmations finalized
--verbosity=3
--metrics
--metrics.addr "0.0.0.0"
--metrics.port 6060
--maxpeers 100
--nat "extip:0.0.0.0"
--port 30303
volumes:
scroll:
{% endtab %} {% endtabs %}
docker compose up -d
View Logs via
docker logs -f scroll
Replace
curl -H "Content-type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' $YOURIP$:8545
curl -H "Content-type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"scroll_syncStatus","params":[],"id":1}' $YOURIP$:8545