The Base archive node reached a size of 13TB on November 30th, 2024
Base 🔵
Base is a secure, low-cost Ethereum L2 built on Optimism’s open-source OP Stack. In this guide, Optimism's op-geth and op-nodebinaries are built from source to facilitate the node's installation. This method has proved to sync an archive node successfully in ~48 hours using the official snapshot provided by the Base team.
Before you start, make sure that you have your own synced Ethereum L1 RPC URL (e.g. Erigon) and L1 Consensus Layer Beacon endpoint (e.g. Lighthouse) ready.
sudo ufw allow from ${REMOTE.HOST.IP} to any port 8545
Not advised to allow all or unknown IP address to RPC port
Enable Firewall
sudo ufw enable
Download a snapshot
Create a directory and start downloading an archive in screen session as it takes ~9 hours
mkdir base && cd base
screen -S archive
aria2c --file-allocation=none -c -x 10 -s 10 "https://base-snapshots-mainnet-archive.s3.amazonaws.com/$(curl https://base-snapshots-mainnet-archive.s3.amazonaws.com/latest)"
#to return to previous screen and continue installation press
Ctrl+a+d
Compile Op-node
Required Software Dependencies
Dependency
Version
Version Check Command
go
^1.22
go version
node
^20
node --version
pnpm
^8
pnpm --version
foundry
^0.2.0
forge --version
make
^4
make --version
yarn
1.22.21
yarn --version
nvm
0.39.3
nvm --verison
Install go
sudo wget https://go.dev/dl/go1.22.9.linux-amd64.tar.gz && sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.9.linux-amd64.tar.gz && rm go1.22.9.linux-amd64.tar.gz
#to verify Go installation
go version
#If it returns Command 'go' not found simply run
echo 'export PATH=$PATH:/usr/local/go/bin:/root/.local/bin' >> /root/.bashrc
#and then apply changes with
source /root/.bashrc
sudo nano /etc/systemd/system/op-node.service #make changes in op-node service file
sudo systemctl daemon-reload #refresh systemd configuration when changes made
sudo systemctl start op-node.service #start op-node
sudo systemctl enable op-node.service #enable op-node service at system startup
sudo journalctl -fu op-node.service #follow logs of op-node service
Compile op-geth
cd /root/github/
git clone https://github.com/ethereum-optimism/op-geth.git
cd op-geth
git checkout v1.101411.1
make geth
#The binary is built at /root/github/op-geth/build/bin/geth
Create JWT secret file and download genesis and rollup .json files
sudo systemctl daemon-reload #refresh systemd configuration when changes made
sudo systemctl start op-geth.service #start op-geth
sudo systemctl enable op-geth.service #enable op-geth service at system startup
sudo journalctl -fu op-geth.service #follow logs of op-geth service
To check or modify op-geth.service parameters simply run
sudo nano /etc/systemd/system/op-geth.service
Ctrl+X and Y to save changes
You can also run curl command in the terminal to check the status of your node
You can see If blocks increase at https://base.blockscout.com/ by entering returned hash. It means the node is catching up and the setup is successful.