Node Operators

Node Operator Overview

The Node Operator section of the Optimism Docs is a collection of guides and tutorials to help you run your own OP Mainnet or OP Sepolia nodes. If you'd like to learn more about how OP Mainnet works under the hood, refer to the OP Mainnet Getting Started Guide or the OP Stack Getting Started Guide. If you want to get right into running a node, feel free to skip ahead to the Node Operator Tutorials section.

Node Architecture

All OP Mainnet nodes are composed of two core software services, the Rollup Node and the Execution Client. OP Mainnet also optionally supports a third component, Legacy Geth, that can serve stateful queries for blocks and transactions created before the Bedrock Upgrade (opens in a new tab).

Rollup Node

The Rollup Node is responsible for deriving L2 block payloads from L1 data and passing those payloads to the Execution Client. The Rollup Node can also optionally participate in a peer-to-peer network to receive blocks directly from the Sequencer before those blocks are submitted to L1. The Rollup Node is largely analogous to a consensus client (opens in a new tab) in Ethereum.

Execution Client

The Execution Client is responsible for executing the block payloads it receives from the Rollup Node over JSON-RPC via the standard Ethereum Engine API (opens in a new tab). The Execution Client exposes the standard JSON-RPC API that Ethereum developers are familiar with, and can be used to query blockchain data and submit transactions to the network. The Execution Client is largely analogous to an execution client (opens in a new tab) in Ethereum.

Legacy Geth

OP Mainnet underwent a large database migration as part of the Bedrock Upgrade (opens in a new tab) in 2023. Blocks and transactions included in OP Mainnet prior to the Bedrock Upgrade are served by current execution engines but cannot be executed without the help of a special component called Legacy Geth. This means that you will need to run Legacy Geth if you want to be able to run RPC calls such as eth_call on blocks before the Bedrock Upgrade.

Legacy Geth is the software that was used to run OP Mainnet nodes prior to the Bedrock Upgrade. If you run an instance of Legacy Geth alongside your OP Mainnet node, your node will be able to forward requests against historical transactions to the Legacy Geth instance. Legacy Geth is not required and is typically only necessary if you want to maintain a complete archive node for OP Mainnet.


The following diagram shows how the Rollup Node, Execution Client, and Legacy Geth components work together to form a complete OP Mainnet node. This diagram uses the op-node and op-geth implementations of the Rollup Node and Execution Client respectively, but the same architecture generally applies to other implementations as well.

OP Mainnet node architecture diagram.

Software Releases

It's important to keep your node software up to date to ensure that you won't fall out of sync with other OP Mainnet nodes when there's an upgrade. Software updates can also include important bug fixes and patches that can help keep your node stable. Refer to the Software Releases page for a detailed look at the latest releases of various Rollup Node and Execution Client implementations. Notifications about important updates are also posted to the @Optimism Twitter account (opens in a new tab), and to the Node & Protocol Announcements Channel on Telegram (opens in a new tab).



Got an idea for a new tutorial? We'd love to hear it. Head over to GitHub to suggest a new tutorial (opens in a new tab).

Tutorial NameDescriptionDifficulty Level
Running a Node With DockerLearn how to run a node with Docker.🟢 Easy
Building a Node From SourceLearn how to compile node components from source code.🟢 Easy
Running an OP Mainnet Node from SourceLearn how to run an OP Mainnet node from source code.🟡 Medium
Running an OP Sepolia Node from SourceLearn how to run an OP Sepolia node from source code.🟡 Medium

Next Steps