- 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.
3.5 KiB
3.5 KiB
Deployment Quick Start - Full Parallel Mode
Last Updated: 2025-01-27
Status: Active
One-Command Deployment
Fastest way to deploy Phase 2 and all contracts:
cd /home/intlc/projects/smom-dbis-138
source .env # Ensure .env is configured
./scripts/deployment/deploy-phase2-and-contracts-parallel.sh
Time: ~10-15 minutes (all operations in parallel)
Step-by-Step Parallel Deployment
1. Generate Phase 2 Configuration
# Reads .env + Phase 1 outputs, generates terraform.tfvars automatically
./scripts/deployment/generate-phase2-tfvars.sh
2. Deploy Phase 2 (All Regions Parallel)
cd terraform/phases/phase2
terraform apply # All 5 regions deploy simultaneously
3. Start Services (All Regions Parallel)
./terraform/phases/phase2/scripts/start-services.sh all
# All 5 regions start simultaneously
4. Deploy Contracts (Full Parallel)
source .env
./scripts/deployment/deploy-contracts-parallel.sh
# Independent contracts deploy simultaneously
5. Verify Everything (Parallel)
# Verify Phase 2 services (all regions parallel)
./terraform/phases/phase2/scripts/status.sh all &
# Verify contracts (all contracts parallel)
source .env && ./scripts/deployment/verify-contracts-parallel.sh &
wait # Wait for both to complete
Makefile Commands (All Parallel)
# Load .env first
source .env
# Deploy contracts (parallel)
make deploy-contracts
# Verify deployments (parallel)
make verify
# Run tests (parallel)
make test
# Compile and test contracts (parallel tests)
make contracts
Environment Setup (.env)
Ensure .env file exists in project root:
# Required
PRIVATE_KEY=<your_private_key>
RPC_URL=http://<besu-rpc-node>:8545
SSH_PRIVATE_KEY_PATH=/path/to/ssh/private/key
CHAIN_ID=138
# Phase 2
ENVIRONMENT=prod
VM_ADMIN_USERNAME=besuadmin
# Contract Deployment
CCIP_ROUTER=<address_or_empty>
CCIP_FEE_TOKEN=<link_address_or_zero_address>
ORACLE_DESCRIPTION="ETH/USD Price Feed"
MULTISIG_OWNERS=<comma_separated_addresses>
# Optional
DEPLOY_WETH9=true
DEPLOY_WETH10=true
DEPLOY_BRIDGES=true
Performance Comparison
| Operation | Sequential | Parallel | Speedup |
|---|---|---|---|
| Phase 2 Start | ~50s | ~10s | 5x |
| Phase 2 Status | ~45s | ~9s | 5x |
| Contract Deployment | ~15min | ~4min | 3.75x |
| Contract Verification | ~90s | ~10s | 9x |
| Total | ~25min | ~7min | 3.6x |
Troubleshooting
.env Not Found
# Create .env file with required variables
cp .env.example .env # If example exists
# Or create manually
Variables Not Set
# Check .env has required variables
grep -E "^(PRIVATE_KEY|RPC_URL|SSH_PRIVATE_KEY_PATH)=" .env
# Load .env
source .env
Parallel Execution Issues
# Use sequential scripts as fallback
./scripts/deployment/deploy-contracts-ordered.sh # Sequential
./scripts/deployment/verify-on-chain-deployments.sh # Sequential
Next Steps
After deployment:
- Verify all services:
./terraform/phases/phase2/scripts/status.sh all - Verify contracts:
./scripts/deployment/verify-contracts-parallel.sh - Configure services (FireFly, Cacti, Chainlink)
- Set up monitoring and alerts
- Test end-to-end workflows
For detailed documentation, see:
docs/NEXT_STEPS_COMPLETE_GUIDE.md- Full guidedocs/PARALLEL_EXECUTION_SUMMARY.md- Parallel execution detailsterraform/phases/phase2/README.md- Phase 2 documentation