- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
129 lines
4.2 KiB
Markdown
129 lines
4.2 KiB
Markdown
# Optimized Deployment - Maximum Validators (48 Validators)
|
||
|
||
## Strategy: Maximum Validators for Best Consensus Resilience
|
||
|
||
This configuration maximizes the number of validators to get the "biggest bang" from the 240 vCPU quota.
|
||
|
||
## Configuration
|
||
|
||
### Per-Region Resources (10 vCPUs)
|
||
- **System Nodes**: 3 × Standard_D2s_v3 = 6 vCPUs
|
||
- **Validator Nodes**: 2 × Standard_B2s = 4 vCPUs
|
||
- **Sentry Nodes**: 0 (deploy as pods on system nodes - no quota needed)
|
||
- **Total**: 10 vCPUs per region ✅
|
||
|
||
### Total Resources (24 Regions)
|
||
- **System Nodes**: 72 (3 × 24 regions) = 144 vCPUs
|
||
- **Validator Nodes**: 48 (2 × 24 regions) = 96 vCPUs
|
||
- **Sentry Nodes**: 0 (deploy as pods - no quota)
|
||
- **Total**: 120 nodes, 240 vCPUs ✅
|
||
|
||
## Benefits of 48 Validators
|
||
|
||
### Consensus Resilience
|
||
- **Current (24 validators)**: 13 minimum for consensus, 11 can fail
|
||
- **Optimized (48 validators)**: 25 minimum for consensus, 23 can fail
|
||
- **Improvement**: 2x fault tolerance!
|
||
|
||
### Network Security
|
||
- **Geographic Distribution**: 2 validators per region = better redundancy
|
||
- **Attack Resistance**: Much harder to compromise 25+ validators
|
||
- **Decentralization**: More validators = better network decentralization
|
||
|
||
### Performance
|
||
- **Block Production**: More validators = better block distribution
|
||
- **Network Resilience**: Can lose entire regions and still maintain consensus
|
||
- **Fault Tolerance**: Can handle 23 validator failures (vs 11 previously)
|
||
|
||
## Sentry Strategy
|
||
|
||
### Deploy Sentries as Pods
|
||
- **No Quota Needed**: Sentries run on system nodes
|
||
- **Cost Effective**: No additional VM costs
|
||
- **Flexible**: Can scale sentries independently
|
||
- **Resource Sharing**: System nodes have capacity for sentry pods
|
||
|
||
### Sentry Pod Configuration
|
||
- **Deployment**: Kubernetes pods on system nodes
|
||
- **Resources**: 1-2 vCPUs, 2-4GB RAM per sentry
|
||
- **Count**: 1-2 sentries per region (flexible)
|
||
- **Total**: 24-48 sentry pods (no quota impact)
|
||
|
||
## Cost Analysis
|
||
|
||
### Per Region
|
||
- **System Nodes**: 3 × Standard_D2s_v3 = ~$210/month
|
||
- **Validator Nodes**: 2 × Standard_B2s = ~$30/month
|
||
- **Sentry Pods**: $0 (runs on system nodes)
|
||
- **Total per Region**: ~$240/month
|
||
|
||
### Total (24 Regions)
|
||
- **System Nodes**: 72 × Standard_D2s_v3 = ~$5,040/month
|
||
- **Validator Nodes**: 48 × Standard_B2s = ~$720/month
|
||
- **Sentry Pods**: $0
|
||
- **Total**: ~$5,760/month
|
||
|
||
## Comparison
|
||
|
||
| Metric | 24 Validators | 48 Validators | Improvement |
|
||
|--------|---------------|---------------|-------------|
|
||
| Validators | 24 | 48 | 2x |
|
||
| Fault Tolerance | 11 failures | 23 failures | 2x |
|
||
| Consensus Minimum | 13 | 25 | Better security |
|
||
| Sentries | 24 VMs | 24-48 pods | Cost savings |
|
||
| Total Cost | ~$5,760/month | ~$5,760/month | Same cost |
|
||
|
||
## Network Architecture
|
||
|
||
### Validators (48)
|
||
- **Role**: Consensus and block production
|
||
- **Distribution**: 2 per region
|
||
- **Peering**: Via sentry pods (private)
|
||
- **Consensus**: QBFT 2.0 (48 validators = 25 minimum for consensus)
|
||
|
||
### Sentries (24-48 Pods)
|
||
- **Role**: P2P relay and protection
|
||
- **Distribution**: 1-2 pods per region
|
||
- **Deployment**: Kubernetes pods on system nodes
|
||
- **Public Access**: Yes (P2P port 30303)
|
||
|
||
### System Nodes (72)
|
||
- **Role**: Kubernetes system workloads + sentry pods
|
||
- **Distribution**: 3 per region
|
||
- **Workloads**: Monitoring, logging, ingress, sentries
|
||
|
||
## Deployment Strategy
|
||
|
||
### Phase 1: Foundation (Complete)
|
||
- ✅ Cloud for Sovereignty foundation deployed
|
||
|
||
### Phase 2: AKS Clusters
|
||
- Deploy AKS clusters in 24 regions
|
||
- 3 system nodes per cluster
|
||
- Total: 72 system nodes
|
||
|
||
### Phase 3: Validator Node Pools
|
||
- Deploy validator node pools in 24 regions
|
||
- 2 validators per region
|
||
- Total: 48 validator nodes
|
||
|
||
### Phase 4: Sentry Pods
|
||
- Deploy sentry pods on system nodes
|
||
- 1-2 sentries per region
|
||
- Total: 24-48 sentry pods (no quota)
|
||
|
||
### Phase 5: Besu Network
|
||
- Deploy Besu validators on validator nodes
|
||
- Deploy Besu sentries as pods
|
||
- Configure peering between regions
|
||
- Start consensus network
|
||
|
||
## Recommendation
|
||
|
||
✅ **Use 48 Validators Configuration** - This gives the "biggest bang" by:
|
||
1. Doubling validator count (24 → 48)
|
||
2. Doubling fault tolerance (11 → 23 failures)
|
||
3. Better consensus security (25 minimum vs 13)
|
||
4. Same cost (~$5,760/month)
|
||
5. Sentries as pods (no quota, flexible scaling)
|