Baremetal
Authors: [man4ela | catapulta.eth]
System Requirements
8+ cores CPU
Debian 12/Ubuntu 22.04
=> 16 GB RAM
1TB+ (SSD or NVMe)
Mode
Mode operates within Optimism Superchain ecosystem. It is powered by the OP Stack, in collaboration with Optimism, leveraging the scalability and security of Optimism's Layer 2 infrastructure.
In this guide, we are walking through the process of setting up a Mode Mainnet archive node using Optimism's op-geth and op-node.
Before you start, make sure that you have your own synced Ethereum L1 RPC URL (e.g. Erigon) and L1 Consensus Layer Beacon endpoint with all historical blobs data (e.g. Lighthouse) ready. A beacon endpoint meeting this criteria is essential for syncing to start.
Hint: https://console.chainstack.com/user/account/create has a free plan enough to sync a node
Pre-Requisites
sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
sudo apt install -y git make wget aria2 gcc pkg-config libusb-1.0-0-dev libudev-dev jq gcc g++ curl libssl-dev screen apache2-utils build-essential pkg-configSetting up Firewall
Set explicit default UFW rules
Allow SSH
Allow remote RPC connections with Mode Node
Allow remote P2P connections with Mode Node
Not advised to allow all or unknown IP address to RPC port
Enable Firewall
To check the status of UFW and see the current rules
Install dependencies
Required Software Dependencies
go
^1.21
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
Install nvm
Download foundry
Install foundry
Install node and yarn
Check if go and all dependancies are installed
Build the Rollup Node (op-node)
Create database directory and jwt secret file
Download genesis.json and rollup.json files
Build op-node
Create systemd service for op-node
Paste the following configs replacing {L1 RPC},{L1 BEACON RPC},{SERVER IP} with own values
{L1 RPC},{L1 BEACON RPC},{SERVER IP} with own valuesSave by entering ctrl+X and Y+ENTER
Build the Execution Engine (op-geth)
Build op-geth
Create systemd service for op-geth
Paste the following configs:
Save by entering ctrl+X and Y+ENTER
Initialize op-geth
Launch Mode
Start op-geth
Start op-node
Monitor the logs for errors
You are expected to get following log messages from op-node
The expected log messages from op-geth:
Run curl command in the terminal to check the status of your node
curl command in the terminal to check the status of your nodeIf it returns false then your node is fully synchronized with the network
Sync speed depends on your L1 node, as the majority of the chain is derived from data submitted to the L1.
You can check your syncing status using the optimism_syncStatus RPC on the op-node
optimism_syncStatus RPC on the op-nodeReferences
Last updated