Docs
  • InfraDAO Overview
  • ⌨️Indexing 101
    • Linux and Ethereum Clients
      • Introduction to Linux
      • Getting started with Ethereum Clients
      • Lab 1: Sync a Gnosis blockchain node
  • ⌨️Archive Nodes 101
    • Overview
    • ⏫Arbitrum
      • 💻Baremetal
      • 🐳Docker
    • 🔼Arbitrum Sepolia
      • 💻Baremetal
    • 🏔️Avalanche
      • 🐳Docker
    • 🔵Base
      • Erigon
        • 💻Baremetal
      • GETH
        • 💻Baremetal
        • 🐳Docker
    • 🫐Base Sepolia
      • 💻Baremetal
      • 🐋Docker
        • 🐋Op-Reth
    • 🔔Binance
      • Erigon
        • 💻Baremetal
    • 💥Blast
      • 💻Baremetal
    • 🧋Boba
      • 💻Baremetal
      • 🐳Docker
    • 🫖BobaBNB
      • 💻Baremetal
      • 🐳Docker
    • 🟨Celo
      • 🐳Docker
    • 🔷Ethereum
      • 🦦Erigon
        • 💻Baremetal
        • 🐳Docker
      • 🦀Reth
        • 💻Baremetal
        • 🐳Docker
    • 🦄Ethereum Sepolia
      • 🐉Erigon
        • 💻Baremetal
      • 🦥Geth
        • 🐳Docker
    • 👻Fantom
      • 🐳Docker
    • ♻️Fuse
      • 💻Baremetal
    • 🦉Gnosis
      • 🦦Erigon
        • 💻Baremetal
    • 📍Iotex
      • 💻Baremetal
    • 🔲Linea
      • 💻Baremetal
      • 🐳Docker
    • Ⓜ️Mode
      • 💻Baremetal
      • 🐳Docker
    • 🌌Moonbeam
      • 💻Baremetal
      • 🐳Docker
    • 🌛Moonriver
      • 💻Baremetal
      • 🐳Docker
    • 🔴Optimism
      • GETH
        • 🖥️Baremetal
        • 🐳Docker
      • Erigon
        • 💻Baremetal
    • 🍎Optimism Sepolia
      • 🐳Docker
      • 💻Baremetal
    • ♾️Polygon
      • 🐳Docker
    • 👾Polygon zkEVM
      • 🐉Erigon
        • 💻Baremetal
        • 🐳Docker
    • 🛡️Ronin
      • 🐳Docker
      • 💻Baremetal
    • 🫚Rootstock
      • 🐳Docker
      • 💻Baremetal
    • 📜Scroll
      • 🐳Docker
      • 💻Baremetal
    • 🦔Sonic
      • 🐳Docker
      • 💻Baremetal
    • 🌟Starknet
      • 🪶Pathfinder
        • 🐳Docker
      • 🧑‍🚒Firehose
        • 💻Baremetal
        • 🐳Docker
      • 🏵️Juno
        • 🐳Docker
    • ✖️X Layer
      • 🐳Docker
      • 💻Baremetal
        • 🦥Erigon
        • 👽ZK-Node
    • 💤zkSync Era
      • 💻Baremetal
      • 🐳Docker
    • ⚡Zora
      • 🐳Docker
      • 💻Baremetal
Powered by GitBook
On this page
  • System Requirements
  • 📜 Scroll
  • Pre-Requisites
  • Setting up Firewall
  • Setup scroll client
  • Logging

Was this helpful?

Edit on GitHub
  1. Archive Nodes 101
  2. Scroll

Baremetal

PreviousDockerNextSonic

Last updated 1 year ago

Was this helpful?

[Author: Dood]

System Requirements

CPU

OS

RAM

DISK

4c/8t

Debian 12

>=16GB

>= 1TB SSD/NVME

The archive node size is 300G as of 04.03.2024

All commands in this guide are supposed to be executed as root

📜 Scroll

Unofficial Docs & Support:

Pre-Requisites

apt update -y && apt upgrade -y && apt autoremove -y
apt install -y build-essential make gcc musl-dev git curl

Setting up Firewall

Set explicit default UFW rules

sudo ufw default deny incoming
sudo ufw default allow outgoing

Allow SSH

sudo ufw allow 22/tcp

Allow remote RPC connections with Linea Node

sudo ufw allow from ${REMOTE.HOST.IP} to any port 8546

Not advised to allow all or unknown IP address to RPC port

Enable Firewall

sudo ufw enable
wget https://golang.org/dl/go1.21.6.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

#check Go version

go version

Setup scroll client

Compile Binaries

git clone https://github.com/scroll-tech/go-ethereum /root/l2geth-source
cd /root/l2geth-source && make nccc_geth
mkdir /root/scroll-datadir

Create service to run Scroll Node

If possible, replace '--l1.endpoint "https://eth.llamarpc.com"' with your own L1 ethereum endpoint.

echo "[Unit]
Description=Scroll Node
After=network.target
StartLimitIntervalSec=60
StartLimitBurst=3

[Service]
Type=simple
Restart=on-failure
RestartSec=5
TimeoutSec=900
User=root
Nice=0
LimitNOFILE=200000
WorkingDirectory=/root/l2geth-source
ExecStart=/root/l2geth-source/build/bin/geth \
--scroll \
--datadir '/root/scroll-datadir' \
--gcmode archive \
--syncmode full \
--cache.noprefetch \
--http \
--http.corsdomain '*' \
--http.vhosts '*' \
--http.addr '0.0.0.0' \
--http.port 8546 \
--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 \
--port 30303
KillSignal=SIGHUP

[Install]
WantedBy=multi-user.target" >> /etc/systemd/system/scroll-node.service
systemctl daemon-reload
systemctl start scroll-node
systemctl enable scroll-node

Logging

journalctl -fu scroll-node

Get Sync status via curl (replace $YOURIP$ with the IP of your server)

curl -H "Content-type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' $YOURIP$:8546
curl -H "Content-type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"scroll_syncStatus","params":[],"id":1}' $YOURIP$:8546

References

⌨️
📜
💻
Running a Node
Namespace
Discord Server
Github
Running a Node
Namespace
Discord Server
Github