Files
proxmox/docs/archive/VALIDATION_SUMMARY.md

149 lines
4.2 KiB
Markdown

# 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
```bash
# 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