149 lines
4.2 KiB
Markdown
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
|
|
|