- 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.
172 lines
4.4 KiB
Markdown
172 lines
4.4 KiB
Markdown
# Exact Validator and RPC Configuration
|
||
|
||
## Subscription: 6d3c4263-bba9-497c-8843-eae6c4e87192
|
||
|
||
## Core Requirements
|
||
|
||
### ✅ Validator Nodes
|
||
- **Deployment**: ALL 42 non-US Commercial Azure regions
|
||
- **VM Size**: `Standard_D4_v2` (4 vCPUs) - **SAME across ALL regions**
|
||
- **VM Family**: Dv2 Family
|
||
- **Count**: 1 validator per region
|
||
- **Total Validators**: 42 nodes
|
||
|
||
### ✅ RPC Nodes (Core Backbone)
|
||
- **Deployment**: ALL 42 non-US Commercial Azure regions
|
||
- **VM Size**: `Standard_D8s_v6` (8 vCPUs) - **SAME across ALL regions**
|
||
- **VM Family**: Dsv6 Family
|
||
- **Count**: 1 RPC node per region
|
||
- **Total RPC Nodes**: 42 nodes
|
||
|
||
### ✅ System Nodes
|
||
- **Deployment**: ALL 42 regions (AKS required)
|
||
- **VM Size**: `Standard_D2_v2` (2 vCPUs)
|
||
- **VM Family**: Dv2 Family
|
||
- **Count**: 1 system node per region
|
||
- **Total System Nodes**: 42 nodes
|
||
|
||
### ⚪ Sentry Nodes
|
||
- **Deployment**: Distributed as needed (0-1 per region)
|
||
- **VM Size**: `Standard_D4_v2` (4 vCPUs)
|
||
- **VM Family**: Dv2 Family
|
||
- **Count**: 0-42 sentry nodes (distributed)
|
||
|
||
## Exact Per-Region Configuration
|
||
|
||
### Standard Configuration (All 42 Regions)
|
||
|
||
```hcl
|
||
# Validator: SAME across ALL regions
|
||
validator_vm_size = "Standard_D4_v2" # 4 vCPUs - Dv2 Family
|
||
|
||
# RPC: SAME across ALL regions (core backbone)
|
||
rpc_vm_size = "Standard_D8s_v6" # 8 vCPUs - Dsv6 Family
|
||
|
||
# System: Required for AKS
|
||
system_vm_size = "Standard_D2_v2" # 2 vCPUs - Dv2 Family
|
||
|
||
# Sentry: Distributed as needed
|
||
sentry_vm_size = "Standard_D4_v2" # 4 vCPUs - Dv2 Family
|
||
|
||
# Node counts
|
||
node_count = {
|
||
system = 1 # Required for AKS
|
||
validators = 1 # Required in ALL regions (SAME VM size)
|
||
sentries = 0 # Optional, distributed as needed
|
||
rpc = 1 # Required in ALL regions (core backbone)
|
||
}
|
||
```
|
||
|
||
## All 42 Regions
|
||
|
||
1. Belgium Central (bc)
|
||
2. Brazil South (bs)
|
||
3. Brazil Southeast (bse)
|
||
4. Canada Central (cc)
|
||
5. Canada East (ce)
|
||
6. Central India (ci)
|
||
7. Chile Central (chc)
|
||
8. East Asia (ea)
|
||
9. France Central (fc)
|
||
10. France South (fs)
|
||
11. Germany North (gn)
|
||
12. Germany West Central (gwc)
|
||
13. Indonesia Central (ic)
|
||
14. Israel Central (ilc)
|
||
15. Italy North (in)
|
||
16. Japan East (je)
|
||
17. Japan West (jw)
|
||
18. Jio India Central (jic)
|
||
19. Jio India West (jiw)
|
||
20. Korea Central (kc)
|
||
21. Korea South (ks)
|
||
22. Malaysia West (mw)
|
||
23. Mexico Central (mc)
|
||
24. New Zealand North (nzn)
|
||
25. North Europe (ne)
|
||
26. Norway East (no)
|
||
27. Norway West (nw)
|
||
28. Poland Central (pc)
|
||
29. Qatar Central (qc)
|
||
30. South Africa North (san)
|
||
31. South Africa West (saw)
|
||
32. Southeast Asia (sea)
|
||
33. South India (si)
|
||
34. Spain Central (sc)
|
||
35. Sweden Central (swc)
|
||
36. Switzerland North (sn)
|
||
37. Switzerland West (sw)
|
||
38. UAE Central (uac)
|
||
39. UAE North (uan)
|
||
40. UK South (uks)
|
||
41. UK West (ukw)
|
||
42. West Europe (we)
|
||
43. West India (wi)
|
||
|
||
## Quota Requirements Per Region
|
||
|
||
### Minimum (without sentries)
|
||
- **Dv2 Family**: 6 vCPUs (system: 2, validators: 4)
|
||
- **Dsv6 Family**: 8 vCPUs (RPC: 8)
|
||
- **Total**: 14 vCPUs per region
|
||
|
||
### With Sentries
|
||
- **Dv2 Family**: 10 vCPUs (system: 2, validators: 4, sentries: 4)
|
||
- **Dsv6 Family**: 8 vCPUs (RPC: 8)
|
||
- **Total**: 18 vCPUs per region
|
||
|
||
## Total Global Quota Requirements
|
||
|
||
### Minimum (without sentries)
|
||
- **Dv2 Family**: 252 vCPUs (6 × 42 regions)
|
||
- **Dsv6 Family**: 336 vCPUs (8 × 42 regions)
|
||
- **Total**: 588 vCPUs
|
||
|
||
### Maximum (with sentries)
|
||
- **Dv2 Family**: 420 vCPUs (10 × 42 regions)
|
||
- **Dsv6 Family**: 336 vCPUs (8 × 42 regions)
|
||
- **Total**: 756 vCPUs
|
||
|
||
## Deployment
|
||
|
||
### Configuration File
|
||
- **Main Config**: `terraform/multi-region-global.tf`
|
||
- **Region Codes**: `terraform/locals.tf`
|
||
|
||
### Enable Deployment
|
||
|
||
```bash
|
||
cd terraform
|
||
# Edit terraform.tfvars to set:
|
||
# enable_multi_region = true
|
||
|
||
terraform init
|
||
terraform plan -out=tfplan
|
||
terraform apply tfplan
|
||
```
|
||
|
||
## Validation
|
||
|
||
### Verify Validator Consistency
|
||
All 42 regions must use `Standard_D4_v2` for validators:
|
||
```bash
|
||
terraform output global_multi_region_clusters | grep validator_vm
|
||
# Should show Standard_D4_v2 for all regions
|
||
```
|
||
|
||
### Verify RPC Backbone
|
||
All 42 regions must have RPC nodes with `Standard_D8s_v6`:
|
||
```bash
|
||
terraform output global_multi_region_clusters | grep rpc_vm
|
||
# Should show Standard_D8s_v6 for all regions
|
||
```
|
||
|
||
## Summary
|
||
|
||
- ✅ **42 validator nodes** - Same VM size (`Standard_D4_v2`) across ALL regions
|
||
- ✅ **42 RPC nodes** - Same VM size (`Standard_D8s_v6`) across ALL regions (core backbone)
|
||
- ✅ **42 system nodes** - Required for AKS in all regions
|
||
- ⚪ **0-42 sentry nodes** - Distributed as needed
|
||
- ✅ **Total: 126-168 nodes** across 42 regions
|
||
|