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.tomlonly - Sentries use
config-sentry.tomlonly - RPC nodes use
config-rpc-public.tomlonly
- Validators use
- 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
extraDatafield exists and is valid hex format- For dynamic validators: No static
validatorsarray 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=5SENTRY_COUNT=4RPC_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
extraDatafield 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.shin 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