Skip to content

Phase 8: Network Soak and Observability #331

Description

@rootwarp

Plan reference: plan/glamsterdam-2026-09-05/issues/08-phase-8-network-soak-and-observability.md

Goal: make the fork boundary observable (P2-1), soak on the first public network that schedules Gloas with the zero-slashing gate enforced, re-pin SPEC_TAG to that network's shipped spec release, and drive mainnet readiness to evidence complete. release approved is a separate state this phase cannot reach (D16). Issues: 11 · Points: 20 · Duration: ~10 working days single-stream (8.8 additionally waits 14 elapsed days; the wait is not effort).

Entry criteria: Phase 7 complete (devnet metrics met, fork-transition test green in CI; 7.6 landed the PTC counters and 7.2b landed the validator_perf.py SLOT_DURATION_MS read). 8.9a–8.10 additionally require a public network with a real GLOAS_FORK_EPOCH in its config and a published spec release tag for it. 8.1–8.7 need no such network and start as soon as P7 lands.

Exit criteria (D16 — this phase closes on evidence complete, never on release approved):

  • evidence complete — objectively closeable by this phase's own issues: every KAT layer (L1–L5) all green against the network's shipped spec tag before the soak starts (8.9a → 8.9b, D26); ≥ 14 consecutive stable days on that network (never a calendar date) on the exact build that passed, 0 slashable events; readiness evidence recorded in docs/gloas-observability.md by 8.10. This is Phase 8's exit gate. A KAT failure with a verdict is a triage result that blocks the soak; it never satisfies this state.
  • release approved — an explicit decision by the named accountable role, which is UNASSIGNED (Q1). It is tracked separately, blocked pending assignment, and is the only state that closes the mainnet-readiness milestone. Recording the gap is not approval, and no issue here may self-approve or substitute a recorded gap for a decision.

Summary and execution plan (Day = effort day, single stream)

Day Issue Title Pts Blocked by Scope Files
1–1.5 8.1 Fork-resolution gauges + boundary log lines 3 P2, P7 1.5 d eth-types/src/fork.rs, rvc/src/metrics.rs, rvc/src/orchestrator/coordinator/mod.rs
2 8.2 PTC counters — verification no-op (7.6 implements) 0 P7 (7.6) < 0.5 d none (verify rvc/src/metrics.rs)
2 8.3 BN capability gauge — consume 6.7's family, label hygiene 1 8.2, P6 (6.7) 0.5 d bn-manager/src/{metrics,types}.rs
3 8.4 Signer rejections by sign type and version 2 8.3, P4 (4.9, 4.10) 1 d signer/src/metrics.rs, signer/src/lib.rs
4 8.5 SLOT_DURATION_MS read — verification checkpoint (7.2b implements) 0 P7 (7.2b) < 0.5 d none (verify scripts/validator_perf.py)
4 8.6 Pre-fork alerting rules + operator dashboard doc 2 8.1–8.5 1 d docs/gloas-observability.md
5–5.5 8.7 Soak evidence harness + zero-slashing check 3 8.5, 8.6 1.5 d scripts/gloas_soak_snapshot.sh, scripts/tests/
6 8.9a Re-pin SPEC_TAG to the network's shipped tag, cold-cache regen + provenance — before the soak (D26) 2 8.7, Q2 (tag published) 1 d rvc-spec-vectors, spec_kat.rs, Makefile
7–8 8.9b Root-diff triage + L1–L5 all-green verdict on the build to be soaked 3 8.9a 1.5 d project-plan.md Decision Log
8.5–9.5 (+14 elapsed) 8.8 Soak run on the first scheduling network, on the build 8.9b passed 3 8.9b 1.5 d effort / 14 d elapsed soak log, docs/gloas-observability.md
10 8.10 Readiness record — evidence complete declared, release approved tracked 1 8.8 0.5 d docs/gloas-observability.md

Sub-issues

  • 8.1 Fork-resolution gauges and fork-boundary log lines
  • 8.2 PTC duty and submission counters — verification no-op
  • 8.3 BN capability-state gauge — consume 6.7's family and pin label hygiene
  • 8.4 Signer rejections by sign type and version
  • 8.5 SLOT_DURATION_MS read — verification checkpoint
  • 8.6 Pre-fork alerting rules and operator dashboard doc
  • 8.7 Soak evidence harness and zero-slashing check
  • 8.9a Re-pin SPEC_TAG and regenerate vectors from a cold cache
  • 8.9b Root-diff triage and the L1–L5 all-green verdict on the build to be soaked
  • 8.8 Soak run on the first scheduling public network
  • 8.10 Readiness record — evidence complete declared, release approved tracked

Plan ID → GitHub issue

Plan ID Issue Title
8.1 #332 [8.1] Fork-resolution gauges and fork-boundary log lines
8.2 #333 [8.2] PTC duty and submission counters — verification no-op
8.3 #334 [8.3] BN capability-state gauge — consume 6.7's family and pin label hygiene
8.4 #335 [8.4] Signer rejections by sign type and version
8.5 #336 [8.5] SLOT_DURATION_MS read — verification checkpoint
8.6 #337 [8.6] Pre-fork alerting rules and operator dashboard doc
8.7 #338 [8.7] Soak evidence harness and zero-slashing check
8.8 #339 [8.8] Soak run on the first scheduling public network
8.9a #340 [8.9a] Re-pin SPEC_TAG and regenerate vectors from a cold cache
8.9b #341 [8.9b] Root-diff triage and the L1–L5 all-green verdict on the build to be soaked
8.10 #342 [8.10] Readiness record — evidence complete declared, release approved tracked

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    phasePhase-level tracking issue

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions