Skip to content

docs(validators): add staking penalties & quarantine recovery pages#433

Open
MuncleUscles wants to merge 2 commits into
mainfrom
docs/staking-mechanics
Open

docs(validators): add staking penalties & quarantine recovery pages#433
MuncleUscles wants to merge 2 commits into
mainfrom
docs/staking-mechanics

Conversation

@MuncleUscles

Copy link
Copy Markdown
Member

Description

Validators searching docs.genlayer.com for quarantine / ban / idleness / strike semantics previously found nothing — the slashing concept page is short and never uses any of those terms. This PR fixes that by adding two validator-ops pages and cross-linking them from the pages operators already read.

New pages:

  • pages/validators/staking-penalties.mdx — "Staking Mechanics: Penalties & Validator Lifecycle"

    • Validator lifecycle table (active / not active / not participating / quarantined-temporarily-banned / permanently banned).
    • Idleness and the strike system (per-epoch, resets each boundary; threshold is a governance parameter, documented default 3).
    • Quarantine vs. temporary ban vs. permanent ban, including the on-chain unified excluded-validator query surface and the 2-epoch governance delay.
    • Slashing: lazy + time-locked enactment (applied at the next validatorPrime(), ~2 epochs later) and the full slashing schedule (idleness / failure-to-reveal / deterministic violation / incorrect result / failed appeal) with the 80/20 self-delegated split.
    • A table mapping what an operator observes while monitoring to the underlying protocol state.
  • pages/validators/quarantine-recovery.mdx — "Quarantine Recovery"

    • Operator runbook: diagnose the cause (idleness strikes vs. below-minimum stake vs. not-primed / version / RPC), the recovery path per cause, and when to escalate (permanent ban).

Navigation & cross-links:

  • Both pages added to pages/validators/_meta.json (after Setup Guide).
  • Cross-linked from setup-guide.mdx (intro + Managing Your Validator), the Genesis Epoch 0 section and Related Resources of developers/staking-guide.mdx, and the slashing.mdx concept page (which now introduces idleness / quarantine / ban vocabulary and links out).

Facts are sourced from the genlayer-consensus staking-system spec (docs/spec/04-staking-system.md, v0.6-dev). Governance-tunable and testnet values are labelled "reference/default"; nothing is fabricated. All numbers that could drift are described qualitatively or flagged as governance parameters.

Validation: scripts/list-docs-routes.js registers both new routes (154 total); scripts/generate-full-docs.js passes (209 pages), and both pages appear in the per-page .md mirrors, the validators/llms-full.txt bundle, and llms.txt with descriptions. All internal links resolve to real pages.

Release Notes

Added two validator documentation pages — "Staking Mechanics: Penalties & Validator Lifecycle" and "Quarantine Recovery" — documenting idleness strikes, quarantine, temporary/permanent bans, the slashing schedule, and an operator recovery runbook. Cross-linked from the setup guide, staking guide, and slashing concept page.

Types of Changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • My change requires a change to the documentation (this PR is the documentation change).
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • My changes generate no new warnings (generate-full-docs.js and list-docs-routes.js pass; new routes register; internal links resolve).

Adds two validator-ops pages so operators can look up quarantine, ban,
idleness, and strike semantics on docs.genlayer.com — previously the
slashing concept page never used any of those terms.

- staking-penalties: idleness strike system, quarantine vs temporary vs
  permanent ban, the slashing schedule (lazy + 2-epoch time-locked), and
  a table mapping monitoring status to on-chain protocol states.
- quarantine-recovery: operator runbook to diagnose (strikes vs
  below-minimum vs not-primed/version/RPC), recover per cause, and know
  when to escalate to permanent ban.

Wires both into pages/validators/_meta.json and cross-links from the
setup guide, the Genesis Epoch 0 section of the staking guide, and the
slashing concept page. Facts sourced from the genlayer-consensus
staking-system spec (v0.6-dev).
@netlify

netlify Bot commented Jul 3, 2026

Copy link
Copy Markdown

Deploy Preview for genlayer-docs ready!

Name Link
🔨 Latest commit a0c650b
🔍 Latest deploy log https://app.netlify.com/projects/genlayer-docs/deploys/6a4793722fc0530008ed1d39
😎 Deploy Preview https://deploy-preview-433--genlayer-docs.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.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@MuncleUscles, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 49 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 338ce1c1-f493-4e05-8323-556e9bb1801c

📥 Commits

Reviewing files that changed from the base of the PR and between 19558ee and a0c650b.

📒 Files selected for processing (6)
  • pages/developers/staking-guide.mdx
  • pages/understand-genlayer-protocol/core-concepts/optimistic-democracy/slashing.mdx
  • pages/validators/_meta.json
  • pages/validators/quarantine-recovery.mdx
  • pages/validators/setup-guide.mdx
  • pages/validators/staking-penalties.mdx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/staking-mechanics

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

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant