docs(node-operation): single node type, verify-mode, drop deprecated zkTrie migration (#988)#148
docs(node-operation): single node type, verify-mode, drop deprecated zkTrie migration (#988)#148curryxbo wants to merge 7 commits into
Conversation
…h-l2/morph#988) - Remove the separate "validator node" page; there is one node type now. - Document DERIVATION_VERIFY_MODE on the node page: local (default, rebuild + compare versioned hashes vs L1) vs layer1 (pull beacon blob + derive via engine, equivalent to the former validator). Remind operators to set layer1 for the old validator-like L1-derivation behavior. - Drop the now-removed `make run-validator` commands from the docker upgrade guide. - Remove validator-node entry from the node-operators sidebar. Ref morph-l2/morph#966 (Feat: Sequencer Final PR) for the verify-mode behavior.
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ❌ Deployment failed View logs |
pre-rail | e999eec | Jul 16 2026, 07:21 AM |
|
Warning Review limit reached
Next review available in: 43 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis PR consolidates validator behavior into full-node configuration through ChangesValidator Node Consolidation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related issues
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@docs/build-on-morph/developer-resources/node-operation/full-node/1-run-in-docker.md`:
- Around line 199-203: The fenced log example in the docs is missing a language
tag which triggers markdownlint; update the fenced block around the log line
(`root hash or withdrawal hash is not equal originStateRootHash=0x...
deriveStateRootHash=0x...`) to include a language tag such as `text` (i.e.,
change ``` to ```text) so the markdown linter passes and the docs build cleanly.
- Around line 11-13: The callout's claim that there is "no longer a separate
'validator node' to run" should be softened and scoped to this specific guide to
avoid contradiction with other pages; update the text around the "Single node
type" callout to prefix it with a scope qualifier like "In this guide," or "For
this walkthrough," and avoid site‑wide absolutes, while keeping the existing
details about DERIVATION_VERIFY_MODE and the 'layer1' option and linking to
"Batch verification mode"; optionally add a short cross‑reference noting that
other docs (e.g., the integration one‑page) may still reference a separate
validator node and will be updated separately.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 84b991d1-81b3-459f-933f-09c39667bc69
📒 Files selected for processing (4)
docs/build-on-morph/developer-resources/node-operation/full-node/1-run-in-docker.mddocs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.mddocs/build-on-morph/developer-resources/node-operation/validator-node/1-run-in-docker.mdsidebars.js
💤 Files with no reviewable changes (3)
- docs/build-on-morph/developer-resources/node-operation/validator-node/1-run-in-docker.md
- docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md
- sidebars.js
Mainnet/Hoodi have been on MPT for a long time; the migration guide is no longer needed. Remove the page, its sidebar entry, and the inbound links from the full-node page (tip) and prune-state (caution).
New Upgrade Node page for operators with an already-running node: in-place upgrade steps, env vars now required for all nodes, DERIVATION_VERIFY_MODE (local default / layer1 = former validator), and a caution to upgrade before the consensus switch height.
… is new Confirmed against morph node/derivation/config.go: BeaconRpc is the only required field (errors if empty); rollup/deposit/heights use per-network defaults. So upgrading the binary is enough; former validators just add DERIVATION_VERIFY_MODE=layer1.
…encer upgrade A validator is now the single node run in layer1 mode; the old run-morph-node validator commands still work unchanged. Only the separate validator container is gone. Keep the note concise rather than listing every command. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md`:
- Around line 58-60: Update the fenced log block in the upgrade-node
documentation to use the text language identifier by changing its opening fence
to ```text, while leaving the logged content unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 5cd59d4e-395b-4e16-befa-6026ee8fdd3f
📒 Files selected for processing (2)
docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.mdsidebars.js
🚧 Files skipped from review as they are similar to previous changes (1)
- sidebars.js
…tion schedule The consensus switch to the centralized sequencer is triggered by a fixed L2 block timestamp (MORPH_NODE_SEQUENCER_UPGRADE_TIME, per-network defaults selected by --mainnet/--hoodi), not a block height. Fix the wording that described it as a "block height" and drop the reference to the non-existent CONSENSUS_SWITCH_HEIGHT variable. Add an Activation schedule section with the concrete per-network activation times and target versions, so operators have a firm deadline and the exact version to upgrade to: - Mainnet: 2026-07-28 06:00:00 UTC (1785218400000) - Hoodi: 2026-07-21 06:00:00 UTC (1784613600000) - Versions: node v0.6.0 / go-ethereum morph-v2.2.4 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md`:
- Line 42: Update the centralized sequencer upgrade instructions to explicitly
include upgrading the go-ethereum/geth image or binary to morph-v2.2.4 or newer,
and add a corresponding version check or a direct link to the host/Docker
upgrade guide covering that step.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 86ddee9b-3d66-4d81-95a3-e5b979f808ac
📒 Files selected for processing (1)
docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md
| | Mainnet | 2026-07-28 06:00:00 | `1785218400000` | `--mainnet` | | ||
| | Hoodi | 2026-07-21 06:00:00 | `1784613600000` | `--hoodi` | | ||
|
|
||
| Target versions: node **v0.6.0** · go-ethereum **morph-v2.2.4**. Upgrade to these (or newer) before the activation time for your network. |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Inspect the target document and related references.
sed -n '1,140p' docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md
printf '\n--- SEARCH: go-ethereum mentions in upgrade docs ---\n'
rg -n "go-ethereum|morph-v2\.2\.4|v0\.6\.0|execution client|docker|build workflow|upgrade" docs/build-on-morph/developer-resources/node-operation/upgrade-node -S
printf '\n--- SEARCH: node v0.6.0 / morph-v2.2.4 references repo-wide ---\n'
rg -n "morph-v2\.2\.4|v0\.6\.0|go-ethereum" docs -SRepository: morph-l2/morph-doc
Length of output: 16231
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file="docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md"
# Show the full document with line numbers around the cited lines.
nl -ba "$file" | sed -n '1,120p'
printf '\n--- SEARCH IN FILE ---\n'
rg -n "go-ethereum|morph-v2\.2\.4|v0\.6\.0|Docker|image|binary|execution client|version check|check version|upgrade" "$file" -S
printf '\n--- REPO-WIDE RELATED REFERENCES ---\n'
rg -n "morph-v2\.2\.4|go-ethereum|execution client" docs -SRepository: morph-l2/morph-doc
Length of output: 196
🌐 Web query:
"docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md go-ethereum morph-v2.2.4"
💡 Result:
The file path docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md refers to a documentation guide added to the Morph L2 ecosystem to assist node operators with specific upgrade procedures related to the network's sequencer architecture [1]. Regarding the context of morph-v2.2.4 and go-ethereum: 1. Evolution of the Sequencer: Morph has been actively transitioning from legacy PBFT-based consensus towards a Rollup-style sequencer architecture [2]. This involves moving away from centralized sequencing models [2]. 2. Release Context: The morph-v2.2.x series, specifically starting with the Jade upgrade (v2.2.0), introduced significant changes including the transition from zkTrie to MPT (Merkle Patricia Trie) and mandatory fork activations [3][4][5]. Subsequent patch releases like v2.2.3 focused on upstream synchronization with go-ethereum (v1.16.3 to v1.16.7), bug fixes, and stability improvements [6][4]. 3. Upgrade Guide Purpose: The specific file mentioned (0-centralized-sequencer-upgrade.md) was introduced to guide operators through the technical requirements for upgrading nodes in this environment [1]. Key aspects covered in such guides typically include in-place upgrade steps, mandatory environment variables (such as DERIVATION_VERIFY_MODE), and critical warnings to perform upgrades before designated consensus switch heights or fork activation times [1]. As of July 2026, Morph is transitioning toward a decentralized sequencer network, with significant consensus upgrades scheduled for late July 2026 [7]. Node operators should always consult the official Morph documentation and the latest release notes on the morph-l2/go-ethereum GitHub repository for the most accurate and version-specific configuration instructions [6][4].
Citations:
- 1: 15b0bba
- 2: Migrate the existing PBFT consensus to a Rollup-style sequencer architecture morph#873
- 3: https://github.com/morph-l2/go-ethereum/releases/tag/morph-v2.2.0
- 4: https://github.com/morph-l2/go-ethereum/releases
- 5: https://blog.morph.network/jade-upgrade/
- 6: https://github.com/morph-l2/go-ethereum/releases/tag/morph-v2.2.3
- 7: https://blog.morph.network/introduction-to-decentralized-sequencer-network/
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Inspect the related upgrade guides that handle geth explicitly.
for file in \
docs/build-on-morph/developer-resources/node-operation/upgrade-node/1-upgrade-node-host.md \
docs/build-on-morph/developer-resources/node-operation/upgrade-node/2-upgrade-node-docker.md
do
printf '\n===== %s =====\n' "$file"
sed -n '1,140p' "$file"
doneRepository: morph-l2/morph-doc
Length of output: 4113
Call out the go-ethereum upgrade here. The target release includes morph-v2.2.4, but the steps only mention updating the node image/binary. Add the geth image/binary bump and a version check here, or link directly to the host/Docker upgrade guide that does it.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@docs/build-on-morph/developer-resources/node-operation/upgrade-node/0-centralized-sequencer-upgrade.md`
at line 42, Update the centralized sequencer upgrade instructions to explicitly
include upgrading the go-ethereum/geth image or binary to morph-v2.2.4 or newer,
and add a corresponding version check or a direct link to the host/Docker
upgrade guide covering that step.
…tor-node reference - Add `text` language to the two mismatch-log fenced blocks (markdownlint MD040) in the full-node and centralized-sequencer pages. - integration-one-page: drop the "and validator node" phrasing so it no longer contradicts the single-node model (fixed the stale reference rather than softening the accurate statement on the full-node page). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Closes morph-l2/morph#988
What
Update the node operation docs for the single-node model (issue morph-l2/morph#988; aligns with run-morph-node PR morph-l2/run-morph-node#100, verify-mode behavior from morph-l2/morph#966).
Changes
DERIVATION_VERIFY_MODE:local(default): rebuild blob from local L2 + compare versioned hashes vs L1.layer1: pull L1 beacon blob + derive via engine — equivalent to the former validator node. Reminder: setlayer1for that old validator-style L1-derivation behavior.make run-validator/make stop-validatorcommands.MORPH_NODE_SEQUENCER_UPGRADE_TIME, per-network defaults from--mainnet/--hoodi), not a block height; drop the non-existentCONSENSUS_SWITCH_HEIGHT. Add an Activation schedule section with per-network activation times (Mainnet 2026-07-28 06:00 UTC /1785218400000, Hoodi 2026-07-21 06:00 UTC /1784613600000) and target versions (node v0.6.0 · go-ethereum morph-v2.2.4).Scope
Limited to the node-operation module. No style rewrites; unrelated outdated content left untouched. Verified with a local
pnpm build(exit 0, no broken links underonBrokenLinks: 'throw').🤖 Generated with Claude Code
Summary by CodeRabbit
DERIVATION_VERIFY_MODE(uselayer1for former validator behavior).localvslayer1) and added a sample mismatch log.