Skip to content

Insufficient test coverage and CI coverage for production validator #79

Description

@joellidin

Summary

The Crusades validator infrastructure lacks sufficient automated testing and continuous integration coverage to reliably detect outages, API failures, and evaluation pipeline breaks in production.

Recent Incident

On [current date], the validator API (69.19.136.151:8080) became unresponsive, resulting in:

  • Complete halt of submission evaluations
  • Miner submissions queueing indefinitely without feedback
  • Web dashboard showing stale data (last update ~April 2)
  • No automated alerting to operators

The outage was only detected via manual miner reports rather than automated monitoring.

Proposed Requirements

1. Health Check & Monitoring

  • Automated health checks for validator API endpoints
  • Alerting mechanism (Discord/Slack/PagerDuty) for operator notification
  • Dashboard heartbeat endpoint for external monitoring

2. Test Coverage

  • Unit tests for evaluation pipeline components
  • Integration tests for Docker evaluation environment
  • End-to-end tests for full submission flow (commit → reveal → evaluate → score)
  • Mock tests for Basilica cloud integration path

3. CI/CD Pipeline

  • Automated test execution on PR
  • Docker image build verification
  • Security scanner validation tests
  • Test coverage reporting (target: >80%)

4. Operational Resilience

  • Automatic retry logic for transient failures
  • Queue depth monitoring with thresholds
  • Graceful degradation paths when components fail

Context

As discussed with @distributed_tensor and @adamw — the current validator requires manual human monitoring ("1 human watching it") which is not sustainable. Automated detection of validator outages should trigger operator alerts without relying on manual miner reports.

Priority

High — Production stability impacts all miners on subnet 3.

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions