-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Migrating to permissionless fault proofs on OP Stack #1539
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for docs-optimism ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
📝 WalkthroughWalkthroughThe changes introduce a new tutorial titled "Migrating to permissionless fault proofs on OP Stack" within the documentation for chain operators. A new card has been added to the existing list of tutorial cards in the Suggested reviewers
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (2)
244-246
: Typographical refinement for compound terms.Consider hyphenating "counter claim" to "counter-claim" for consistency and clarity, as recommended by standard documentation style guidelines.
🧰 Tools
🪛 LanguageTool
[misspelling] ~245-~245: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
95-119
: Minor style consideration for technical terms.Verify that the usage of the term “prestate” is aligned with the project’s established nomenclature (as defined in nouns.txt). Consistent terminology in technical documentation improves clarity.
🧰 Tools
🪛 LanguageTool
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...(A_INFINITIVE)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
pages/operators/chain-operators/tutorials.mdx
(1 hunks)pages/operators/chain-operators/tutorials/_meta.json
(1 hunks)pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)words.txt
(0 hunks)
💤 Files with no reviewable changes (1)
- words.txt
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials.mdx
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...
(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...
(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...
(A_INFINITIVE)
[misspelling] ~245-~245: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~250-~250: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
🔇 Additional comments (6)
pages/operators/chain-operators/tutorials/_meta.json (1)
1-9
: New metadata entry is correctly added.The new key
"migrating-permissionless"
with the description"Migrating to permissionless fault proofs on OP Stack"
is correctly structured and integrated within the JSON object. The file remains well-formatted and consistent with existing entries.pages/operators/chain-operators/tutorials.mdx (3)
1-22
: Frontmatter validation.The frontmatter section includes all the necessary fields: title, lang, description, topic, personas, categories, and content_type. All values are non-empty and conform to the documentation guidelines.
41-42
: New tutorial card added as expected.The card with the title "Migrating to permissionless fault proofs on OP Stack" and the corresponding link (
href="/operators/chain-operators/tutorials/migrating-permissionless"
) has been inserted appropriately. Please confirm that the referenced tutorial document exists at the target path.
39-43
: Tutorial card ordering consistency.The new card appears to be placed logically among the other tutorial entries. Verify that this ordering meets the overall design and navigation flow for chain operators.
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (2)
1-18
: Frontmatter is complete and correct.All required metadata fields (title, description, lang, content_type, topic, personas, categories, and is_imported_content) are present and properly populated, conforming to the documentation standards.
20-308
: Well-structured tutorial content.The document provides a comprehensive, step-by-step guide covering prerequisites, configuration details, deployment commands, and testing procedures for migrating to permissionless fault proofs. Headings, code blocks, and instructions enhance readability and clarity.
🧰 Tools
🪛 LanguageTool
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...(A_INFINITIVE)
[misspelling] ~245-~245: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~250-~250: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (5)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (5)
20-23
: Title and Introduction Clarity
The title and introductory lines clearly state the guide’s purpose and target audience. For consistency, consider changing “technical decision makers” to “technical decision-makers.”
93-118
: Building Required Prestates for Non-Registry Chains
This section offers detailed steps for generating prestates. Note that several bullet points use phrases like “The prestate used for permissioned games.”
Please consider verifying that the use of “prestate” (following the definite article) is the intended domain-specific term. If a neutral form is preferred, you might change it to “a prestate used for…” to improve clarity.🧰 Tools
🪛 LanguageTool
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...(A_INFINITIVE)
190-200
: Initializing Bond Amounts
The commands for setting bond amounts to exactly 0.08ether are presented clearly. It may be worthwhile to confirm whether the command’s syntax expects a space (i.e. “0.08 ether”) or if it is correct as shown.
243-247
: Verification Expectations for Valid Proposals
The bulleted list of expected outcomes (such as logging messages and claim statuses) is useful. Note that “counter claim” appears without a hyphen; for consistency with common usage, consider revising it to “counter-claim.”🧰 Tools
🪛 LanguageTool
[misspelling] ~245-~245: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
248-260
: Testing Off-Chain Agents – Countering Invalid Claims
The command for posting an invalid counter-claim is clearly documented. Again, ensure that the accompanying text uniformly uses “counter-claim” (with a hyphen) to be consistent.🧰 Tools
🪛 LanguageTool
[misspelling] ~250-~250: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...
(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...
(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...
(A_INFINITIVE)
[misspelling] ~245-~245: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~250-~250: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (16)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (16)
1-18
: Frontmatter and Metadata Validation
The frontmatter includes all required metadata fields (title, description, lang, content_type, topic, personas, and categories) and they are properly populated.
24-34
: Overview Section Overview
The overview succinctly explains the benefits and purpose of transitioning from permissioned to permissionless fault proofs. The language is clear and matches the documentation tone.
35-41
: Prerequisites Section
The prerequisites are well listed and ensure that users verify key conditions (such as running a standard OP Stack implementation and using recommended infrastructure services).
50-67
: Dispute Monitoring Setup – Upgrade and Network Configuration Commands
The code blocks for upgrading the op‑challenger (lines 50–55) and updating the network configuration (lines 57–67) are clear and actionable. Ensure that the specified branch (op‑challenger/v1.3.3) is verified for your deployment’s compatibility.
69-81
: Cannon Trace Type Setup
The instructions, including both the flag usage and environment variable setup for enabling the cannon trace type, are clear and complete.
83-89
: Prestates Access Configuration
Using the--prestates-url
flag is clearly explained, and naming conventions for prestates are provided. This section is well structured.
120-127
: Sufficient Funds for Bonds
The guidelines for maintaining a minimum balance and having ample funds for attack scenarios are clearly stated.
128-132
: op‑dispute‑mon Setup
The instructions to set upop-dispute-mon
are concise and include a useful link for further details. It would be a good idea to periodically verify that the link remains current.
141-149
: OPCM Deployment Instructions
The steps for cloning, installing, and configuring OPCM are clearly documented and appropriate for the intended audience.
151-167
: Configuring Game Implementations with OPCM
The code block for executing the deployment commands using OPCM is clear, with placeholders that indicate where specific chain parameters are required.
168-188
: AnchorStateRegistryProxy Upgrade Process
The multi-stage upgrade instructions—including switching to the StorageSetter and then reverting with initialization—are detailed and clear.
204-212
: Privileged Roles Explanation
The section on ProxyAdmin Owner and Guardian roles is precise and informative, with a clear reference link for additional context.
214-241
: Testing Off-Chain Agents – Valid Proposals
The detailed steps (with commands for casting blocks and creating test games) for defending valid proposals are well structured and straightforward.
263-268
: Listing Claims Command
The command provided to list claims is straightforward and complements the invalid claim test well.
295-302
: Next Steps Section
The list of additional resources and links offers valuable next steps for the reader. The content is well presented.
303-307
: Conclusion Section
The conclusion effectively summarizes the guide’s purpose and the benefits of migrating to permissionless fault proofs. The language is clear and motivational.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (4)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (4)
91-119
: Building Required Prestates for Non-registry Chains
This section thoroughly explains the need for two distinct prestates and provides step-by-step instructions to build them. Note that the term “prestate” (as used in “The prestate used for permissioned games” and “The prestate matching thefaultGameAbsolutePrestate
configuration”) has been flagged by static analysis. Although it is domain specific, verify that this usage corresponds to the accepted terminology in your glossary.🧰 Tools
🪛 LanguageTool
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...(A_INFINITIVE)
244-248
: Consistent Terminology for Counter-Claim
The bullet point notes that "op-challenger
doesn't post a counter claim" when a valid proposal is submitted. Consider standardizing this term to “counter‑claim” (with a hyphen) to align with industry conventions and the suggestions from static analysis.🧰 Tools
🪛 LanguageTool
[misspelling] ~246-~246: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
249-269
: Test Countering Invalid Claims
The procedure for posting an invalid counter‑claim and verifying the outcome is comprehensive. As with the previous section, consider using “counter‑claim” consistently throughout this segment.🧰 Tools
🪛 LanguageTool
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
309-309
: Remove Trailing Artifact
Line 309 appears to contain an extraneous artifact (a stray number). It is recommended to remove this line to ensure the document remains clean and professional.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...
(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...
(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...
(A_INFINITIVE)
[misspelling] ~246-~246: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (23)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (23)
1-18
: Frontmatter Verification
The frontmatter contains all the required metadata fields (title, description, lang, content_type, topic, personas, categories, and is_imported_content) and appears well-formed. Please ensure that the values continue to align with the project’s metadata standards.
20-23
: Header and Introduction Clarity
The main header and introductory paragraph clearly communicate the scope of the guide. The title uses proper nouns (e.g., OP Stack) accurately, and the text is appropriately directed at technical decision makers and implementation teams.
24-34
: Overview Section Review
The Overview section effectively outlines the key components of the migration. The bullet list is comprehensive, and the embedded link for “monitoring services” appears correct. Ensure that all referenced documentation remains up-to-date.
35-41
: Prerequisites Section
The prerequisites are clearly listed, ensuring that users are aware of the necessary chain configuration and infrastructure requirements before starting the migration.
42-56
: Configure the Dispute Monitoring Stack
The instructions for upgradingop-challenger
are clear and include a well-documented bash code snippet. It is advisable to double-check that version "1.3.3 or later" aligns with current best practices and security requirements.
57-68
: Update Network Configuration
The steps for updating the network configuration are concise. The clear distinction between chains in the registry and those outside is beneficial for users configuring their network settings.
69-76
: Enable Cannon Trace Type
The command provided to enable the cannon trace type is straightforward and serves the purpose of supporting both permissioned and permissionless game types.
77-82
: Environment Variable Setup for Trace Type
Presenting the alternative of using an environment variable offers flexibility. The instructions here are clear and correctly formatted.
83-90
: Configure Prestates Access
The guide clearly describes replacing the--cannon-prestate
flag with--prestates-url
and details the acceptable protocols for the URL. Consider adding a brief note or link for users who might be less familiar with prestates.
120-128
: Ensure Sufficient Funds for Bonds
The bond requirements are clearly defined, including a minimum balance and contingency measures. This level of detail is critical for operational security and financial planning.
129-132
: Configure op-dispute-mon
A brief but effective pointer to the steps for configuringop-dispute-mon
is provided. Just make sure that the linked instructions remain consistent with the current tool version.
133-151
: Deploy and Configure Smart Contracts Using OPCM
The instructions for cloning the repository, installing dependencies, and setting up the configuration file for OPCM are clear and actionable.
152-169
: Set Game Implementations with OPCM
The walkthrough for callingsetImplementation
on theDisputeGameFactoryProxy
is detailed and includes necessary placeholders. Ensure that users replace the placeholder values with their specific contract addresses and prestate hashes.
170-190
: Upgrade AnchorStateRegistryProxy
The dual-step upgrade process (first to aStorageSetter
and then back to the proper implementation) is well explained. Confirm that the sequence of commands is validated in a test environment before production deployment.
191-203
: Initialize Bond Amounts
The commands to set bond amounts to exactly 0.08 ETH for both game types are clearly noted. Verify that the format (e.g., "0.08ether") is accepted by OPCM or consider clarifying the format if needed.
205-214
: Clarify Roles: ProxyAdmin Owner and Guardian
This section clearly differentiates the responsibilities of the ProxyAdmin Owner and Guardian. The definitions are precise and linked to additional documentation, which is helpful for users needing further clarification.
215-234
: Testing Off-Chain Agents Introduction
The introduction to the testing section successfully outlines the need to verify off-chain monitoring services prior to enabling permissionless proofs.
224-242
: Test Defending Valid Proposals
The step-by-step instructions, including obtaining a block, retrieving an output root, and creating a test game, are detailed and clear. Be sure that any placeholder texts (e.g.,<SIGNER_OPTIONS>
) are well explained elsewhere in the documentation.
271-273
: Verification of Test Outcome
The expectation that there should be 3 claims in the game after the test provides clear validation criteria. Ensure that this number accurately reflects the intended behavior in the dispute game.
274-282
: Switch to Permissionless Proofs
The instructions to set therespectedGameType
on theOptimismPortal
and switch the system to permissionless proofs are precise. Confirm that “CANNON” is correctly referenced as game type0
per the system’s specification.
283-295
: Configure op-proposer for Permissionless Proposals
The adjustments for the op‑proposer configuration—both via CLI flags and an environment variable—are clear and pragmatic. This ensures that game type configuration is consistent across the system.
296-303
: Next Steps Section
The list of recommended next steps and external documentation provides a comprehensive roadmap for further actions. Verify that all URLs and linked documents are current and accessible.
304-308
: Conclusion Section
The conclusion effectively summarizes the transition process and reinforces the importance of thorough testing and security monitoring. The tone is formal and appropriately directive.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (2)
91-119
: Building Required Prestates
The process for building prestates is detailed and provides step-by-step instructions, which are very helpful.
- Nitpick: The phrase “The prestate used for permissioned games” (and similar phrases in this block) might be clearer if rephrased to “The prestate file used for permissioned games.” This change can reduce potential grammatical ambiguities regarding the use of “prestate” as a noun.
🧰 Tools
🪛 LanguageTool
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...(A_INFINITIVE)
250-261
: Testing Counter-Claims for Invalid Proposals
The section on posting an invalid counter-claim is clear and instructive.
- Nitpick: Consider using “counter-claim” (with a hyphen) instead of “counter claim” to conform to industry-standard spelling. For example:
- Post an invalid counter claim to the valid proposal created above: + Post an invalid counter-claim to the valid proposal created above:🧰 Tools
🪛 LanguageTool
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~97-~97: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate used for permissioned games 2. The pre...
(A_INFINITIVE)
[grammar] ~98-~98: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate used for permissioned games 2. The prestate matching the `faultGameAbsolutePrestate...
(A_INFINITIVE)
[grammar] ~117-~117: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...
(A_INFINITIVE)
[misspelling] ~246-~246: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
🔇 Additional comments (22)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (22)
1-18
: Frontmatter Metadata Complete and Correct
The frontmatter section includes all the required fields (title, lang, description, content_type, topic, personas, and categories) with non-empty values. Consider verifying whether theis_imported_content
field should be a boolean instead of a string for consistency with other metadata definitions (if applicable).
20-23
: Title and Introduction Clarity
The title and introductory paragraph clearly state the guide’s purpose and are well aligned with the PR objectives. The use of language is concise and accessible for the intended technical audience.
24-34
: Overview Section Effectiveness
The "Overview" section provides a clear summary of the migration and outlines the key components involved. The bullet points help to break down the process effectively. Consider adding links or references to further internal documentation where relevant to enhance cross-referencing.
35-41
: Prerequisites Section
The prerequisites are clearly stated and form a solid foundation for the guide. It may be beneficial to review these requirements periodically to ensure they remain current with the latest OP Stack standards.
42-55
: Dispute Monitoring Stack Configuration
The instructions for configuring theop-challenger
and the accompanying shell command examples are clear and actionable. This section effectively communicates the upgrade process.
57-68
: Network Configuration Instructions
The guidance on updating the network configuration is well-organized, with clear differentiation for chains in and out of the Superchain Registry. The code block formatting is also correct.
69-76
: Enabling Cannon Trace Type
Both the direct command-line flag and environment variable approaches are presented clearly. The instructions are concise and leave little room for ambiguity.
77-90
: Configuring Prestates Access
The switch from the--cannon-prestate
flag to--prestates-url
is documented clearly, along with the explanation of acceptable protocols and file naming conventions.
120-128
: Ensuring Sufficient Funds for Bonds
The guidelines for maintaining funds to support bond postings are clear and practical. The inclusion of specific ETH amounts provides actionable advice for chain operators.
129-132
: Setting Up op-dispute-mon
The link and brief instructions for configuringop-dispute-mon
are well integrated. This section effectively connects the setup with the overall monitoring strategy.
133-151
: Deploying and Configuring Smart Contracts with OPCM
The steps for using OPCM, including cloning the repository, installing dependencies, and configuring the JSON file, are clear and well structured. Ensure that any required modifications toconfig.json
are documented elsewhere if not covered in this guide.
152-168
: Setting Game Implementations
The instructions for executing smart contract upgrades via OPCM are precise, articulating the necessary parameters for both permissionless and permissioned game types. The bash code block is well formatted.
169-190
: AnchorStateRegistry Upgrade Process
The two-step upgrade for theAnchorStateRegistryProxy
is clearly explained, including the temporary switch to theStorageSetter
contract followed by reverting to the proper implementation. This clear delineation minimizes potential confusion.
191-201
: Initializing Bond Amounts
Setting the bond amounts for both game types to exactly 0.08 ETH is clearly stated. The command examples are direct and align with the PR goals.
205-213
: ProxyAdmin Owner and Guardian Roles Explained
This section provides a detailed explanation of the roles and their responsibilities. The segmentation of privileges between the ProxyAdmin Owner and the Guardian is clear and informative.
215-223
: Testing Off-Chain Agents Overview
The introductory part of the testing section sets clear expectations for the later, more detailed test instructions. It successfully emphasizes the importance of thorough testing before switching to permissionless proofs.
224-233
: Testing Valid Proposals
Instructions for testing valid proposals, including usingcast
commands to check block status and output roots, are clear, precise, and practical for ensuring system integrity.
234-242
: Test Game Creation Procedures
The step-by-step commands for creating a test game are well laid out. It might be useful to include additional documentation for the<SIGNER_OPTIONS>
placeholder to guide users who might be unfamiliar with it.
263-271
: Listing Claims Post-Countering
The instructions for listing claims after submitting a counter-claim are straightforward. Specifying that there should be three claims in the game provides a clear validation checkpoint.
273-295
: Switching to Permissionless Proofs
The steps for switching the chain to permissionless proofs—including the setting of therespectedGameType
and configuringop-proposer
—are presented in a clear and actionable manner.
296-303
: Next Steps Guidance
The "Next steps" section offers a curated list of additional resources and documentation links, which is helpful for users seeking further information.
304-309
: Conclusion Section Summary
The conclusion effectively recaps the process and reinforces the importance of thorough testing and configuration during the migration. The language is clear and encouraging.
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
|
||
### Configure prestates access | ||
|
||
Replace the `--cannon-prestate` flag with `--prestates-url`, which points to a source containing all required prestates: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The prestate commitment is a hash, the prestate is the preimage of that commitment hash. So I'd stick with "prestates" here.
--prestates-url <URL_TO_PRESTATES_DIRECTORY> | ||
``` | ||
|
||
The URL can use `http`, `https`, or `file` protocols. Each prestate should be named as `<PRESTATE_HASH>.json` or `<PRESTATE_HASH>.bin.gz`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd stick with prestate as above.
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
…less.mdx Co-authored-by: soyboy <[email protected]>
…less.mdx Co-authored-by: soyboy <[email protected]>
…less.mdx Co-authored-by: soyboy <[email protected]>
…less.mdx Co-authored-by: soyboy <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (5)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (5)
167-174
: Smart Contract Upgrade Steps (Part 1).
The instructions for setting the game implementations are detailed and actionable. Note the<TODO>
placeholders; please ensure these are replaced with specific command details before final publication.
186-189
: Smart Contract Upgrade Steps (Part 2).
The steps for upgrading theAnchorStateRegistryProxy
contain<TODO>
markers. It is important to provide concrete command examples once available.
191-195
: Initialization of Bond Amounts.
The step instructing the initialization of bond amounts is clear; however, the<TODO>
marker indicates that concrete instructions are still pending. Please update this section with the final details.
218-242
: Test Defending Valid Proposals.
The steps for testing valid proposals are detailed and precise. As a minor note, in the verification bullet, consider hyphenating “counter claim” as “counter-claim” to follow standard compound formatting.🧰 Tools
🪛 LanguageTool
[misspelling] ~240-~240: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
243-255
: Test Countering Invalid Claims.
The instructions for posting an invalid counter-claim are clear and complete. Again, consider using “counter-claim” (with a hyphen) throughout the document for consistency.🧰 Tools
🪛 LanguageTool
[misspelling] ~245-~245: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will be generated at `op-program/bin/pr...
(A_INFINITIVE)
[misspelling] ~240-~240: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~245-~245: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (21)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (21)
1-18
: Frontmatter is complete and correctly structured.
All required fields (title, lang, description, topic, personas, categories, and content_type) are present and non-empty, in full compliance with the documentation guidelines.
20-20
: Valid Import Statement.
The import of theCallout
component from'nextra/components'
is correct and clear.
22-23
: H1 Header Formatting.
The title "Migrating to permissionless fault proofs on OP Stack" is appropriately formatted with sentence case and correct capitalization for proper nouns. Ensure consistency with other tutorial titles.
24-31
: Overview Section Clarity.
The introductory paragraphs clearly outline the guide’s purpose and provide context for transitioning from permissioned to permissionless fault proofs. The use of technical terms is consistent and understandable.
55-60
: Upgrade Command Clarity.
The bash commands for upgradingop-challenger
are well-documented. Consider adding a brief note that these commands may need to be adjusted based on your specific deployment environment.
66-72
: Network Configuration Instructions.
The code block clearly differentiates between chains listed in the registry and those requiring a custom rollup configuration, making it easy for operators to follow the instructions.
78-86
: Cannon Trace Type Setup.
Both the flag-based and environment variable methods for enabling the cannon trace type are clearly presented and correct.
90-94
: Prestates Access Configuration.
Replacing the--cannon-prestate
flag with--prestates-url
is clearly explained with an appropriate code snippet.
99-104
: Building Required Prestates.
The instructions for the two required prestates are concise and clear. The term “prestate” is used consistently as domain-specific terminology. If this usage is standard within your project, it is acceptable.🧰 Tools
🪛 LanguageTool
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
105-111
: Informative Callout Component.
The callout effectively explains why two separate prestates are necessary. This additional context is valuable for chain operators who may be unfamiliar with the nuances of prestate generation.
115-129
: Prestate Generation Commands.
The bash commands provided for generating prestates are thorough. However, please verify that the use of the--exec.prestate
flag is up-to-date with the latest tool documentation.
131-132
: Prestate Output Explanation.
The statement regarding the generated prestate file location (op-program/bin/prestate.json
orprestate.bin.gz
) is clear and informative.
133-142
: Sufficient Funds Guidelines.
The recommendations for maintaining a sufficient ETH balance for bonds are clear and actionable. This section provides a practical checklist for operators.
143-145
: Dispute Monitoring Configuration.
The reference to theop-dispute-mon
configuration steps is precise. Ensure that the linked URL remains current.
147-150
: Deployment Section Introduction.
The introduction to the smart contracts deployment using OPCM is clear and highlights the need for privileged actions. This sets correct expectations for the readers.
155-164
: OPCM Deployment Commands.
The commands for cloning, installing, and setting up OPCM are well laid out. The step-by-step instructions will help ensure that users correctly configure their chain’s information.
199-208
: Roles Explanation Clarity.
The description of the responsibilities of the ProxyAdmin Owner and Guardian is succinct and clear, effectively informing operators about these critical roles.
209-217
: Testing Off-Chain Agents Introduction.
The introduction to testing procedures for off-chain agents sets the proper expectations and provides a clear segue into the more detailed testing instructions.
267-289
: Switching to Permissionless Proofs.
The section on switching to permissionless proofs is well-documented, with clear commands for setting the game type via OPCM and configuring the op-proposer. The instructions are straightforward and easy to follow.
290-297
: Next Steps Resource Links.
The "Next steps" section comprehensively lists useful resources and documentation links. This adds significant value by guiding operators to further related materials.
298-302
: Conclusion Summary.
The conclusion succinctly reinforces the benefits of migrating to permissionless proofs and underscores the need for thorough testing. The language is clear and aligns with the document’s overall tone.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🔭 Outside diff range comments (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (1)
318-323
:⚠️ Potential issueConclusion and extraneous content:
The conclusion succinctly summarizes the guide. However, there is an extraneous number “323” at the end of the document that should be removed to prevent confusion.
🧹 Nitpick comments (6)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (6)
98-128
: Building required prestates:
The steps for cloning the repository, checking out a specific branch (op-program/v1.5.0), and generating prestates are comprehensive. The use of the domain-specific flag--exec.prestate
appears intentional; however, consider verifying that the term “prestate” aligns with internal terminology.🧰 Tools
🪛 LanguageTool
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
178-190
: Game implementations placeholder:
This section outlines the smart contract changes needed (such as callingsetImplementation
on theDisputeGameFactoryProxy
) but currently contains a<TODO>
placeholder. Please replace this placeholder with detailed, actionable instructions or a reference to the appropriate documentation to eliminate ambiguity during implementation.
192-208
: AnchorStateRegistryProxy upgrade (legacy instructions):
The section notes that post-upgrade 13 this step is no longer required; however, the associated code snippet still contains a<TODO>
placeholder. Clarification is needed on whether this section should be removed, updated, or expanded with specific instructions for legacy deployments.
210-214
: Bond amount initialization placeholder:
The instructions for initializing bond amounts to exactly 0.08 ETH include a<TODO>
placeholder. It would be helpful to add specific commands or details to guide operators through this process.
229-262
: Testing off-chain agents – valid proposals:
The testing steps for defending valid proposals are clearly explained. As a minor nitpick, consider using the hyphenated form “counter-claim” consistently across the document instead of “counter claim” to align with standard usage.🧰 Tools
🪛 LanguageTool
[misspelling] ~260-~260: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
263-275
: Testing invalid claims:
The steps for posting an invalid counter-claim and verifying its appearance are straightforward. As noted earlier, please use “counter-claim” (with a hyphen) consistently for clarity.🧰 Tools
🪛 LanguageTool
[misspelling] ~265-~265: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[misspelling] ~260-~260: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~265-~265: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (16)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (16)
1-18
: Frontmatter verification:
The frontmatter section includes all required metadata fields (title, lang, description, topic, personas, categories, and content_type) with non-empty values. This meets the documentation guidelines.
20-20
: Import statement verified:
The import for theCallout
component is correctly included for use within the MDX page.
22-30
: Header and introductory overview:
The main header and the overview paragraphs clearly articulate the purpose of the guide. The content is well-structured for chain operators and technical decision-makers alike.
40-46
: Prerequisites section clarity:
The prerequisites are clearly listed, specifying that a standard OP Stack implementation and the recommended infrastructure (with links toop-challenger
andop-dispute-mon
) are required.
47-60
: Dispute components configuration:
The instructions for upgradingop-challenger
are well detailed, including a practical command snippet. Verify that the specified version (v1.3.3) aligns with your operational needs.
62-72
: Network configuration instructions:
The section effectively differentiates between chains in the Superchain Registry and those that require a custom configuration, with clear code examples.
74-80
: Enabling cannon trace type:
The configuration using--trace-type permissioned,cannon
and its environment variable alternative are clearly explained, supporting both permissioned and permissionless setups.
88-94
: Configuring prestates access:
Replacing the--cannon-prestate
flag with--prestates-url
is clearly explained, ensuring users know where to point for the required prestates.
131-135
: Prestate generation outputs:
The bullet list detailing the expected filenames for generated prestates (for older, intermediate, and Cannon MT64–upgraded chains) is informative and well organized.
137-140
: Post-upgrade prestate callout:
The callout effectively communicates that, post-upgrade 14, chains should useprestate-mt64.bin.gz
due to the upgrade in the Fault Proof VM.
142-148
: Guidance on bond funds:
The section clearly explains the importance of maintaining sufficient funds for bonding in permissionless games, with actionable guidelines.
155-157
: Setup for op-dispute-mon:
The instructions, along with the provided link, are clear. It would be beneficial to periodically verify that the linked content remains up to date.
159-177
: OPCM deployment instructions:
The steps for installing and configuring OPCM are detailed and include the necessary command snippets, ensuring clarity for users performing OP Stack upgrades.
219-228
: Privileged roles explanation:
The roles of the ProxyAdmin Owner and Guardian are clearly outlined, with an appropriate reference link for further details. This section is well composed and informative.
287-308
: Switching to permissionless proofs:
The instructions to update therespectedGameType
via OPCM and modify the op-proposer configuration are clear and concise.
310-317
: Next steps and resources:
The “Next steps” section provides a comprehensive list of useful resources and links. Verify that all external links are current and accurate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (6)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (6)
159-173
: OPCM deployment section needs further details.
While the section explains using OPCM for smart contract deployment, the presence of placeholders (e.g.,# Install OPCM <TODO>
) indicates that final installation instructions are pending. Please update these placeholders before final approval.
174-188
: Set game implementations instructions require completion.
The section outlines the intended smart contract changes via OPCM; however, the Bash code block currently only includes a<TODO>
note. Ensure that concrete commands are provided in the final version.
202-205
: StorageSetter upgrade placeholder requires updating.
The code block for “upgrading to the StorageSetter to clear the initialization flag” currently contains a<TODO>
. Replace this with the actual command(s) once finalized.
207-211
: Bond initialization code block is incomplete.
The instructions for initializing bond amounts to exactly 0.08 ETH are provided as a placeholder. Please update this section with the finalized commands before merging.
257-262
: Standardize terminology for counter‑claims.
The phrase “counter claim” appears in the test verification steps, but the static analysis recommends using a hyphen (i.e. “counter‑claim”). Adjust the wording accordingly for consistency and clarity.🧰 Tools
🪛 LanguageTool
[misspelling] ~257-~257: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~262-~262: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
115-130
: Terminology note on "prestate".
Although static analysis flagged the use of “prestate” following articles, this appears to be an accepted technical term within the OP Stack ecosystem. It may be worthwhile to reconfirm that this usage is consistent with other related documentation.🧰 Tools
🪛 LanguageTool
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will typically be generated at: * `o...(A_INFINITIVE)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[misspelling] ~257-~257: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~262-~262: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
🔇 Additional comments (21)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (21)
1-18
: Frontmatter is well structured.
All required metadata fields (title, description, lang, content_type, topic, personas, and categories) are present and non-empty. The additional flagis_imported_content
is also provided.
20-20
: Import statement check.
The import of theCallout
component fromnextra/components
is correctly written and will facilitate styled callouts later in the document.
22-24
: Title and introduction are clear.
The H1 title and introductory paragraph concisely set the scope of the guide, targeting both technical decision makers and implementation teams.
26-32
: Overview section is informative.
The Overview explains the role of Fault Proofs and contrasts permissioned versus permissionless systems. The historical context regarding the single trusted validator is clear.
33-38
: Migration components list is comprehensive.
The bullet list neatly enumerates the key components of the migration process and includes relevant documentation links.
40-46
: Prerequisites section is sufficient.
The prerequisites clearly state the chain requirements and infrastructure services (with helpful links). Consider a periodic review to ensure these links remain current.
47-60
: Upgrade instructions for op‑challenger are clear.
The Bash command snippet for cloning the repository at branchop-challenger/v1.3.3
and building the service is straightforward. Please verify that this branch represents the latest recommended release.
62-72
: Network configuration instructions are concise.
The directions for both registry-backed and custom configurations (via--network
and--network-config
) are well explained.
74-86
: Enabling cannon trace type is well explained.
The guide offers two approaches—direct command-line flags and environment variable setup—which increases flexibility for users.
88-96
: Prestates access configuration is clearly described.
Replacing the--cannon-prestate
flag with--prestates-url
is explained cleanly. It is recommended to double-check that the naming conventions for prestate files (using.json
or.bin.gz
) match upstream documentation.
98-104
: Building custom prestates section is detailed.
The instructions—including cloning the repository, checking outop-program/v1.5.0
, and running the prestate generation commands—provide a solid workflow. The use of the--exec.prestate
flag is noted; please confirm that this flag is correct and consistent with your toolchain’s documentation.Also applies to: 115-130
🧰 Tools
🪛 LanguageTool
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
131-136
: Prestate generation locations are clearly listed.
Listing the typical output files (prestate.json
,prestate.bin.gz
, andprestate-mt64.bin.gz
) helps clarify what users should expect.
137-141
: Post-upgrade 14 callout is informative.
The callout regarding the shift toprestate-mt64.bin.gz
due to the Cannon MT64 upgrade is well articulated and aligns with recent upgrades.
142-152
: Sufficient funds for bonds guidance is practical.
The section on bond requirements provides clear, actionable guidelines. The bullet points help operators ensure adequate fund management during disputes.
154-157
: op‑dispute‑mon setup instructions are clear.
The simple reference with a link to the detailed configuration steps is appropriate. A periodic review of the linked documentation is recommended to keep it updated.
189-197
: AnchorStateRegistryProxy upgrade section is well documented.
The steps for upgrading the proxy (along with the clarifying callout) are clear, especially for chains pre‑Upgrade 13.
216-224
: Roles explanation is concise and accurate.
The section detailing the responsibilities of the ProxyAdmin Owner and Guardian is clearly written and adheres to the documentation style guidelines.
226-283
: Testing off‑chain agents section is thorough.
The test procedures for both defending valid proposals and countering invalid claims are detailed and include comprehensive Bash snippets.🧰 Tools
🪛 LanguageTool
[misspelling] ~257-~257: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~262-~262: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
283-306
: Switching to permissionless proofs is clearly outlined.
The step-by-step instructions for setting therespectedGameType
and modifying the op‑proposer configuration are precise and actionable.
306-314
: Next steps section is useful.
The list of links directs users to additional resources and further documentation, which is invaluable for continued guidance.
316-320
: Conclusion effectively summarizes the guide.
The conclusion reiterates the significance of transitioning to permissionless proofs and encourages thorough testing, aligning well with the overall objectives of the document.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (5)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (5)
33-39
: Migration Components Overview.
The bullet list neatly outlines the key components of the migration process. For consistency, verify that terms such as “op-deployer” follow your project’s noun capitalization standards.
159-168
: Deploying Smart Contracts using OPCM.
The instructions for adding the PermissionlessDisputeGame usingOPCM.addGameType()
are detailed.Suggestion: In the sentence introducing the OPCM method (lines 165–168), consider inserting a comma after “deployment” to improve readability (e.g., “…upon deployment, an
OPCM.addGameType()
method will be added, which will orchestrate…”).🧰 Tools
🪛 LanguageTool
[uncategorized] ~166-~166: Possible missing comma found.
Context: ... anOPCM.addGameType()
method will be added which will orchestrate the actions requ...(AI_HYDRA_LEO_MISSING_COMMA)
201-201
: Outstanding TODO for Bond Amounts Initialization.
A TODO remains for initializing bond amounts to exactly 0.08 ETH. Please address this by either providing an implementation example or referencing the appropriate documentation.
213-217
: Testing Off-Chain Agents Introduction.
The opening statement for testing off-chain agents is clear. For improved clarity, consider replacing the semicolon with a comma in the sentence (e.g., “…and before you set the respected game type to it, you can test…”).
247-259
: Test for Countering Invalid Claims – Terminology Consistency.
The instructions for posting an invalid counter claim are clear.Nitpick: Consider consistently using the term “counter-claim” (with a hyphen) instead of “counter claim” to align with technical nomenclature.
🧰 Tools
🪛 LanguageTool
[misspelling] ~249-~249: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[uncategorized] ~166-~166: Possible missing comma found.
Context: ... an OPCM.addGameType()
method will be added which will orchestrate the actions requ...
(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~175-~175: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...istry` to add the new game type. See a high level implementation from the (spec]([https:...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[misspelling] ~244-~244: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~249-~249: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (20)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (20)
1-18
: Frontmatter metadata is complete and correct.
All required metadata fields (title, description, lang, content_type, topic, personas, categories, is_imported_content) are present and non-empty. This aligns with the documentation guidelines.
20-20
: Correct Callout Import.
TheCallout
component is properly imported fromnextra/components
, which is consistent with its later usage in the document.
22-32
: Header and Introduction Clarity.
The H1 header and the introductory paragraph clearly describe the guide’s purpose and adhere to the documentation style. Note that “OP Stack” is correctly maintained as a proper noun.
40-46
: Prerequisites Section is Clear.
The prerequisites are clearly listed, ensuring that the reader understands the necessary conditions (e.g., running a standard OP Stack implementation and having access to recommended infrastructure services).
47-60
: Dispute Components Configuration – Upgrade Instructions.
The section “1. Configure the dispute components” provides clear upgrade instructions forop-challenger
. The bash snippet (lines 55–60) is well structured. Ensure that using release v1.3.3 is the intended stable version for your deployment.
62-72
: Network Configuration Instructions.
The provided example flags for configuring the network (including both registry and custom configurations) are clear and unambiguous.
74-86
: Enabling Cannon Trace Type.
Both the direct flag (--trace-type permissioned,cannon
) and the environment variable alternative are properly documented. This dual approach increases clarity for different deployment preferences.
88-97
: Prestates Access Configuration.
The instructions to replace the--cannon-prestate
flag with--prestates-url
are straightforward. The explanation about acceptable protocols and filename conventions is clear.
98-111
: Building Required Prestates Explanation.
The section clearly explains why two prestates (for permissioned and permissionless games) are needed and utilizes a Callout to emphasize this point. The technical term "prestate" is consistently used.🧰 Tools
🪛 LanguageTool
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
115-129
: Custom Prestates Build Process.
The code snippet detailing steps for cloning the repository, checking out a specific op-program version, and runningmake reproducible-prestate
is comprehensive.Note: Please verify that the usage of the
--exec.prestate
flag is current and correct according to the latest op-program documentation.
130-136
: Prestate Output Locations are Well Defined.
The bullet list clearly details where the generated prestates will be located for various version scenarios.🧰 Tools
🪛 LanguageTool
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will typically be generated at: * `o...(A_INFINITIVE)
137-140
: Post-Upgrade 14 Prestate Callout.
The Callout block effectively explains that chains upgraded to Cannon MT64 should useprestate-mt64.bin.gz
and notes the temporary retention of older formats.
142-148
: Sufficient Funds for Bonds Guidance.
The section outlining bond requirements and guidelines (minimum balance, access pool, monitoring) is clear and actionable.
155-159
: Setting Up op-dispute-mon.
The brief instruction with a link to further setup steps ensures that readers can configureop-dispute-mon
correctly.
169-193
: Set Game Implementations Instructions.
The step-by-step smart contract upgrade instructions (including the upgrade ofDisputeGameFactoryProxy
and the optional AnchorStateRegistryProxy steps) are explicit. Ensure that these instructions are in sync with any post-Upgrade 13 changes in your deployment process.🧰 Tools
🪛 LanguageTool
[uncategorized] ~175-~175: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...istry` to add the new game type. See a high level implementation from the (spec]([https:...(EN_COMPOUND_ADJECTIVE_INTERNAL)
203-212
: Roles: ProxyAdmin Owner and Guardian.
The roles are clearly defined with appropriate bullet points. The responsibilities and authority of the ProxyAdmin Owner and Guardian are well articulated.
217-241
: Test for Defending Valid Proposals.
The test steps for defending valid proposals (including verifying block head, output root retrieval, and game creation) are detailed and include useful code snippets.
271-281
: Switching to Permissionless Proofs.
The instructions for switching to permissionless proofs via OPCM and updating the op-proposer configuration are clear and well-numbered.
294-300
: Next Steps Section.
The additional resource links and next steps provide valuable context for further action and are organized in a user-friendly bullet list.
302-307
: Conclusion.
The conclusion effectively summarizes the security benefits and necessary caution (testing and monitoring) associated with transitioning to permissionless proofs. It is concise and appropriately styled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (4)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (4)
98-111
: Building required prestatesThe guidance for building the required prestates is comprehensive. The bullet list clearly differentiates between the prestate used for permissioned games and the new prestate for fault proofs. The accompanying info callout provides essential context.
Minor nitpick: Consider reviewing the usage of the term “prestate” as a noun in case your style guide requires hyphenation or adjusted phrasing for clarity.🧰 Tools
🪛 LanguageTool
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
185-185
: High-level implementation link formattingThe markdown syntax for the spec link on line 185 appears to be misformatted. Consider revising it to a more standard format. For example:
- See a high level implementation from the (spec]\([https://specs.optimism.io/experimental/op-contracts-manager.html#implementation-2](https://specs.optimism.io/experimental/op-contracts-manager.html#implementation-2)) + See a high-level implementation from the [spec](https://specs.optimism.io/experimental/op-contracts-manager.html#implementation-2)This correction will improve readability.
🧰 Tools
🪛 LanguageTool
[uncategorized] ~185-~185: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...istry` to add the new game type. See a high level implementation from the (spec]([https:...(EN_COMPOUND_ADJECTIVE_INTERNAL)
187-206
: Set game implementations and AnchorStateRegistry upgradeThe instructions explaining how to update game implementations via the
DisputeGameFactoryProxy
and the conditions for upgrading theAnchorStateRegistryProxy
are clear. The TODO comment regarding initializing bond amounts (to exactly 0.08 ETH) should be addressed in a follow-up commit or tracked via an issue.
216-241
: Testing off-chain agents: valid proposalsThe testing steps for valid proposals are detailed and easy to follow. Each step includes clear commands and explains what to verify in the system logs or outputs.
Minor nitpick: In the bullet point for verifying thatop-challenger
“doesn't post a counter claim,” consider using “counter-claim” with a hyphen for consistency with standard terminology.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[uncategorized] ~185-~185: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...istry` to add the new game type. See a high level implementation from the (spec]([https:...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[misspelling] ~244-~244: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~249-~249: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (21)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (21)
1-19
: Frontmatter metadata validationThe YAML frontmatter includes all the required fields (title, description, lang, content_type, topic, personas, categories) with non-empty values. The additional field
is_imported_content
is also provided. This metadata meets the documentation guidelines for a regular tutorial page.
20-20
: Import statement checkThe import of the
Callout
component from'nextra/components'
is correctly placed and appears appropriate for a documentation file that uses custom components.
22-32
: Header and overview sectionThe H1 header ("Migrating to permissionless fault proofs on OP Stack") and the introductory overview are clearly written. They adhere to sentence case guidelines while preserving necessary proper nouns (e.g. "OP Stack"). The overview concisely introduces the migration focus.
40-45
: Prerequisites sectionThe prerequisites section clearly lists the chain requirements in a bullet format. The instructions are concise and align well with the expectations for technical documentation.
47-60
: Dispute components – upgrade op-challengerThe instructions for upgrading
op-challenger
are clear and detailed. The provided bash code block is well formatted and illustrates the necessary steps. You might consider adding a brief note indicating that command parameters might vary depending on deployment specifics.
62-72
: Network configuration updateThe section explaining network configuration provides two clear examples: one for chains included in the registry and one for chains using a custom rollup configuration. The code block is concise and informative.
74-81
: Enable cannon trace typeThe explanation and code snippet for setting
--trace-type permissioned,cannon
(as well as the alternative environment variable method) are straightforward and effectively communicate the setup requirement.
88-97
: Configure prestates accessThe instructions to replace the
--cannon-prestate
flag with--prestates-url
and the supporting bash example are clear and accurate. This approach helps ensure users point to the correct source for prestates.
113-129
: Custom prestate generationThe step-by-step instructions for cloning the repository, checking out the specific branch (e.g., op-program/v1.5.0), and generating prestates are clear and detailed. Confirm that the use of the
--exec.prestate
flag is consistent with the corresponding documentation.
130-136
: Prestate output locationsThe list of potential output files (
prestate.json
,prestate.bin.gz
, andprestate-mt64.bin.gz
) is clearly presented, offering a useful reference for users depending on their chain upgrade status.🧰 Tools
🪛 LanguageTool
[grammar] ~130-~130: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...R_L2_CHAIN_ID> \ --exec.prestate ``` The prestate will typically be generated at: * `o...(A_INFINITIVE)
137-140
: Post-upgrade 14 calloutThe info callout regarding post-upgrade 14 expectations is well written. It clearly explains the shift to using
prestate-mt64.bin.gz
due to the Fault Proof VM contract upgrade, which is important for user clarity during migration.
142-154
: Ensuring sufficient funds for bondsThe section on bond funding provides practical guidelines (e.g., minimum balance and ETH pool access) and contrasts the differing impacts on permissioned versus permissionless games. This clear, actionable advice is beneficial for operators.
155-157
: Set up op-dispute-monThe brief instruction to ensure
op-dispute-mon
is properly configured is clear. The embedded link to the steps adds useful context.
159-172
: Deploy and configure smart contracts using OPCMThis section effectively outlines the role and responsibilities of privileged roles (ProxyAdmin Owner and Guardian) and explains the process for deploying smart contracts via OPCM. The instructions are clear and well structured.
173-177
: Adding the PermissionlessDisputeGameThe instructions for adding the PermissionlessDisputeGame using the forthcoming
OPCM.addGameType()
method are concise and clear. They effectively set the stage for the technical actions to follow.
247-259
: Testing off-chain agents: invalid claimsThe instructions for posting an invalid counter claim are clear, and the corresponding code block is formatted correctly. The placeholder claim value seems appropriate for demonstration purposes, but ensure it aligns with your test setup.
🧰 Tools
🪛 LanguageTool
[misspelling] ~249-~249: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
261-267
: Listing claims verificationThe final code block that shows how to use
op-challenger list-claims
effectively illustrates how users can verify that claims have been posted. The instructions are concise and accurate.
271-280
: Switch to permissionless proofsThe section detailing how to switch to permissionless proofs using OPCM is clearly explained. The code block is concise and clearly instructs the user on the necessary command.
281-287
: Configure op-proposerThe instructions for configuring
op-proposer
to use the permissionless cannon game type are straightforward. The provided code block clearly demonstrates the parameter change needed.
295-301
: Next steps sectionThe “Next steps” section offers additional reading and resources. Please verify that all the linked documentation and external resources are current and resolve correctly.
303-307
: ConclusionThe concluding section effectively summarizes the migration guide, reiterating the security improvements and next actions. The text is clear and appropriately reinforces the guide's key messages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (3)
137-143
: Prestate generation paths are provided.
The expected output file locations are clearly listed. Consider reviewing whether a more concise term like “Prestate” should be used instead of “The prestate” for consistency in technical nomenclature, though the current form is acceptable.🧰 Tools
🪛 LanguageTool
[grammar] ~137-~137: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate make reproducible-prestate ``` The prestate will typically be generated at: * `o...(A_INFINITIVE)
218-218
: TODO comment needs attention.
Please address the TODO note regarding the initialization of bond amounts for each game type to exactly 0.08 ETH. Consider providing a concrete implementation or opening a follow-up issue for clarification.
254-267
: Countering invalid claims instructions are clear.
The provided command examples for posting an invalid counter-claim are sufficiently detailed. For consistency, consider using “counter‑claim” (with a hyphen) throughout the document.🧰 Tools
🪛 LanguageTool
[misspelling] ~256-~256: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~137-~137: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate make reproducible-prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[uncategorized] ~192-~192: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...istry` to add the new game type. See a high level implementation from the (spec]([https:...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~256-~256: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (25)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (25)
1-18
: Frontmatter metadata is complete.
All required metadata fields (title, description, lang, content_type, topic, personas, categories) are present and non-empty. The additional fieldis_imported_content
is also provided.
20-20
: Import statement is appropriate.
The import ofCallout
fromnextra/components
supports the use of custom callout elements later in the document.
22-23
: Header formatting looks good.
The H1 header “Migrating to permissionless fault proofs on OP Stack” follows sentence case and appropriately capitalizes technical terms.
24-32
: Introductory section clarity.
The introduction clearly explains the purpose of the guide and the migration from permissioned to permissionless fault proofs. The technical context is well established for both decision makers and implementation teams.
40-46
: Prerequisites section is well-defined.
The prerequisites are outlined clearly with a concise bullet list and necessary links, ensuring readers know the foundation required before proceeding.
47-61
: Dispute components configuration instructions are clear.
The steps to upgradeop-challenger
, complete with a Bash example, are well detailed. Please ensure that versionv1.3.3
is the intended target for your upgrade path.
62-73
: Network configuration examples are precise.
The dual examples for chains in the registry and those using a custom configuration are clearly presented and practical.
74-81
: Cannon trace type enablement is correctly documented.
Both the flag-based and environment variable approaches for setting--trace-type
are provided, offering flexibility in configuration.
82-97
: Prestates access configuration is clear.
Replacing the deprecated--cannon-prestate
flag with--prestates-url
is well explained, and the instructions for accepted URL protocols and file naming conventions are precise.
98-112
: Prestate requirements are well explained.
The section clearly states that two prestates are needed—one for permissioned games and a new one for permissionless games—while providing context on why the separation is necessary. Although the term “prestate” follows the article “The,” its consistent use as a technical term is acceptable.🧰 Tools
🪛 LanguageTool
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
113-136
: Custom prestate generation instructions are thorough.
The step-by-step guide using Git commands (cloning, checkout, copying configurational files, and building the prestate) is detailed and easy to follow.
144-147
: Informative callout on prestate version usage.
The callout effectively communicates the shift to usingprestate-mt64.bin.gz
post-upgrade 14 due to the Fault Proof VM contract update.
149-161
: Bond funds guidance is well articulated.
The recommendations for ensuring sufficient funds (e.g., a minimum balance of 50 ETH) and broader preparedness are clearly stated.
162-165
:op-dispute-mon
setup instructions are sufficient.
A brief statement referencing the detailed documentation ensures that operators know where to find further configuration guidance.
166-173
: Smart contract deployment introduction is clear.
The introduction to deploying and configuring smart contracts with OPCM sets the stage well for the upcoming detailed instructions on privileged role actions.
170-179
: Roles explanation is thorough.
The roles of the ProxyAdmin Owner and Guardian are explained with clarity, ensuring technical stakeholders understand their responsibilities.
194-210
: Game implementations instructions are clear.
The step-by-step guidance for setting implementations and upgrading theAnchorStateRegistryProxy
is well detailed and actionable.
211-214
: Anchor state callout is informative.
The callout reinforces the importance of updating the anchor state correctly, particularly for permissioned games.
216-217
: Shared anchor state explanation is concise.
The text succinctly explains that post-upgrade 13, a single anchor state is shared between game types.
220-227
: Testing off-chain agents instructions are adequate.
The prerequisites for testing off-chain agents are clearly outlined, ensuring operators know the necessary steps before switching game types.
224-253
: Valid proposals testing section is well-structured.
The step-by-step procedure and command examples for submitting a valid proposal and verifying outputs are clear and practical.🧰 Tools
🪛 LanguageTool
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
267-274
: Claim listing commands are correctly formatted.
The instructions and corresponding commands for listing claims after testing are clear.
278-300
: Switch to permissionless proofs is clearly instructed.
Steps for setting therespectedGameType
and configuring theop-proposer
are well explained and include both command-line and environment variable examples.
301-308
: Next steps section provides useful further resources.
The bullet list of additional documentation and external links is comprehensive and helpful for users seeking more context.
309-314
: Conclusion effectively summarizes the guide.
The conclusion reinforces the security benefits of transitioning to permissionless proofs and the importance of thorough testing.
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
Outdated
Show resolved
Hide resolved
…less.mdx Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (8)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (8)
33-38
: Key Components ListThe bullet list outlining the key components of the migration is organized and clear. For extra clarity, you might consider adding a brief note for each item (e.g., prerequisites or expected outcomes) to improve modularity.
88-94
: Configuring Prestates AccessThe instructions to replace the
--cannon-prestate
flag with--prestates-url
are clear. It might help to briefly define “prestates” or link to a glossary if the term is not widely familiar to all readers.
96-111
: Building Required PrestatesThis section clearly explains that two prestates are needed and uses a helpful callout to explain why the prestate for permissioned games typically isn’t valid for permissionless operations.
Consider rephrasing “The prestate currently used for permissioned games…” to remove the article if it triggers grammatical flags (e.g., “Prestate used for permissioned games…”), though this is a minor stylistic point.🧰 Tools
🪛 LanguageTool
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
113-136
: Custom Prestates Setup for Non-Registry ChainsThe step-by-step instructions for building custom prestates—including cloning the repository, creating a branch, copying configuration files, and building the prestate—are detailed and clear. Remind users to update placeholder values such as
<YOUR_L2_CHAIN_ID>
and<YOUR_CHAIN_NAME>
.
192-192
: Link to High‐Level ImplementationThe link to the spec is useful. Please verify that the hyphen in “high‐level” renders as intended across browsers.
194-210
: Set Game Implementations InstructionsThe steps for updating smart contract implementations via OPCM are clear. Note the TODO on initializing bond amounts to exactly 0.08 ETH; this should be resolved or supplemented with additional guidance before finalization.
224-253
: Test Defending Valid ProposalsThis section provides clear steps for creating a valid proposal and verifying its status.
Suggestion: In the verification steps, consider updating “counter claim” to “counter-claim” for consistency with standard spelling conventions.🧰 Tools
🪛 LanguageTool
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
254-266
: Test Countering Invalid ClaimsThe instructions for posting an invalid counter-claim are precise. As noted earlier, please update instances of “counter claim” to “counter-claim” for consistency.
🧰 Tools
🪛 LanguageTool
[misspelling] ~256-~256: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~102-~102: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~137-~137: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate make reproducible-prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[misspelling] ~251-~251: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~256-~256: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (4)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
- GitHub Check: pr-workflow
🔇 Additional comments (24)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (24)
1-18
: Frontmatter and Metadata ValidationThe frontmatter includes all required fields (title, description, lang, content_type, topic, personas, and categories) and none are empty. The metadata is complete and follows the specified format.
20-20
: MDX Import StatementThe import of the
Callout
component fromnextra/components
is correctly specified and will facilitate styled callouts in the document.
22-22
: Title Header FormattingThe H1 header “Migrating to permissionless fault proofs on OP Stack” uses sentence case and correctly preserves the proper noun “OP Stack.”
24-24
: Introduction ClarityThe introductory paragraph succinctly outlines the purpose and intended audience of the guide. It is clear and effectively sets the context for the document.
26-32
: Overview SectionThe “Overview” section clearly describes the context and significance of transitioning from permissioned to permissionless proofs. Consider verifying that technical terms like “fault proofs” are used consistently throughout the document.
40-46
: Prerequisites SectionThis section comprehensively lists the requirements for a chain before beginning the migration, including running a standard OP Stack implementation and using recommended infrastructure services.
51-60
: Upgrade to the Latestop-challenger
The instructions and associated code block for upgrading
op-challenger
(cloning the repository, checking out the branch, and building) are clear. Please ensure the version “op-challenger/v1.3.3” is the intended target for upgrade.
62-72
: Network Configuration UpdateThe examples provided for updating the network configuration (for chains in and not in the registry) are clear and concise. Verify that the placeholders (e.g.,
<chain-name>
and/path/to/your/network-config.json
) are clearly documented elsewhere for users.
74-80
: Enabling Cannon Trace TypeThe command to enable the “cannon” trace type (
--trace-type permissioned,cannon
) is clearly presented. Confirm that this flag is correctly interpreted by the system as intended for dual support of permissioned and permissionless games.
82-86
: Environment Variable ConfigurationThe alternative approach of setting the
OP_CHALLENGER_TRACE_TYPE
environment variable is simple and effective.
138-143
: Prestate Generation LocationsThe bullet list detailing typical output locations for generated prestates is precise. Ensure these file paths remain accurate with the latest OP Stack release.
144-147
: Post-Upgrade 14 CalloutThe callout effectively communicates that chains should transition to using
prestate-mt64.bin.gz
and explains the deprecation plan for older prestate files.
149-161
: Bond Funding GuidelinesThe section offering guidelines for ensuring sufficient funds for bonds in both permissioned and permissionless games is practical and easy to follow.
162-164
: Setting Upop-dispute-mon
The brief instruction and provided link for configuring
op-dispute-mon
are clear.
166-172
: Deploying and Configuring Smart Contracts with OPCMThis section emphasizes the need for privileged actions when using OPCM. The explanation is concise and highlights the roles involved.
170-179
: Understanding Privileged RolesThe sub-section clearly defines the roles of the ProxyAdmin Owner and the Guardian, including a reference link for further details.
180-188
: Adding the PermissionlessDisputeGameThis section outlines the steps for integrating the new game type using
OPCM.addGameType()
. The three key actions (deploying the contract, setting up the proxy, and reinitializing the registry) are clearly stated.
220-226
: Testing Off-Chain Agents IntroductionThe introduction to the testing procedure for off-chain agents is well written and sets the stage for the subsequent tests.
269-274
: Verifying Claims withop-challenger
The provided code block for listing claims is clear and effective for ensuring that the expected number of claims is met.
276-276
: Expected Outcome ClarificationStating that “There should be 3 claims in the game after this test” offers a clear, measurable outcome for the operator.
278-293
: Switching to Permissionless ProofsThis section outlines the required steps to switch the system to permissionless proofs. The instructions—including setting the
respectedGameType
and updating theop-proposer
configuration—are straightforward.
295-299
: Environment Variable forop-proposer
The configuration snippet for setting the
OP_PROPOSER_GAME_TYPE
environment variable is clear and consistent with the command-line approach.
301-308
: Next Steps SectionThe “Next steps” section provides valuable links to related documentation and resources. Make sure these external links remain current over time.
309-314
: ConclusionThe conclusion succinctly reinforces the benefits of transitioning to permissionless proofs and encourages thorough testing. It serves as an effective summary for the guide.
### Set game implementations | ||
|
||
Execute the following smart contract changes in a single bundled transaction: | ||
|
||
1. Call `setImplementation` on the `DisputeGameFactoryProxy` to: | ||
|
||
* Set the implementation for the new permissionless `FaultDisputeGame` (game type `0`) | ||
* Upgrade the permissioned game to the new `PermissionedDisputeGameAddress` (game type `1`) with the updated absolute prestate | ||
|
||
2. Upgrade the `AnchorStateRegistryProxy` (pre-Upgrade 13 only): | ||
|
||
After [upgrade 13](/notices/upgrade-13#whats-included-in-upgrade-13) (FP incident response improvements), this step is *no longer required*, as a single anchor state is shared across all game types. If you have not upgraded, perform the following: | ||
|
||
* First upgrade the proxy to point to the `StorageSetter` contract and clear the initialized flag. | ||
* Then upgrade back to the `AnchorStateRegistry` implementation | ||
* Call `initialize` with the anchor state for the new game type | ||
|
||
<Callout type="info"> | ||
Ensure a permissioned game has already resolved with the correct root and updated the anchor state to a valid value. | ||
Initial deployments at genesis always have an invalid anchor state. | ||
</Callout> | ||
|
||
Post-upgrade 13, the anchor state for permissionless games automatically matches the current anchor state used by permissioned games, since there's only one shared anchor state. | ||
|
||
3. Initialize bond amounts for each game type to exactly 0.08 ETH |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (2)
155-161
: Prestate generation locations are well documented.
Listing multiple potential output files (e.g.,prestate.json
,prestate.bin.gz
, andprestate-mt64.bin.gz
) is helpful. Note that although static analysis hints at potential concerns with using the article “the” before “prestate,” in this technical context it is acceptable.🧰 Tools
🪛 LanguageTool
[grammar] ~155-~155: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate make reproducible-prestate ``` The prestate will typically be generated at: * `o...(A_INFINITIVE)
267-288
: Testing for countering invalid claims is clear but consider minor wording adjustments.
The instructions are effective; however, for consistency with documentation standards and to align with static analysis hints, consider using “counter-claim” (with a hyphen) instead of “counter claim” throughout the document.🧰 Tools
🪛 LanguageTool
[misspelling] ~269-~269: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~274-~274: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~120-~120: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~155-~155: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate make reproducible-prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[misspelling] ~269-~269: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~274-~274: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - docs-optimism
- GitHub Check: Header rules - docs-optimism
- GitHub Check: Pages changed - docs-optimism
🔇 Additional comments (20)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (20)
1-18
: Frontmatter metadata is complete and well-formed.
All required fields (title, description, lang, content_type, topic, personas, categories, and is_imported_content) are present and non-empty. This ensures proper indexing and document identification.
20-20
: Import statement for Callout is correct.
The MDX file successfully imports the necessary UI component fromnextra/components
to render callouts.
22-23
: H1 header formatting looks good.
The header "Migrating to permissionless fault proofs on OP Stack" follows sentence case (with proper capitalization for the proper noun “OP Stack”) per the guidelines.
24-32
: Overview section is clear and concise.
The introductory paragraphs succinctly summarize the architecture and security benefits of transitioning from permissioned to permissionless fault proofs.
40-46
: Prerequisites section provides clear requirements.
The checklist of prerequisites ensures that chain operators know what preconditions must be met before proceeding.
57-68
: Docker commands for upgrading op-challenger are accurate.
The instructions include both a pull command and a sample run command with appropriate environment variables. Remember to replace<YOUR_PRESTATES_URL>
with an actual URL during deployment.
83-90
: Network configuration instructions are well articulated.
The command snippet differentiates clearly between chains that are part of the registry and those which require a custom rollup configuration.
92-99
: Enabling the cannon trace type is implemented correctly.
The code snippet for setting--trace-type permissioned,cannon
effectively conveys the dual-mode operation required for both permissioned and permissionless games.
100-105
: Alternative environment variable setup is clear.
Presenting the option to set the trace type via an environment variable (OP_CHALLENGER_TRACE_TYPE
) adds flexibility and clarity for users.
106-115
: Prestates access configuration is clearly defined.
The replacement instruction of the--cannon-prestate
flag with--prestates-url
is straightforward, and the accompanying code block is easy to follow.
116-154
: Detailed instructions for building custom prestates are comprehensive.
This section carefully outlines the process (cloning, branching, adding configurations, and building the prestate) and includes an informative callout clarifying the need for two separate prestates.🧰 Tools
🪛 LanguageTool
[grammar] ~120-~120: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
167-179
: Guidance for ensuring sufficient bond funds is effective.
The bullet-point list offers clear and actionable recommendations for maintaining adequate funds for both permissioned and permissionless game scenarios.
180-183
: Configuration instructions for op-dispute-mon are succinct.
The brief directive with a hyperlink to detailed steps provides clarity without overcomplicating the documentation.
188-194
: The explanation of ProxyAdmin Owner and Guardian roles is clear.
This section effectively delineates the responsibilities of high-privilege roles involved in smart contract management.
196-208
: Adding the PermissionlessDisputeGame is well described.
The step-by-step outline usingOPCM.addGameType()
is clear. Consider verifying that any method names (such asOPCM.addGameType()
) are consistent with those used in the wider documentation.
210-232
: Smart contract implementation update instructions are detailed and precise.
The step-by-step commands—including handling the post-upgrade state of the AnchorStateRegistry—provide clear guidance for performing the necessary contract upgrades in a bundled transaction.
233-266
: Testing valid proposals procedure is comprehensible.
The testing steps for defending a valid proposal are logically ordered and include practical code examples that help illustrate the testing process.
289-309
: Steps to switch to permissionless proofs are well-outlined.
The final instructions, including the adjustment of therespectedGameType
on the OptimismPortal and the configuration change for op-proposer, are precise and actionable.
310-317
: Next steps section is clear and resourceful.
The list of external links and documentation references helps guide users toward additional resources and further reading.
318-322
: The conclusion effectively summarizes the migration benefits.
It reinforces the security improvements achieved through decentralization and stresses the importance of thorough testing post-migration.
```bash | ||
docker pull us-docker.pkg.dev/oplabs-tools-artifacts/images/op-challenger:v1.3.3 | ||
``` | ||
Then run the image, for example: | ||
|
||
```bash | ||
docker run -d --name op-challenger \ | ||
-e OP_CHALLENGER_TRACE_TYPE=permissioned,cannon \ | ||
-e OP_CHALLENGER_PRESTATES_URL=<YOUR_PRESTATES_URL> \ | ||
us-docker.pkg.dev/oplabs-tools-artifacts/images/op-challenger:v1.3.3 | ||
|
||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nvm.
I've updated the Docker command to use the latest tag instead of a specific version number:
docker pull us-docker.pkg.dev/oplabs-tools-artifacts/images/op-challenger:latest
This way, the documentation will stay relevant as new versions are released, and devs will automatically pull the most recent stable version.
Would you recommend adding any additional notes about version compatibility or checking for specific versions if needed?
### Adding the PermissionlessDisputeGame to a chain | ||
|
||
Given that not all chains will support the `PermissionlessDisputeGame` upon deployment, an | ||
`OPCM.addGameType()` method will be added which will orchestrate the actions required to add a | ||
new game type. | ||
|
||
This method will: | ||
|
||
1. deploy the `FaultDisputeGame` contract | ||
2. setup the `DelayedWethProxy` for the new game | ||
3. Reinitialize the `AnchorStateRegistry` to add the new game type. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@maurelian Are these the accurate steps?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (7)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (7)
26-32
: Overview section clarity.
The overview clearly explains the purpose and benefits of migrating to permissionless fault proofs. For consistency, please verify that terms such as “fault proofs” and “prestate” are used uniformly throughout the guide.
57-69
: Op-challenger upgrade instructions.
The instructions for upgrading are clear; however, note that the docker pull command uses thelatest
tag while the docker run command specifiesv1.3.3
. Please confirm that this version mix is intentional or adjust for consistency.
107-115
: Prestates access configuration.
The guidance to replace the--cannon-prestate
flag with--prestates-url
is clear. Consider verifying that the technical term “prestates” is used consistently across the documentation.
117-123
: Instructions for building required prestates.
The section detailing the need for two prestates (one for permissioned games and one for permissionless games) is comprehensive. It may be helpful to double-check that the term “prestate” aligns with established domain terminology.🧰 Tools
🪛 LanguageTool
[grammar] ~121-~121: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...(A_INFINITIVE)
156-162
: Prestate generation locations.
The bullet list of expected output files is informative. As a minor refinement, consider reviewing the usage of “prestate” as a noun to ensure that it reflects the intended technical meaning.🧰 Tools
🪛 LanguageTool
[grammar] ~156-~156: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate make reproducible-prestate ``` The prestate will typically be generated at: * `o...(A_INFINITIVE)
199-203
: Adding PermissionlessDisputeGame instructions.
The description of the newOPCM.addGameType()
method is comprehensive. A minor nitpick: consider inserting a comma after “OPCM.addGameType()” before “which” for improved clarity.🧰 Tools
🪛 LanguageTool
[uncategorized] ~202-~202: Possible missing comma found.
Context: ... anOPCM.addGameType()
method will be added which will orchestrate the actions requ...(AI_HYDRA_LEO_MISSING_COMMA)
273-293
: Testing invalid counter-claims.
The instructions for posting an invalid counter-claim are clear. As a style suggestion, consider using the hyphenated form “counter-claim” throughout for consistency with the static analysis recommendations.🧰 Tools
🪛 LanguageTool
[misspelling] ~275-~275: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...(EN_COMPOUNDS_COUNTER_CLAIM)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`**/*.mdx`: "ALWAYS review Markdown content THOROUGHLY with the following criteria: - First, check the frontmatter section at the top of the file: 1. For regular pages, ensure AL...
**/*.mdx
: "ALWAYS review Markdown content THOROUGHLY with the following criteria:
- First, check the frontmatter section at the top of the file:
- For regular pages, ensure ALL these fields are present and not empty:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] personas: [non-empty array] categories: [non-empty array] content_type: [valid type] ---
- For landing pages (index.mdx or files with ), only these fields are required:
--- title: [non-empty] lang: [non-empty] description: [non-empty] topic: [non-empty] ---
- If any required fields are missing or empty, comment:
'This file appears to be missing required metadata. Please check keywords.config.yaml for valid options and add the required fields manually. You can validate your changes by running:pnpm validate-metadata ```'
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
- Avoid gender-specific language and use the imperative form.
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
- Ensure proper nouns are capitalized in sentences.
- Apply the Oxford comma.
- Use proper title case for buttons, tab names, page names, and links. Sentence case should be used for body content and short phrases, even in links.
- Use correct spelling and grammar at all times (IMPORTANT).
- For H1, H2, and H3 headers:
- Use sentence case, capitalizing only the first word.
- Preserve the capitalization of proper nouns, technical terms, and acronyms as defined in the 'nouns.txt' file located in the root directory of the project.
- Do not automatically lowercase words that appear in the 'nouns.txt' file, regardless of their position in the header.
- Flag any headers that seem to inconsistently apply these rules for manual review.
- When reviewing capitalization, always refer to the 'nouns.txt' file for the correct capitalization of proper nouns and technical terms specific to the project.
"
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
[grammar] ~121-~121: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...ou'll need at least two prestates: 1. The prestate currently used for permissioned games 2...
(A_INFINITIVE)
[grammar] ~156-~156: The verb ‘prestate’ does not usually follow articles like ‘The’. Check that ‘prestate’ is spelled correctly; using ‘prestate’ as a noun may be non-standard.
Context: ...restate make reproducible-prestate ``` The prestate will typically be generated at: * `o...
(A_INFINITIVE)
[uncategorized] ~202-~202: Possible missing comma found.
Context: ... an OPCM.addGameType()
method will be added which will orchestrate the actions requ...
(AI_HYDRA_LEO_MISSING_COMMA)
[misspelling] ~270-~270: This word is normally spelled with a hyphen.
Context: ... * op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...
(EN_COMPOUNDS_COUNTER_CLAIM)
[misspelling] ~275-~275: This word is normally spelled with a hyphen.
Context: ...ntering invalid claims Post an invalid counter claim to the valid proposal created above: `...
(EN_COMPOUNDS_COUNTER_CLAIM)
🔇 Additional comments (19)
pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (19)
1-18
: Frontmatter metadata is complete.
All required metadata fields (title, description, lang, content_type, topic, personas, and categories) are present and non-empty. Please ensure that this structure remains consistent in future updates.
20-20
: Import statement is correct.
The import of theCallout
component from'nextra/components'
is used appropriately later in the document.
22-22
: Title header confirmation.
The H1 header "Migrating to permissionless fault proofs on OP Stack" matches the frontmatter title and follows the style guidelines.
40-46
: Prerequisites are well defined.
The list correctly indicates the necessary conditions (e.g., running a standard OP Stack implementation and having the recommended infrastructure services).
80-91
: Network configuration instructions.
The steps and code examples for updating the network configuration, including instructions for chains in and not in the registry, are clear and useful.
93-105
: Cannon trace type configuration.
The instructions for enabling thepermissioned,cannon
trace type (via command-line flag and environment variable) are accurate and clearly presented.
124-130
: Callout on prestates differences.
The callout effectively explains why separate prestates are needed for permissioned versus permissionless configurations.
132-155
: Custom prestates building instructions.
The step-by-step guide (including cloning the repository, creating a branch, adding configuration files, and runningmake reproducible-prestate
) is thorough. Ensure that placeholders like<YOUR_L2_CHAIN_ID>
are replaced with actual values during execution.
163-167
: Post-upgrade prestates callout.
The callout describing the transition to usingprestate-mt64.bin.gz
post-upgrade is clear and helpful.
168-175
: Bond funds guidance.
The instructions regarding the management of bond funds for both permissioned and permissionless games are clear and actionable.
181-184
: Dispute monitoring configuration.
The brief instruction to configureop-dispute-mon
with a reference link is clear.
185-198
: Smart contracts deployment using OPCM.
This section clearly outlines the privileged actions required by the ProxyAdmin Owner and Guardian roles. The text adequately prepares the user for subsequent actions.
205-213
: Method functionality details.
The breakdown of the method’s responsibilities (deploying contracts, setting up proxies, and reinitializing the AnchorStateRegistry) is clear and well organized.
213-229
: Game implementations update.
The detailed instructions for executing smart contract changes—including setting game implementations and handling pre-Upgrade 13 scenarios—are very clear. Please ensure readers understand the differences between the upgrade paths.
237-237
: Bond amounts initialization.
The instruction to initialize bond amounts for each game type to exactly 0.08 ETH is precise and clear.
243-271
: Testing valid proposals.
The step-by-step guidelines for testing valid proposals, including command examples withcast
, are clear and actionable.🧰 Tools
🪛 LanguageTool
[misspelling] ~270-~270: This word is normally spelled with a hyphen.
Context: ... *op-challenger
doesn't post a counter claim (as this is a valid proposal) * `...(EN_COMPOUNDS_COUNTER_CLAIM)
297-307
: Switching to permissionless proofs.
The steps to set therespectedGameType
using OPCM and update theop-proposer
configuration are clearly described.
320-327
: Next steps section.
The list of additional resources and external links is comprehensive. Please verify that all links remain current over time.
328-332
: Conclusion summary.
The conclusion effectively reiterates the security benefits of transitioning to permissionless proofs. The tone is clear and instructive.
Description
This PR adds a comprehensive guide for OP Stack chain operators on transitioning from permissioned to permissionless fault proofs. The guide follows a high-level approach suitable for technical decision-makers while providing implementation details for engineering teams.
Key components covered:
AnchorStateRegistry
correctlyProxyAdmin Owner
andGuardian
rolesTests
Additional context
Metadata