Skip to main content
This section helps you run and operate a Celo L2 node. If you are starting fresh, the fastest path is to run a full node with Docker and snap sync from scratch — no L1 data migration required.

What is a Celo L2 node?

A Celo L2 node is made up of two core services, plus an optional third:
  • Rollup node (op-node) — derives L2 blocks from L1 data, analogous to a consensus client.
  • Execution client — executes those blocks and exposes the standard Ethereum JSON-RPC API.
  • Legacy L1 (optional) — serves stateful queries for blocks and transactions from before the L2 transition.
See Architecture for how these fit together.

Node types

  • Full node — follows the chain and serves recent state. Runs with snap sync by default, so it can start without a migrated L1 datadir. This is the right choice for most operators.
  • Archive node — additionally preserves all historical state, at the cost of terabytes of storage. See Running an archive node.

Execution client

  • op-reth — the execution client Celo is adopting as the primary client going forward, built on reth. A Celo-compatible release and migration guide are coming.
  • op-geth — the execution client used today. It is being deprecated ahead of the Ethereum Glamsterdam hardfork but remains fully supported until then. All current guides use op-geth.
op-geth is being deprecatedop-geth will not support the Ethereum Glamsterdam hardfork. All node operators must migrate to op-reth before that upgrade. See End of Support for op-geth for details and follow the celo-l2-node-docker-compose repository for release updates.

Guides

Getting help

Please reach out to our team on Discord in the #celo-L2-support channel if you have any questions.