Skip to content

adapt to centralized single-sequencer (tendermint v0.3.8 / geth morph-v2.2.4) — integrate #92 + #100#114

Open
curryxbo wants to merge 2 commits into
mainfrom
feat/centralized-sequencer-single-node
Open

adapt to centralized single-sequencer (tendermint v0.3.8 / geth morph-v2.2.4) — integrate #92 + #100#114
curryxbo wants to merge 2 commits into
mainfrom
feat/centralized-sequencer-single-node

Conversation

@curryxbo

@curryxbo curryxbo commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Integrates #92 + #100 and adapts run-morph-node to the centralized single-sequencer model.

Version matrix

component pin
go-ethereum morph-v2.2.4 (0eda191)
morph main (f96a4775, single-sequencer network config)
tendermint v0.3.8 (a5de063) — enters via morph node/go.mod replace, not a submodule/service here
docker: geth 2.2.3 → 2.2.4
docker: node 0.5.7 → 0.6.0

Changes

Single self-verifying node (from #100):

  • Remove the separate validator docker-compose service; merge its env into the single node.
  • Expose DERIVATION_VERIFY_MODE--derivation.verify-mode: local (default) / layer1 (former validator behavior).
  • run-binary.sh drops the node|validator mode arg.
  • Validator role kept as a mode, not a container: make run-validator / run-hoodi-validator (+ -binary) run the same node with --derivation.verify-mode=layer1.
  • Keep stop-validator / rm-validator as aliases of stop-node / rm-node for backward-compatible command usage.

Legacy cleanup:

  • Remove ZK legacy: .env_zk, .env_hoodi_zk, entrypoint-geth-zk.sh, all run-zk-* / *-zk-snapshot targets, and the ZK README tables.
  • .env_hoodi: restore NODE_EXTRA_FLAGS=--hoodi (else node → network=dev and fails "L1 Sequencer contract address is required").
  • Align env snapshots/heights to README newest MPT (mainnet snapshot-20260701-1, hoodi snapshot-20260630-1).
  • Do not carry WIP:chore: bump morph + geth to derivation-batch-verify; align hoodi snap… #92's WIP test-derivation doc.

Docs/config correctness:

  • Correct L1_BEACON_CHAIN_RPC comments: it is required at startup in both verify modes.
  • Use the real published morph-main node image tag 0.6.0 instead of the provisional 0.5.8.

Verified

  • docker compose config: services = geth, node only; default MORPH_NODE_DERIVATION_VERIFY_MODE=""; validator targets resolve it to layer1 (shell env overrides env-file).
  • make -n for all node/validator/binary/quickstart targets → correct invocations.
  • All shell scripts parse clean; no dangling refs to removed targets/files.
  • Local compile verification passed on darwin/arm64 with go 1.24.13:
    • go-ethereum @ 0eda191 (morph-v2.2.4): make geth → exit 0
    • morph/node @ f96a4775 with tendermint v0.3.8 dep: make morphnode → exit 0

Cross-repo issue morph-l2/morph#989 won't auto-close; close manually if applicable.

🤖 Generated with Claude Code

…92 + #100)

Version matrix:
- go-ethereum -> morph-v2.2.4 (0eda191)
- morph       -> main f96a4775 (single-sequencer network config); its node/go.mod
  pins github.com/morph-l2/tendermint v0.3.8 (a5de063), so tendermint enters as a
  build-time dep, not a submodule/service here
- docker images: geth 2.2.3 -> 2.2.4, node 0.5.7 -> 0.5.8 (provisional; must point
  to a morph-main build with --derivation.verify-mode before merge)

Single self-verifying node (PR #100):
- remove the separate validator docker-compose service; merge its env into the
  single node and expose DERIVATION_VERIFY_MODE (--derivation.verify-mode:
  local default / layer1 = former validator behavior)
- run-binary.sh drops its node|validator mode arg
- keep run-validator* Makefile commands as wrappers that run the SAME node with
  verify-mode=layer1 (no separate container)

Legacy cleanup:
- remove ZK legacy: .env_zk, .env_hoodi_zk, entrypoint-geth-zk.sh, all run-zk-* /
  *-zk-snapshot targets, and the ZK README snapshot tables
- .env_hoodi: restore NODE_EXTRA_FLAGS=--hoodi (else node -> network=dev and fails
  "L1 Sequencer contract address is required")
- align env snapshots/heights to README newest MPT (mainnet 20260701-1, hoodi 20260630-1)

WIP: node:0.5.8 tag provisional; make build not yet run in this environment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@curryxbo

curryxbo commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

Local compile verification passed (go 1.24.13, darwin/arm64):

  • go-ethereum @ 0eda191 (morph-v2.2.4): make geth → exit 0.
  • morph/node @ f96a4775 (tendermint v0.3.8 dep): make morphnode → exit 0. (Only benign ld macOS-version warnings on the prebuilt zstd static lib.)
  • Built morphnode contains derivation.verify-mode (4×) and the --validator → --derivation.verify-mode=layer1 deprecation alias — verify-mode / single-sequencer code is present.

Note: morph pulls geth as a Go module pinned to v1.10.14-...-0eda19148ddd (= morph-v2.2.4), so the build doesn't depend on the nested submodule state.

Remaining before merge: replace provisional node:0.5.8 with the real published morph-main image tag.

…p/rm aliases

- Bump node image 0.5.8 -> 0.6.0 (real published morph-main build; 0.5.8 never existed on ghcr)
- Correct L1_BEACON_CHAIN_RPC comments: it is required at startup in BOTH verify
  modes (the node exits without it), not only on the layer1 path
- Restore stop-validator / rm-validator as aliases of stop-node / rm-node so the
  old validator command surface stays fully backward-compatible (they now operate
  on the single morph-node container)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@curryxbo curryxbo marked this pull request as ready for review July 16, 2026 08:42
@curryxbo curryxbo changed the title WIP: adapt to centralized single-sequencer (tendermint v0.3.8 / geth morph-v2.2.4) — integrate #92 + #100 adapt to centralized single-sequencer (tendermint v0.3.8 / geth morph-v2.2.4) — integrate #92 + #100 Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant