22
33> Forked and customized from https://github.com/smartcontracts/simple-optimism-node
44
5- A Docker Compose setup for running an Ink node, plus the supporting healthcheck
6- and monitoring services.
5+ A Docker Compose setup for running an Ink node on the repository's current
6+ ` op-geth ` -based stack, plus the supporting healthcheck and monitoring services.
7+
8+ ## Current Status
9+
10+ This repository currently ships an ` op-geth ` execution client. The instructions
11+ below are the current ` op-geth ` runbook for this Compose stack, not the
12+ long-term recommendation.
13+
14+ Per Optimism, ` op-geth ` support ends on May 31, 2026, and nodes still running
15+ it at the L1 Glamsterdam hardfork will not be able to follow the canonical
16+ chain. ` op-node ` is not being deprecated. See the
17+ [ op-geth deprecation notice] ( https://docs.optimism.io/notices/op-geth-deprecation )
18+ and the
19+ [ op-reth configuration guide] ( https://docs.optimism.io/node-operators/guides/configuration/execution-clients#op-reth-configuration ) .
20+
21+ If you operate a production or long-lived node, start planning an ` op-reth `
22+ migration now. Run it in parallel, validate it over a meaningful window, and
23+ prepare a fresh snapshot before the hardfork window. Treat this as an
24+ operator-owned migration rather than something to delay until a later
25+ sequencer-side client switch.
26+
27+ This repository does not yet ship an ` op-reth ` Compose path. Before it can, the
28+ repo still needs:
29+
30+ - a validated ` op-reth ` service, image, and entrypoint in ` docker-compose.yml `
31+ - an ` op-node ` engine endpoint that no longer points at ` http://op-geth:8551 `
32+ - archive init and snapshot handling that can consume ` op-reth ` snapshots where
33+ available. The checked Sepolia Ink Gelato index already exposes
34+ ` reth/full/datadir ` artifacts, but this repo does not use them yet and the
35+ checked mainnet Ink index still only exposes geth archives
36+ - healthcheck and monitoring updates, which still target ` op-geth ` and the
37+ ` opgeth ` InfluxDB database
38+ - env and port naming that no longer assumes ` op-geth ` , such as
39+ ` PORT__OP_GETH_* ` and ` envs/*/op-geth.env `
740
841## Recommended Hardware
942
@@ -74,7 +107,8 @@ cp .env.example .env
74107
75108### 3. Edit ` .env `
76109
77- For the lowest-friction first run, start with ` ink-sepolia ` and a ` full ` node:
110+ For the lowest-friction first run on the current ` op-geth ` stack, start with
111+ ` ink-sepolia ` and a ` full ` node:
78112
79113``` sh
80114NETWORK_NAME=ink-sepolia
@@ -90,9 +124,10 @@ Configuration notes:
90124- ` NETWORK_NAME ` : ` ink-sepolia ` or ` ink-mainnet `
91125- ` NODE_TYPE=full ` : starts from an empty local datadir. This is the validated
92126 first-run path in this repo
93- - ` NODE_TYPE=archive ` : resolves the newest archival geth datadir from the
94- Gelato ChainSnap index for your network, downloads the matching ` .sha256 ` ,
95- verifies the archive, and extracts it during ` bedrock-init `
127+ - ` NODE_TYPE=archive ` : resolves the newest archival geth datadir for the
128+ current ` op-geth ` stack from the Gelato ChainSnap index for your network,
129+ downloads the matching ` .sha256 ` , verifies the archive, and extracts it
130+ during ` bedrock-init `
96131- ` OP_NODE__RPC_TYPE=basic ` : the right default for generic providers; use
97132 ` alchemy ` , ` quicknode ` , or ` erigon ` only when your provider requires it
98133- ` .env ` overrides the same variable for services that load ` .env ` in
@@ -119,7 +154,7 @@ This pulls the service images, builds the local `bedrock-init` image, creates a
119154JWT, and starts:
120155
121156- ` bedrock-init ` (one-time init)
122- - ` op-geth `
157+ - ` op-geth ` (current execution client in this repo)
123158- ` op-node `
124159- ` healthcheck `
125160- ` prometheus `
@@ -158,7 +193,7 @@ Good startup signals:
158193
159194### Smoke test the RPC endpoints
160195
161- Execution RPC:
196+ Execution RPC for the current ` op-geth ` service :
162197
163198``` sh
164199curl -fsS -X POST -H " Content-Type: application/json" --data ' {"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' http://127.0.0.1:9993
@@ -303,13 +338,19 @@ If image pulls or snapshot downloads fail, make sure the host can reach:
303338- ` ink.t.snapshots.gelato.cloud `
304339- ` ink.snapshots.gelato.cloud `
305340
306- Archive snapshots are resolved from these indexes:
341+ Archive geth snapshots for the current stack are resolved from these indexes:
307342
308343- Sepolia: [ https://ink.t.snapshots.gelato.cloud/index.html ] ( https://ink.t.snapshots.gelato.cloud/index.html )
309344- Mainnet: [ https://ink.snapshots.gelato.cloud/index.html ] ( https://ink.snapshots.gelato.cloud/index.html )
310345
311346` bedrock-init ` downloads the matching ` .sha256 ` file and verifies the archive
312- before extraction.
347+ before extraction. This is still a geth datadir path, not an ` op-reth `
348+ bootstrap flow.
349+
350+ At the time of this docs refresh, the Sepolia Ink Gelato index also exposes
351+ ` reth/full/datadir ` artifacts, but the checked mainnet Ink index does not yet
352+ show ` reth ` artifacts. This repository does not consume those ` reth ` snapshots
353+ yet.
313354
314355If ` bedrock-init ` exits with ` Failed to resolve latest snapshot ` or
315356` Unexpected snapshot filename format ` , the index is unreachable or its format
0 commit comments