Skip to content

Proposer setup guide #1645

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

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open

Proposer setup guide #1645

wants to merge 9 commits into from

Conversation

krofax
Copy link
Collaborator

@krofax krofax commented Jun 4, 2025

Description

This PR creates a new tutorial guide for chain operators to spin up their proposer after setting up their sequencer.

Key Additions

  • Complete setup workflow: Step-by-step instructions from prerequisites to production deployment
  • Recommended configurations: Production-ready parameter templates with insights on critical settings like poll-interval, proposal-interval, and num-confirmations
  • Fault proof focus: Exclusively covers modern DisputeGameFactory approach.

Tests

Additional context

Metadata

@krofax krofax requested a review from a team as a code owner June 4, 2025 17:28
Copy link

netlify bot commented Jun 4, 2025

Deploy Preview for docs-optimism ready!

Name Link
🔨 Latest commit 538b1bc
🔍 Latest deploy log https://app.netlify.com/projects/docs-optimism/deploys/68470c02f80ed600086c9a81
😎 Deploy Preview https://deploy-preview-1645--docs-optimism.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

coderabbitai bot commented Jun 4, 2025

📝 Walkthrough

Walkthrough

This update introduces a comprehensive tutorial titled "Spin up your proposer," providing detailed instructions for chain operators to set up and configure an OP Stack proposer. The tutorial covers the proposer's role, prerequisites, recommended production configurations, step-by-step setup, output frequency policy, verification, and monitoring procedures. Additionally, the batcher configuration documentation is extensively expanded and restructured, offering in-depth explanations of configuration parameters, operational considerations, and chain-specific recommendations. Several tutorials receive updated or expanded "Next Steps" sections with additional resource links. A new entry for the proposer setup guide is added to the tutorials metadata.

Sequence Diagram(s)

sequenceDiagram
    participant Operator
    participant Proposer
    participant L1
    participant L2
    participant DisputeGameFactory

    Operator->>Proposer: Configure and start proposer with environment variables
    Proposer->>L2: Polls for latest state root
    Proposer->>L1: Posts L2 state root as output
    Proposer->>DisputeGameFactory: Registers output for dispute games (if enabled)
    L1-->>Operator: Confirms output root posted
    Operator->>Proposer: Monitors logs and output activity
Loading

Possibly related PRs

  • Batcher config update #1597: Both PRs focus on extensively expanding and restructuring the OP Stack batcher configuration documentation, improving clarity, organization, and examples without changing code entities.
  • Batcher Configuration Page Update #1215: The main PR and the retrieved PR both extensively update the batcher configuration documentation, restructuring and expanding policy and parameter explanations, including throttling and data availability settings, indicating they address the same documentation area with overlapping content and goals.
  • fix broken link #1395: This PR clarifies multi-blob batcher configuration details, which relates closely to the expanded multi-blob transaction explanations in the main PR.

Suggested labels

documentation, tutorial

Suggested reviewers

  • sbvegan
  • Wazabie

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (13)
pages/operators/chain-operators/configuration/batcher.mdx (6)

22-23: Avoid bold for emphasis and fix comma usage

The bold markup around “definitive guide” is used for emphasis; per style guidelines, prefer plain text or italics. Also remove the unnecessary comma before “to make” in the second sentence.

Suggested diff:

- This page provides the **definitive guide** for OP Stack batcher configuration, serving as the single source of truth for chain operators.
- The op-batcher posts L2 sequencer data to the L1, to make it available for verifiers.
+ This page provides the definitive guide for OP Stack batcher configuration, serving as the single source of truth for chain operators.
+ The op-batcher posts L2 sequencer data to the L1 to make it available for verifiers.

123-123: Hyphenate compound adjective

Use a hyphen for the compound modifier “third-party bridges” to conform to adjective-hyphenation rules.

Suggested diff:

- often Centralized Exchanges or third party bridges wait until transactions are marked safe before processing deposits and withdrawal
+ often Centralized Exchanges or third-party bridges wait until transactions are marked safe before processing deposits and withdrawals
🧰 Tools
🪛 LanguageTool

[uncategorized] ~123-~123: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...fe head, often Centralized Exchanges or third party bridges wait until transactions are mar...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


169-169: Add missing comma for clarity

Insert a comma after “gas” to clearly separate clauses.

Suggested diff:

- This is to avoid sudden spikes in L1 DA-usage consuming too much available gas and causing a backlog in batcher transactions.
+ This is to avoid sudden spikes in L1 DA-usage consuming too much available gas, and causing a backlog in batcher transactions.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~169-~169: Possible missing comma found.
Context: ...This is to avoid sudden spikes in L1 DA-usage consuming too much available gas and ca...

(AI_HYDRA_LEO_MISSING_COMMA)


178-178: Clarify the requirement syntax

Add “to” for a smoother connection between the version requirement and the action.

Suggested diff:

- Requires op-geth version `v1.101411.1` or later
- Enable the `miner` API namespace: `GETH_HTTP_API: web3,debug,eth,txpool,net,miner`
+ Requires op-geth version `v1.101411.1` or later to enable the `miner` API namespace:
+ `GETH_HTTP_API: web3,debug,eth,txpool,net,miner`
🧰 Tools
🪛 LanguageTool

[uncategorized] ~178-~178: Possible missing preposition found.
Context: ...geth version v1.101411.1 or later * Enable the miner API namespace: `GETH_HTTP_A...

(AI_HYDRA_LEO_MISSING_TO)


221-221: Insert comma before coordinating conjunction

Add a comma before “or” in the list to match comma-style rules.

Suggested diff:

- by setting the `--data-availability-type=<blobs|calldata|auto>` flag or with the `OP_BATCHER_DATA_AVAILABILITY_TYPE` env variable.
+ by setting the `--data-availability-type=<blobs|calldata|auto>` flag, or with the `OP_BATCHER_DATA_AVAILABILITY_TYPE` env variable.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~221-~221: Possible missing comma found.
Context: ...vailability-type=<blobs|calldata|auto>flag or with theOP_BATCHER_DATA_AVAILABILI...

(AI_HYDRA_LEO_MISSING_COMMA)


257-257: Streamline phrasing

Replace “by the use of” with “using” for brevity and clarity.

Suggested diff:

- This is accomplished by the use of multi-frame channels, see the [specs]...
+ This is accomplished using multi-frame channels; see the [specs]...
🧰 Tools
🪛 LanguageTool

[style] ~257-~257: ‘by the use of’ might be wordy. Consider a shorter alternative.
Context: ... blob transaction. This is accomplished by the use of multi-frame channels, see the [specs](h...

(EN_WORDINESS_PREMIUM_BY_THE_USE_OF)

pages/operators/chain-operators/tutorials/dispute-games.mdx (2)

152-152: Use sentence case for headings

Per guidelines, H2 headings should be sentence case. Change “## Next Steps” to:

## Next steps

154-157: Fix bullet styling and phrasing

  • Remove duplicate “deploying new dispute games” link.
  • Capitalize and use an imperative (“Check out…” instead of “checkout”).
  • Add periods for consistency.

Suggested:

- *   For more detail on deploying new dispute games with OPCM, [see the docs](/operators/chain-operators/tutorials/dispute-games).
- *   Learn about [absolute prestate](/operators/chain-operators/tutorials/absolute-prestate)
- *   checkout the [migrating to permissionless fault proofs](/operators/chain-operators/tutorials/migrating-permissionless) guide
- *   [Fault proofs explainer](/stack/fault-proofs/explainer)
+ *   Check out the [absolute prestate guide](/operators/chain-operators/tutorials/absolute-prestate).
+ *   Check out the [migrating to permissionless fault proofs guide](/operators/chain-operators/tutorials/migrating-permissionless).
+ *   Read the [Fault proofs explainer](/stack/fault-proofs/explainer).
pages/operators/chain-operators/tutorials/absolute-prestate.mdx (1)

278-278: Use sentence case for headings

Per guidelines, H2 headings should be sentence case. Change:

## Next Steps

to:

## Next steps
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx (4)

23-23: Refine introductory sentence to remove personal pronouns and improve clarity

Avoid using “we” in communal documentation; rephrase “so we can prove withdrawal validity” to “to prove withdrawal validity.” Also consider changing “state roots data” to “state root data” for consistency.


235-237: Use en dash for numeric ranges

Replace hyphens in ranges (e.g., “1-6 hours”, “30-60 minutes”, “5-15 minutes”) with an en dash (–) for typographical accuracy.

🧰 Tools
🪛 LanguageTool

[typographical] ~235-~235: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...-------------- | | Mainnet Production | 1-6 hours | Balance cost vs. wi...

(HYPHEN_TO_EN)


[typographical] ~236-~236: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...thdrawal speed | | High-Value Testnet | 30-60 minutes | More frequent for tes...

(HYPHEN_TO_EN)


[typographical] ~237-~237: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...esting | | Development | 5-15 minutes | Fast iteration cycle...

(HYPHEN_TO_EN)


239-241: Remove bold formatting for emphasis

Per style guidelines, avoid bold for emphasis. Change “Important:” to “Important:” without bold.


277-278: Capitalize and correct the verb in the Next steps bullet

Change “checkout the migrating to permissionless fault proofs guide” to “Check out the migrating to permissionless fault proofs guide” for consistency and proper imperative form.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 33ab6b9 and 6056903.

📒 Files selected for processing (6)
  • pages/operators/chain-operators/configuration/batcher.mdx (5 hunks)
  • pages/operators/chain-operators/tutorials/_meta.json (1 hunks)
  • pages/operators/chain-operators/tutorials/absolute-prestate.mdx (1 hunks)
  • pages/operators/chain-operators/tutorials/dispute-games.mdx (1 hunks)
  • pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (1 hunks)
  • pages/operators/chain-operators/tutorials/proposer-setup-guide.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:
    1. 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]
    ---
    1. 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]
    ---
    1. 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:
    1. Use sentence case, capitalizing only the first word.
    2. 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.
    3. 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
  • pages/operators/chain-operators/tutorials/absolute-prestate.mdx
  • pages/operators/chain-operators/tutorials/dispute-games.mdx
  • pages/operators/chain-operators/configuration/batcher.mdx
  • pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx
🪛 LanguageTool
pages/operators/chain-operators/configuration/batcher.mdx

[uncategorized] ~123-~123: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...fe head, often Centralized Exchanges or third party bridges wait until transactions are mar...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[uncategorized] ~169-~169: Possible missing comma found.
Context: ...This is to avoid sudden spikes in L1 DA-usage consuming too much available gas and ca...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~178-~178: Possible missing preposition found.
Context: ...geth version v1.101411.1 or later * Enable the miner API namespace: `GETH_HTTP_A...

(AI_HYDRA_LEO_MISSING_TO)


[uncategorized] ~221-~221: Possible missing comma found.
Context: ...vailability-type=<blobs|calldata|auto>flag or with theOP_BATCHER_DATA_AVAILABILI...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~257-~257: ‘by the use of’ might be wordy. Consider a shorter alternative.
Context: ... blob transaction. This is accomplished by the use of multi-frame channels, see the [specs](h...

(EN_WORDINESS_PREMIUM_BY_THE_USE_OF)

pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx

[typographical] ~235-~235: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...-------------- | | Mainnet Production | 1-6 hours | Balance cost vs. wi...

(HYPHEN_TO_EN)


[typographical] ~236-~236: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...thdrawal speed | | High-Value Testnet | 30-60 minutes | More frequent for tes...

(HYPHEN_TO_EN)


[typographical] ~237-~237: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...esting | | Development | 5-15 minutes | Fast iteration cycle...

(HYPHEN_TO_EN)

🪛 Gitleaks (8.26.0)
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx

116-116: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

⏰ 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 (2)
pages/operators/chain-operators/tutorials/_meta.json (1)

3-3: New tutorial metadata entry looks good

The new "proposer-setup-guide": "Spin up your proposer" entry correctly matches the new MDX filename and title. Everything appears consistent.

pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx (1)

1-17: Complete frontmatter metadata

All required fields (title, lang, description, content_type, topic, personas, categories) are present and non-empty.

krofax and others added 5 commits June 4, 2025 18:32
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
…less.mdx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a 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/proposer-setup-guide.mdx (2)

23-23: Avoid first-person plural pronoun “we”.

The sentence uses “so we can prove withdrawal validity.” Replace with “to prove withdrawal validity” to maintain an impersonal tone and avoid personal pronouns.


218-220: Use en dash for numeric ranges in tables.

Replace hyphens in “1-6 hours”, “30-60 minutes”, and “5-15 minutes” with en dashes (e.g., “1–6 hours”) for typographical accuracy.

🧰 Tools
🪛 LanguageTool

[typographical] ~218-~218: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...-------------- | | Mainnet Production | 1-6 hours | Balance cost vs. wi...

(HYPHEN_TO_EN)


[typographical] ~219-~219: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...thdrawal speed | | High-Value Testnet | 30-60 minutes | More frequent for tes...

(HYPHEN_TO_EN)


[typographical] ~220-~220: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...esting | | Development | 5-15 minutes | Fast iteration cycle...

(HYPHEN_TO_EN)

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1b7c798 and 00b8e4c.

📒 Files selected for processing (4)
  • pages/operators/chain-operators/tutorials/absolute-prestate.mdx (1 hunks)
  • pages/operators/chain-operators/tutorials/migrating-permissionless.mdx (1 hunks)
  • pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx (1 hunks)
  • words.txt (0 hunks)
💤 Files with no reviewable changes (1)
  • words.txt
✅ Files skipped from review due to trivial changes (1)
  • pages/operators/chain-operators/tutorials/migrating-permissionless.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • pages/operators/chain-operators/tutorials/absolute-prestate.mdx
🧰 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:
    1. 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]
    ---
    1. 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]
    ---
    1. 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:
    1. Use sentence case, capitalizing only the first word.
    2. 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.
    3. 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/proposer-setup-guide.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx

[typographical] ~218-~218: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...-------------- | | Mainnet Production | 1-6 hours | Balance cost vs. wi...

(HYPHEN_TO_EN)


[typographical] ~219-~219: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...thdrawal speed | | High-Value Testnet | 30-60 minutes | More frequent for tes...

(HYPHEN_TO_EN)


[typographical] ~220-~220: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...esting | | Development | 5-15 minutes | Fast iteration cycle...

(HYPHEN_TO_EN)

🪛 Gitleaks (8.26.0)
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx

100-100: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

⏰ 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 (2)
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx (2)

1-17: Frontmatter metadata is complete and valid.

All required fields (title, lang, description, content_type, topic, personas, categories) are present and non-empty.


26-27:

✅ Verification successful

Verify that all linked pages exist and resolve correctly.

Please ensure the relative links to other tutorials and tools (e.g., rollup creation, dispute games, migrating to permissionless fault proofs, fee calculator) match actual file paths.

Run this script from the repo root to confirm the files exist:

Also applies to: 258-262


🏁 Script executed:

#!/bin/bash
# Verify linked filenames exist
files=(
  "pages/operators/chain-operators/tutorials/create-l2-rollup.mdx"
  "pages/operators/chain-operators/tutorials/dispute-games.mdx"
  "pages/operators/chain-operators/tutorials/migrating-permissionless.mdx"
  "pages/operators/chain-operators/tools/fee-calculator.mdx"
)
for f in "${files[@]}"; do
  if [[ ! -f "$f" ]]; then
    echo "Error: $f not found"
  fi
done

Length of output: 671


All linked pages verified
The relative links to the rollup creation, dispute games, migrating to permissionless fault proofs, and fee calculator tutorials all point to existing files in pages/operators/chain-operators/. No further action needed.


* **State commitment**: Proposing L2 state roots to L1 at regular intervals
* **Withdrawal enablement**: Providing the necessary commitments for users to prove and finalize withdrawals
* **Data availability**: Ensuring L2 state transitions are verifiable from L1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can delete this, this is the batcher's job


### Essential parameters

| Parameter | Recommended Value | Description |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These need to be updated based on my config review values. I can make a commit to get these updated

Description=OP Stack Proposer
After=network.target

[Service]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated a couple of the values below based on my config review

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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/proposer-setup-guide.mdx (3)

23-24: Avoid first-person pronouns
Replace "so we can prove withdrawal validity" with an impersonal construction.

- After you have spun up your sequencer, you need to attach a proposer to post your L2 state roots data back onto L1 so we can prove withdrawal validity.
+ After you have spun up your sequencer, you need to attach a proposer to post your L2 state roots data back onto L1 to enable withdrawal validity proofs.

216-218: Use en dashes for ranges in table
Replace hyphens with en dashes for consistency and typographical correctness.

-| Mainnet Production | 1-6 hours             | Balance cost vs. withdrawal speed |
-| High-Value Testnet | 30-60 minutes         | More frequent for testing         |
-| Development        | 5-15 minutes          | Fast iteration cycles             |
+| Mainnet Production | 1–6 hours             | Balance cost vs. withdrawal speed |
+| High-Value Testnet | 30–60 minutes         | More frequent for testing         |
+| Development        | 5–15 minutes          | Fast iteration cycles             |
🧰 Tools
🪛 LanguageTool

[typographical] ~216-~216: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...-------------- | | Mainnet Production | 1-6 hours | Balance cost vs. wi...

(HYPHEN_TO_EN)


[typographical] ~217-~217: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...thdrawal speed | | High-Value Testnet | 30-60 minutes | More frequent for tes...

(HYPHEN_TO_EN)


[typographical] ~218-~218: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...esting | | Development | 5-15 minutes | Fast iteration cycle...

(HYPHEN_TO_EN)


258-258: Correct “checkout” to “check out”
Use the imperative verb form as two words.

-*   checkout the [migrating to permissionless fault proofs](/operators/chain-operators/tutorials/migrating-permissionless) guide
+*   Check out the [migrating to permissionless fault proofs](/operators/chain-operators/tutorials/migrating-permissionless) guide
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 00b8e4c and 538b1bc.

📒 Files selected for processing (2)
  • pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx (1 hunks)
  • words.txt (1 hunks)
✅ Files skipped from review due to trivial 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:
    1. 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]
    ---
    1. 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]
    ---
    1. 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:
    1. Use sentence case, capitalizing only the first word.
    2. 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.
    3. 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/proposer-setup-guide.mdx
🪛 LanguageTool
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx

[typographical] ~216-~216: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...-------------- | | Mainnet Production | 1-6 hours | Balance cost vs. wi...

(HYPHEN_TO_EN)


[typographical] ~217-~217: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...thdrawal speed | | High-Value Testnet | 30-60 minutes | More frequent for tes...

(HYPHEN_TO_EN)


[typographical] ~218-~218: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...esting | | Development | 5-15 minutes | Fast iteration cycle...

(HYPHEN_TO_EN)

🪛 Gitleaks (8.26.0)
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx

98-98: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

⏰ 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 (1)
pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx (1)

1-17: Frontmatter validation
All required metadata fields (title, lang, description, topic, personas, categories, content_type) are present and non-empty.

The proposer (`op-proposer`) serves as a crucial bridge between your L2 chain and L1 Ethereum. Its primary responsibilities include:

* **State commitment**: Proposing L2 state roots to L1 at regular intervals
* **Withdrawal enablement**: Providing the necessary commitments for users to prove and finalize withdrawalsz
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix typo in withdrawal description
There’s an extraneous “z” at the end of “withdrawalsz.”

- *   **Withdrawal enablement**: Providing the necessary commitments for users to prove and finalize withdrawalsz
+ *   **Withdrawal enablement**: Providing the necessary commitments for users to prove and finalize withdrawals
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* **Withdrawal enablement**: Providing the necessary commitments for users to prove and finalize withdrawalsz
* **Withdrawal enablement**: Providing the necessary commitments for users to prove and finalize withdrawals
🤖 Prompt for AI Agents
In pages/operators/chain-operators/tutorials/proposer-setup-guide.mdx at line
34, remove the extraneous "z" at the end of the word "withdrawalsz" to correct
the typo and make it "withdrawals."

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants