diff --git a/operate/operators/archive-node.mdx b/operate/operators/archive-node.mdx index e43110477a..242def0da2 100644 --- a/operate/operators/archive-node.mdx +++ b/operate/operators/archive-node.mdx @@ -67,7 +67,7 @@ Ensure any datadir you supply is not in use by a running node before proceeding. OP_RETH__SNAPSHOT=true ``` - On first start this downloads the snapshot matching your `NODE_TYPE` (here, the archive snapshot) and continues from there. **On mainnet a snapshot is required** — it provides the pre-L2 (Celo L1) history. On **Celo Sepolia**, which has no pre-L2 history, you can instead leave `OP_RETH__SNAPSHOT=false` and execute every block from genesis. Either way, `NODE_TYPE=archive` is what keeps the full historical state available, and `DATADIR_PATH` must be empty on first start — a datadir written by `op-geth` cannot be reused. + On first start this downloads the snapshot matching your `NODE_TYPE` (here, the archive snapshot) and continues from there. **On mainnet a snapshot is required** — it provides the pre-L2 (Celo L1) history. On **Celo Sepolia**, which has no pre-L2 history, you can instead set `OP_RETH__SNAPSHOT=false` and execute every block from genesis. Either way, `NODE_TYPE=archive` is what keeps the full historical state available, and `DATADIR_PATH` must be empty on first start — a datadir written by `op-geth` cannot be reused. #### Configure Historical RPC Service diff --git a/operate/operators/configuration.mdx b/operate/operators/configuration.mdx index 9bb3f698b4..99ac2f1d22 100644 --- a/operate/operators/configuration.mdx +++ b/operate/operators/configuration.mdx @@ -17,7 +17,7 @@ The variables below configure `op-reth`, Celo's supported execution client. Supp | Variable | Values | Description | |---|---|---| | `NODE_TYPE` | `minimal`, `full` (default), `archive` | Sets the prune profile and the snapshot tier downloaded. A `minimal` node prunes transaction lookups fully and keeps only the most recent receipts, so it serves latest-state RPC on the smallest disk but little history. A `full` node stores historical state only for recent blocks. An `archive` node stores historical state for the entire chain (roughly 10x the storage). All three execute every block. | -| `OP_RETH__SNAPSHOT` | `true`, `false` (default) | When `true`, an empty datadir is bootstrapped from a published snapshot (`snapshots.celo.org`). Required on mainnet, which needs the pre-L2 history; optional on Celo Sepolia, which can sync from genesis. Ignored once the datadir holds data. | +| `OP_RETH__SNAPSHOT` | `true` (default in the shipped `.env` files), `false` | When `true`, an empty datadir is bootstrapped from a published snapshot (`snapshots.celo.org`). Required on mainnet, which needs the pre-L2 history; optional on Celo Sepolia, which can sync from genesis. Ignored once the datadir holds data. | `op-reth` syncs by executing every block. A new node starts from an empty datadir (see [Run a node with Docker](/operate/operators/run-node)); datadirs written by `op-geth` cannot be reused. For archive nodes, see [Running an archive node](/operate/operators/archive-node). diff --git a/operate/operators/maintenance.mdx b/operate/operators/maintenance.mdx index cb747a20cb..36101baf8c 100644 --- a/operate/operators/maintenance.mdx +++ b/operate/operators/maintenance.mdx @@ -24,7 +24,7 @@ This pulls the latest changes from GitHub and the latest images from the registr Network hardforks require running a compatible client version *before* the fork block, or your node will stop following the chain. Watch the [Notices](/operate/notices/overview) for each upgrade's required versions and timing. Support for op-geth has ended; a node still running it must migrate to op-reth — see [End of Support for op-geth](/operate/notices/op-geth-deprecation). -To pin a specific image version instead of tracking the latest, set the matching `IMAGE_TAG__*` variable in your `.env` (for example `IMAGE_TAG__OP_RETH` or `IMAGE_TAG__OP_NODE`). +To pin a specific image version instead of tracking the latest, set the matching `IMAGE_TAG__*` variable in your `.env` (for example `IMAGE_TAG__OP_RETH`). The op-node and eigenda-proxy image tags are fixed in `docker-compose.yml` and change only when you `git pull`. ## Restarting and stopping diff --git a/operate/operators/monitoring.mdx b/operate/operators/monitoring.mdx index 708ef00186..615ae197cd 100644 --- a/operate/operators/monitoring.mdx +++ b/operate/operators/monitoring.mdx @@ -21,7 +21,11 @@ This starts four services alongside your node: **Healthcheck**, **Prometheus**, With monitoring enabled, Grafana is available at [http://localhost:3000](http://localhost:3000) (configurable via `PORT__GRAFANA`). - **Username:** `admin` -- **Password:** `optimism` +- **Password:** `celo` + + +These are the compose defaults, and compose publishes Grafana on every host interface (`${PORT__GRAFANA:-3000}:3000`). Set `GF_SECURITY_ADMIN_PASSWORD` in `.env` before you first start with monitoring enabled: Grafana reads it only when it creates the admin user, and keeps that user in the `grafana_data` volume. If Grafana has already started, change the password in Grafana instead (user icon → **Change Password**). Either way, firewall port 3000 so it is not reachable from the public internet. + The **Simple Node Dashboard** (Dashboards → Manage → Simple Node Dashboard) shows basic node information and sync status. If you run the challenger, the **Succinct Challenger** dashboard shows challenger activity. @@ -33,7 +37,7 @@ The **Simple Node Dashboard** (Dashboards → Manage → Simple Node Dashboard) ## Key metrics to watch -From **op-node** (Prometheus, `http://localhost:7300/metrics`): +From **op-node** (query in Prometheus at `http://localhost:9090` or in Grafana; the op-node port 7300 is not published to the host, where `localhost:7300` is the healthcheck): - **`op_node_default_refs_number`** — the op-node's current L1/L2 reference block numbers. If it stops increasing, your node is not syncing; if it goes backwards, your node is reorging. - **`op_node_default_peer_count`** — how many peers op-node is connected to. Without peers, op-node cannot sync unsafe blocks and your node will lag behind the sequencer. diff --git a/operate/operators/network-config.mdx b/operate/operators/network-config.mdx index 236cf76825..0c0d29cc5d 100644 --- a/operate/operators/network-config.mdx +++ b/operate/operators/network-config.mdx @@ -57,13 +57,13 @@ The recommended [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l - Container images: - [op-reth](https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-reth:celo-v1.0.5) - - [op-node](https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo-v2.1.0) - - [eigenda-proxy](https://ghcr.io/layr-labs/eigenda-proxy:v1.8.2) + - [op-node](https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo-v2.2.3) + - [eigenda-proxy](https://ghcr.io/layr-labs/eigenda-proxy:v2.6.0) - [Celo L1 client](https://us-docker.pkg.dev/celo-org/us.gcr.io/geth-all:1.8.9) — legacy archive / historical RPC service ## Celo Sepolia -- op-reth snapshots — published at [`snapshots.celo.org`](https://snapshots.celo.org); optional, enable with `OP_RETH__SNAPSHOT=true` to skip syncing from genesis (see [Run a node](/operate/operators/run-node)) +- op-reth snapshots — published at [`snapshots.celo.org`](https://snapshots.celo.org); optional and on by default (`OP_RETH__SNAPSHOT=true`); set it to `false` to sync from genesis instead (see [Run a node](/operate/operators/run-node)) - [L1 contract addresses](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/deployment-l1.json) - [rollup.json](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/rollup.json) - [Genesis](https://storage.googleapis.com/cel2-rollup-files/celo-sepolia/genesis.json) @@ -90,5 +90,5 @@ The recommended [celo-l2-node-docker-compose](https://github.com/celo-org/celo-l - Container images: - [op-reth](https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-reth:celo-v1.0.5) - - [op-node](https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo-v2.1.0) - - [eigenda-proxy](https://ghcr.io/layr-labs/eigenda-proxy:v1.8.2) + - [op-node](https://us-west1-docker.pkg.dev/devopsre/celo-blockchain-public/op-node:celo-v2.2.3) + - [eigenda-proxy](https://ghcr.io/layr-labs/eigenda-proxy:v2.6.0) diff --git a/operate/operators/run-node.mdx b/operate/operators/run-node.mdx index 3b41d5a913..35c878655d 100644 --- a/operate/operators/run-node.mdx +++ b/operate/operators/run-node.mdx @@ -76,7 +76,7 @@ Follow these steps to run a full node. If you would like to run an archive node, **On mainnet a snapshot is required** — it provides the pre-L2 (Celo L1) history, which `op-reth` cannot reproduce by executing blocks. - - **From genesis.** On **Celo Sepolia**, which has no pre-L2 history, you can leave `OP_RETH__SNAPSHOT=false` (the default) and execute every block from genesis. This needs no external data but takes considerably longer to reach the chain tip. + - **From genesis.** On **Celo Sepolia**, which has no pre-L2 history, you can set `OP_RETH__SNAPSHOT=false` (the shipped `.env` files set it to `true`) and execute every block from genesis. This needs no external data but takes considerably longer to reach the chain tip. **Datadirs from op-geth cannot be reused**