Files
proxmox/docs/archive/VALIDATION_SUMMARY.md

4.2 KiB

Validation Summary - All Requirements Enforced

All 5 Requirements Are Now Validated

1. Node and Config Files Accuracy

Validation: validate-deployment-comprehensive.sh validates:

  • All configuration files exist at correct paths per node type
  • File permissions are correct
  • Correct config file type per node:
    • Validators use config-validator.toml only
    • Sentries use config-sentry.toml only
    • RPC nodes use config-rpc-public.toml only
  • Files are identical across nodes where expected
  • No incorrect files present

Pre-deployment: check-prerequisites.sh validates file existence


2. Validator Information in Genesis.json

Validation: Both scripts validate:

  • QBFT configuration present in genesis.json
  • extraData field exists and is valid hex format
  • For dynamic validators: No static validators array in QBFT config
  • Genesis.json is identical across all nodes

Pre-deployment: check-prerequisites.sh validates structure before deployment Post-deployment: validate-deployment-comprehensive.sh validates consistency


3. Correct Number of Nodes and Templates

Validation: validate-deployment-comprehensive.sh validates:

  • Exactly 5 validators (VMID 106-110)
  • Exactly 4 sentries (VMID 111-114)
  • Exactly 3 RPC nodes (VMID 115-117)
  • Each node type uses correct configuration template
  • No incorrect templates present

Configuration: proxmox.conf defines correct counts:

  • VALIDATOR_COUNT=5
  • SENTRY_COUNT=4
  • RPC_COUNT=3

4. No Inconsistencies or Gaps

Validation: validate-deployment-comprehensive.sh validates:

  • All required files present on all nodes
  • Configuration files identical where expected (genesis.json, permissions-nodes.toml, static-nodes.json)
  • Validator keys present and properly formatted
  • File syntax valid (JSON/TOML)
  • No orphaned or incorrect files

5. Genesis.json Changes Minimal and Validated

Validation: Both scripts validate:

  • Genesis.json syntax is valid JSON
  • extraData field format is valid (hex string or empty)
  • QBFT configuration is present and correct
  • Genesis.json structure matches expected format
  • Changes are validated before and after deployment

Pre-deployment: Structure and syntax validated Post-deployment: Consistency and content validated


Validation Flow

Phase 1: Pre-Deployment (check-prerequisites.sh)

  • Run before deployment starts
  • Validates source project structure
  • Validates genesis.json structure and content
  • Validates validator key count (5 validators)
  • Validates required files exist

Phase 2: Post-Deployment (validate-deployment-comprehensive.sh)

  • Run after deployment completes
  • Validates all 5 requirements
  • Ensures no gaps or inconsistencies
  • Provides detailed error reporting

Integration

  • Automatically called by deploy-validated-set.sh in Phase 4
  • Deployment stops if validation fails
  • Errors must be fixed before proceeding

Error Handling

Errors: Prevent deployment or stop deployment if found

  • Missing required files
  • Wrong config file type for node
  • Invalid genesis.json structure
  • Node count mismatch
  • Invalid validator address format
  • Configuration inconsistencies

Warnings: Allow deployment but notify for review

  • Optional file missing
  • Non-critical validation issues

Usage

# Pre-deployment validation
./scripts/validation/check-prerequisites.sh /path/to/smom-dbis-138

# Post-deployment validation
./scripts/validation/validate-deployment-comprehensive.sh

# Full deployment with validation
./scripts/deployment/deploy-validated-set.sh --source-project /path/to/smom-dbis-138

Validation Checklist

Before deployment:

  • Prerequisites check passes (0 errors)
  • Genesis.json validated
  • Validator keys validated (5 validators)
  • All source files exist

After deployment:

  • Node count matches expected (5 validators, 4 sentries, 3 RPC)
  • Correct templates used per node type
  • All files in correct locations
  • Genesis.json consistent and valid
  • Validator keys present and valid
  • Configuration files consistent
  • No inconsistencies or gaps

Status: All 5 requirements are comprehensively validated