Skip to content
Validators
Support external chains
Optimism

Optimism

Instructions to set up your Optimism node.

ℹ️

Note: Mainnet instructions here will only work after the bedrock upgrade is live on mainnet

Requirements

Prerequisites

sudo apt-get install jq -y
snap install docker

Clone Repo

git clone https://github.com/smartcontracts/simple-optimism-node.git
cd simple-optimism-node
cp .env.example .env

Set node config

Set the following config options in simple-optimism-node/.env:

NETWORK_NAME=mainnet
NODE_TYPE=full
BEDROCK_SOURCE=download
# Your Ethereum RPC node endpoint. As an L2, your Optimism node will verify tx finality by
# querying your own Ethereum RPC node.
OP_NODE__RPC_ENDPOINT=
OP_NODE__RPC_TYPE=basic

Start the node

docker compose up -d

This should show an output like this:

b08a0a826235 Pull complete                                                                                                                             90.5s
d71d159599c3 Downloading [>                                                  ]  6.232kB/487.2kB                                                        91.6s
5cfc4241bcf3 Waiting                                                                                                                                   91.6s
323993d60cf3 Waiting                                                                                                                                   91.6s
5149b9087ec2 Waiting                                                                                                                                   91.6s                                                                                                                             91.6s
209878a685e3 Waiting                                                                                                                                   91.6s
fault-detector Pulling                                                                                                                                   97.4s

After it is done, verify by listing the services and their status

docker compose ps

You should see these 4 services running

NAME                              COMMAND                  SERVICE             STATUS              PORTS
simple-optimism-node-influxdb-1   "/entrypoint.sh infl…"   influxdb            running             0.0.0.0:8086->8086/tcp, :::8086->8086/tcp
simple-optimism-node-op-geth-1    "/bin/sh -c '/script…"   op-geth             running             0.0.0.0:9991-9992->8545-8546/tcp, :::9991-9992->8545-8546/tcp
simple-optimism-node-op-node-1    "/bin/sh -c '/script…"   op-node             running
simple-optimism-node-torrent-1    "/init"                  torrent             running             0.0.0.0:6881->6881/tcp, 0.0.0.0:6881->6881/udp, :::6881->6881/tcp, :::6881->6881/udp

Check logs

Verify op-geth logs

docker compose logs op-geth -f

It will download the bedrock.tar

simple-optimism-node-op-geth-1  | Still downloading bedrock.tar...
simple-optimism-node-op-geth-1  | + CHECKSUM=df843fd53ea905808bc21d0e2dd4620a
simple-optimism-node-op-geth-1  | + '[' df843fd53ea905808bc21d0e2dd4620a '==' 4a6919d95d719668a493554771f55e9f ]
simple-optimism-node-op-geth-1  | + return 1