Running a Node with Docker
This tutorial will walk you through the process of using Docker to run an BOBA Sepolia node, OP Mainnet node and OP Sepolia node. You can find all Docker Compose files here.
Prerequisites
Setup
Clone the boba
repository to get started
git clone https://github.com/bobanetwork/boba.git
cd boba
cd boba-community
Configuration
Configuration for the docker-compose
is handled through environment variables inside of an .env
file.
Create an .env
file
The repository includes a sample environment variable file located at .env.example
that you can copy and modify to get started. Make a copy of this file and name it .env
.
cp .env.example .env
Configure the .env
file
Open the .env
in your directory and set the variables inside. Read the descriptions of each variable to understand what they do and how to set them. Read the software release page to set the correct version.
DB Configuration
Download Snapshots
You can download the database snapshot for the client and network you wish to run.
Always verify snapshots by comparing the sha256sum of the downloaded file to the sha256sum listed on this page. Check the sha256sum of the downloaded file by running sha256sum <filename>
in a terminal.
-
BOBA Mainnet
The erigon db can be downloaded from the boba mainnet erigon db.
curl -o boba-mainnet-erigon-db-1149019.tgz -sL https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-erigon-db-1149019.tgz
The geth db can be downloaded from boba mainnet geth db.
curl -o boba-mainnet-geth-db-114909.tgz -sL https://boba-db.s3.us-east-2.amazonaws.com/mainnet/boba-mainnet-geth-db-114909.tgz
-
BOBA Sepolia
The erigon db can be downloaded from the boba sepolia erigon db.
curl -o boba-sepolia-erigon-db.tgz -sL https://boba-db.s3.us-east-2.amazonaws.com/sepolia/boba-sepolia-erigon-db.tgz
The geth db can be downloaded from boba sepolia geth db.
curl -o boba-sepolia-geth-db.tgz -sL https://boba-db.s3.us-east-2.amazonaws.com/sepolia/boba-sepolia-geth-db.tgz
-
OP Mainnet
The erigon db can be downloaded from Test in Prod OP Mainnet.
-
OP Sepolia
The erigon db can be downloaded from optimism sepolia erigon db.
Or you can download the genesis file from Optimsim and initialize the data directory with it.
curl -o op-sepolia-genesis.json -sL https://networks.optimism.io/op-sepolia/genesis.json
erigon init --datadir=/db genesis.jsonThe erigon can be built from the source using
make erigon
.
Extract Snapshots
Once you've downloaded the database snapshot, you'll need to extract it to a directory on your machine. This will take some time to complete.
tar xvf data.tgz
Create a Shared Secret (JWT Token)
openssl rand -hex 32 > jwt-secret.txt
Modify Volume Location
The volumes of l2 and op-node should be modified to your file locations.
l2:
volumes:
- ./jwt-secret.txt:/config/jwt-secret.txt
- DATA_DIR:/db
op-node:
volumes:
- ./jwt-secret.txt:/config/jwt-secret.txt
Run the Node
Once you've configured your .env
file, you can run the node using Docker Compose. The following command will start the node in the background.
docker-compose -f [docker-compose-file] up -d
Optional: Run the Node with Geth
We support both geth and erigon as the execution engines for Boba Mainnet node. You can start the node with geth using the following command:
docker-compose -f docker-compose-mainnet-geth.yml up -d
Operating the Node
Start
docker-compose -f [docker-compose-file] up -d
Will start the node in a detatched shell (-d
), meaning the node will continue to run in the background.
View Logs
docker-compose logs -f --tail 10
To view logs of all containers.
docker-compose logs <CONTAINER_NAME> -f --tail 10
Stop
docker-compose -f [docker-compose-file] down
Wipe [DANGER]
docker-compose -f [docker-compose-file] down -v