# Validator and RPC Node Deployment Strategy ## Core Requirements ### Validator Nodes - **Deployment**: ALL non-US Commercial Azure regions (42 regions) - **VM Size**: `Standard_D4_v2` (4 vCPUs) - **MUST be the SAME across ALL regions** - **VM Family**: Dv2 Family - **Count**: 1 validator per region (minimum for consensus) - **Purpose**: Consensus and block validation - **Critical**: All validator nodes must use identical VM specifications ### RPC Nodes (Core Backbone) - **Deployment**: ALL non-US Commercial Azure regions (42 regions) - **VM Size**: `Standard_D8s_v6` (8 vCPUs) - **MUST be the SAME across ALL regions** - **VM Family**: Dsv6 Family - **Count**: 1 RPC node per region (core backbone) - **Purpose**: Internal networking, core backbone infrastructure - **Critical**: RPC nodes are the internally networked backbone - must be in ALL regions ### System Nodes - **Deployment**: ALL regions (required for AKS) - **VM Size**: `Standard_D2_v2` (2 vCPUs) - **VM Family**: Dv2 Family - **Count**: 1 system node per region - **Purpose**: AKS system pool ### Sentry Nodes - **Deployment**: Distributed as needed based on quotas - **VM Size**: `Standard_D4_v2` (4 vCPUs) - **VM Family**: Dv2 Family - **Count**: 0-1 per region (distributed) - **Purpose**: P2P connectivity - **Note**: Can be distributed based on quota availability ## All 42 Non-US Commercial Azure Regions | # | Region | Code | Validator | RPC | System | Sentry | |---|--------|------|-----------|-----|--------|--------| | 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 | ✅ | ✅ | ✅ | ⚪ | **Legend**: ✅ = Required, ⚪ = Optional (distributed) ## Per-Region Configuration ### Standard Configuration ```hcl 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) } vm_families = { system = "Standard_D2_v2" # 2 vCPUs - Dv2 Family validators = "Standard_D4_v2" # 4 vCPUs - Dv2 Family (SAME across ALL) sentries = "Standard_D4_v2" # 4 vCPUs - Dv2 Family (distributed) rpc = "Standard_D8s_v6" # 8 vCPUs - Dsv6 Family (SAME across ALL) } ``` ### Quota Requirements Per Region - **Dv2 Family**: 6 vCPUs (system: 2, validators: 4, sentries: 0) - **Dsv6 Family**: 8 vCPUs (RPC: 8) - **Total**: 14 vCPUs per region (minimum) With sentries: - **Dv2 Family**: 10 vCPUs (system: 2, validators: 4, sentries: 4) - **Dsv6 Family**: 8 vCPUs (RPC: 8) - **Total**: 18 vCPUs per region (with sentries) ## Total Deployment Summary ### Global Resources - **Total Regions**: 42 (all non-US Commercial Azure) - **Total Validator Nodes**: 42 (1 per region, SAME VM size) - **Total RPC Nodes**: 42 (1 per region, core backbone) - **Total System Nodes**: 42 (1 per region, AKS) - **Total Sentry Nodes**: 0-42 (distributed as needed) - **Total Nodes**: 126-168 nodes ### Total vCPUs **Minimum (without sentries)**: - **Dv2 Family**: 252 vCPUs (6 per region × 42) - **Dsv6 Family**: 336 vCPUs (8 per region × 42) - **Total**: 588 vCPUs **Maximum (with sentries)**: - **Dv2 Family**: 420 vCPUs (10 per region × 42) - **Dsv6 Family**: 336 vCPUs (8 per region × 42) - **Total**: 756 vCPUs ## Key Design Principles ### 1. Validator Consistency - **Same VM size** (`Standard_D4_v2`) across ALL 42 regions - Ensures consistent performance and behavior - Simplifies monitoring and management - Critical for consensus reliability ### 2. RPC Backbone - **RPC nodes in ALL 42 regions** for core backbone - Internally networked for high availability - Critical infrastructure component - Same VM size (`Standard_D8s_v6`) across all regions ### 3. Flexible Distribution - **System nodes**: Required in all regions (AKS) - **Sentry nodes**: Distributed based on quotas and needs - Allows optimization per region ## Deployment Configuration The configuration is defined in `terraform/multi-region-global.tf`: - Uses `local.standard_validator_vm_size = "Standard_D4_v2"` for all validators - Uses `local.standard_rpc_vm_size = "Standard_D8s_v6"` for all RPC nodes - Automatically generates configuration for all 42 regions - Ensures consistency across all regions ## Monitoring ### Validator Monitoring - Monitor all 42 validator nodes - Ensure all use `Standard_D4_v2` - Track consensus health across regions - Alert on any validator VM size deviations ### RPC Backbone Monitoring - Monitor all 42 RPC nodes - Ensure all use `Standard_D8s_v6` - Track internal networking health - Monitor cross-region connectivity ## Benefits 1. **Consistent Validators**: Same VM size ensures uniform behavior 2. **Resilient Backbone**: RPC nodes in all regions for redundancy 3. **Global Coverage**: 42 regions provide worldwide presence 4. **Flexible Scaling**: System/sentry nodes can be adjusted per region 5. **High Availability**: Geographic redundancy across all regions