Builders
Node Operators
Overview

Node Operator Overview

This document provides an overview of how to deploy an OP node. To learn more about how Bedrock itself works and its motivations, please see the specs on GitHub (opens in a new tab). If you want to skip ahead to building and running a node, you can start with the node operator tutorials.

Deployment Overview

A deployment consists of two core components:

  1. The Rollup Node, which is responsible for deriving blocks from L1 and passing them to the Execution engine. It also participates in a peer-to-peer network that synchronizes unsubmitted blocks as the sequencer creates them. We refer to this component as op-node.
  2. The Execution Engine, which is responsible for executing the blocks it receives from the rollup node and storing state. It also exposes standard JSON-RPC methods to query blockchain data and submit transactions to the network. We refer to this component as op-geth, since our Execution Engine is a minimal fork (opens in a new tab) of go-ethereum.

The Rollup Node and Execution Engine communicate with each other over JSON-RPC via the Engine API. This is similar to how regular Ethereum networks are deployed. The Rollup Node functions as Optimism's consensus client, and the Execution Engine as its execution client.

For OP Mainnet and OP Goerli (but not OP Sepolia), you may also need to run a third component called Legacy Geth. Legacy Geth is used to serve execution traces for transactions prior to the Bedrock upgrade, which we refer to as "historical transactions". When the Rollup Node encounters an RPC call that requires historical execution traces, it will forward the request to Legacy Geth. Note, however, that unlike our previous networks requests for historical data will be served by the Execution Engine directly. This distinction will be clarified later on in this document.

The architecture of a typical Bedrock deployment looks like this:

bedrock deployment diagram

System Requirements

We recommend the following minimum system requirements to run Bedrock:

  • op-node: Minimum 2CPUs, 4GB RAM. No storage is necessary.
  • op-geth: Minimum 4 CPUs, 8GB RAM. At least 40GB of storage is required for OP Goerli or OP Sepolia. At least 600GB of storage is required for mainnet. Storage must be SSD. Requirements are significantly higher for archive nodes.

Getting the Software

op-geth and op-node are available as Docker images. Consult the documentation for the network you are participating in to get the correct image tag.

Legacy Geth uses version 0.5.31 of our old l2geth image.

You can also compile op-geth and op-node from source.

Node Operator Tutorials

Here's a curated collection of node operator tutorials put together by the Optimism community. They'll help you get a headstart deploying your first OP node.

Tutorial NameDescriptionDifficulty Level
Building a Node From SourceLearn how to build your own node without relying on images from Optimism.🟢 Easy
Running OP Mainnet from SourceLearn how to run a node from source using OP Mainnet.🟡 Moderate
Running OP Testnet from SourceLearn how to run a node from source using OP Testnet.🟡 Moderate

You can also suggest a new tutorial (opens in a new tab) if you have something specific in mind. We'd love to grow this list!

Next Steps