Skip to content

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

Draft
curryxbo wants to merge 1 commit into
mainfrom
feat/centralized-sequencer-single-node
Draft

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

Conversation

@curryxbo

@curryxbo curryxbo commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

WIP / draft. 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.5.8 ⚠️ provisional

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.

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.

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.

⚠️ Before merge

  1. node image tag 0.5.8 is a provisional increment — repoint to the real published morph-main build (0.5.7 predates verify-mode).
  2. make build not yet run (sandbox limits + stale prebuilt binaries) — confirm morph main + geth 2.2.4 compile locally.

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.

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