- 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.
VM Deployment Scripts
This directory contains scripts for deploying and managing Besu nodes on Azure Virtual Machines (VMs) or Virtual Machine Scale Sets (VMSS).
Scripts
Deployment Scripts
deploy-vm-network.sh- Deploy Besu network on VMs using Terraformsetup-vm.sh- Setup individual VM with Docker and Besusetup-cloud-init.sh- Generate cloud-init configuration
Management Scripts
monitor-vm.sh- Monitor all VMs and Besu containersupdate-vm-config.sh- Update Besu configuration on a VMget-vm-ips.sh- Get IP addresses of all VMsscale-vmss.sh- Scale VM Scale Set up or down
Validation Scripts
validate-vm-deployment.sh- Validate VM deploymenthealth-check-vm.sh- Health check for VM-based Besu nodesrun-all-checks.sh- Run all validation and health checks
Backup/Restore Scripts
backup-vm.sh- Backup Besu data from a VMrestore-vm.sh- Restore Besu data to a VM
Usage
Deploy Network
./scripts/vm-deployment/deploy-vm-network.sh
Setup Individual VM
./scripts/vm-deployment/setup-vm.sh validator 0
Monitor VMs
./scripts/vm-deployment/monitor-vm.sh
Validate Deployment
./scripts/vm-deployment/validate-vm-deployment.sh
Health Check
./scripts/vm-deployment/health-check-vm.sh
Get VM IPs
./scripts/vm-deployment/get-vm-ips.sh
Scale VMSS
./scripts/vm-deployment/scale-vmss.sh besu-rpc-vmss 5
Backup VM
./scripts/vm-deployment/backup-vm.sh <vm-ip>
Restore VM
./scripts/vm-deployment/restore-vm.sh <vm-ip> <backup-file>
Run All Checks
./scripts/vm-deployment/run-all-checks.sh
Environment Variables
Most scripts support the following environment variables:
RESOURCE_GROUP- Azure resource group name (default:defi-oracle-mainnet-rg)CLUSTER_NAME- Cluster name (default:defi-oracle-aks)KEY_VAULT_NAME- Key Vault name (default:defi-oracle-kv)VALIDATOR_COUNT- Number of validators (default:2)SENTRY_COUNT- Number of sentries (default:2)RPC_COUNT- Number of RPC nodes (default:2)
Prerequisites
- Azure CLI installed and configured
- SSH key pair for VM access
- Terraform >= 1.0 (for deployment scripts)
jqfor JSON parsingcurlfor HTTP requests
Examples
Deploy Network
export RESOURCE_GROUP="defi-oracle-mainnet-rg"
export SSH_PUBLIC_KEY=$(cat ~/.ssh/id_rsa.pub)
./scripts/vm-deployment/deploy-vm-network.sh
Monitor Specific VM
export VM_IP="20.123.45.67"
./scripts/vm-deployment/monitor-vm.sh
Scale RPC VMSS
export RESOURCE_GROUP="defi-oracle-mainnet-rg"
./scripts/vm-deployment/scale-vmss.sh besu-rpc-vmss 5
Troubleshooting
See VM Deployment Troubleshooting Guide for common issues and solutions.