Files

455 lines
14 KiB
Markdown
Raw Permalink Normal View History

# Next Steps - Deployment and Integration Guide
Comprehensive list of all next steps to complete the deployment and integration of ChainID 138.
## Overview
This document provides a prioritized list of all next steps required to complete the deployment and integration of ChainID 138, including infrastructure deployment, contract deployment, DNS configuration, and MetaMask integration.
## Status Summary
-**Code Tasks**: 112/112 completed (100%)
- ⚠️ **Deployment Tasks**: 0/15 completed (0%)
- ⚠️ **Integration Tasks**: 0/10 completed (0%)
- ⚠️ **Operational Tasks**: 0/5 completed (0%)
## 🔴 Critical Priority - Immediate Actions (Week 1)
### Infrastructure Deployment
#### 1. Azure Authentication (WSL Users)
- [ ] Install Azure CLI (if not already installed)
```bash
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
```
- [ ] Login to Azure
```bash
az login
```
This will open a browser window for authentication.
- [ ] Verify login
```bash
az account show
```
- [ ] Set subscription (if needed)
```bash
az account set --subscription <subscription-id>
```
- [ ] Or use the helper script
```bash
./scripts/deployment/azure-login.sh
```
**Note**: Azure authentication is required before running deployment scripts that interact with Azure (infrastructure, Kubernetes, Cloudflare DNS).
#### 2. Configure Environment Variables
- [ ] Create `.env` file from `.env.example`
- [ ] Set `AZURE_SUBSCRIPTION_ID`
- [ ] Set `AZURE_TENANT_ID`
- [ ] Set `AZURE_CLIENT_ID` (optional, for service principal)
- [ ] Set `AZURE_CLIENT_SECRET` (optional, for service principal)
- [ ] Set `AZURE_RESOURCE_GROUP`
- [ ] Set `CLOUDFLARE_API_TOKEN`
- [ ] Set `CLOUDFLARE_ZONE_ID`
- [ ] Set `PRIVATE_KEY` (deployer key)
- [ ] Set `RPC_URL` (production URL)
- [ ] Set `EXPLORER_URL` (production URL)
**Script**: `./scripts/deployment/deploy-all.sh --help`
#### 3. Deploy Azure Infrastructure
- [ ] Initialize Terraform backend
- [ ] Create `terraform.tfvars` with production values
- [ ] Run `terraform plan` to review changes
- [ ] Run `terraform apply` to deploy infrastructure
- [ ] Verify AKS cluster is created
- [ ] Verify Application Gateway is created
- [ ] Verify Key Vault is created
- [ ] Verify Network Security Groups are created
**Script**: `./scripts/deployment/deploy-all.sh --skip-kubernetes --skip-blockscout --skip-contracts --skip-cloudflare`
#### 4. Configure Cloudflare DNS
- [ ] Get Application Gateway public IP address
- [ ] Run Cloudflare DNS configuration script
- [ ] Verify DNS records are created:
- [ ] `d-bis.org` (A record)
- [ ] `www.d-bis.org` (A record)
- [ ] `rpc.d-bis.org` (A record)
- [ ] `rpc2.d-bis.org` (A record)
- [ ] `explorer.d-bis.org` (A record)
- [ ] Wait for DNS propagation (5-30 minutes)
- [ ] Verify DNS resolution with `dig` or `nslookup`
**Script**: `./scripts/deployment/cloudflare-dns.sh --zone-id <ZONE_ID> --api-token <TOKEN> --ip <IP_ADDRESS>`
#### 5. Configure SSL Certificates
- [ ] Enable Cloudflare SSL/TLS (Automatic)
- [ ] Verify SSL certificates are issued
- [ ] Test HTTPS access to all domains
- [ ] Configure SSL/TLS mode (Full or Full Strict)
- [ ] Verify certificate validity
**Manual**: Cloudflare Dashboard → SSL/TLS → Overview
#### 6. Deploy Kubernetes Resources
- [ ] Configure kubectl for AKS cluster
- [ ] Create namespace: `besu-network`
- [ ] Deploy validators (Helm chart)
- [ ] Deploy sentries (Helm chart)
- [ ] Deploy RPC nodes (Helm chart)
- [ ] Verify all pods are running
- [ ] Verify RPC endpoints are accessible
**Script**: `./scripts/deployment/deploy-all.sh --skip-infrastructure --skip-blockscout --skip-contracts --skip-cloudflare`
#### 7. Deploy Blockscout Explorer
- [ ] Deploy Blockscout database (StatefulSet)
- [ ] Deploy Blockscout application (Deployment)
- [ ] Wait for database migrations to complete
- [ ] Verify Blockscout is accessible
- [ ] Configure CORS headers for MetaMask Portfolio
- [ ] Test Blockscout API endpoints
**Script**: `./scripts/deployment/deploy-all.sh --skip-infrastructure --skip-kubernetes --skip-contracts --skip-cloudflare`
#### 8. Deploy Contracts
- [ ] Deploy WETH contract
- [ ] Deploy Multicall contract
- [ ] Deploy Oracle Aggregator contract
- [ ] Deploy CCIP Router contract (optional)
- [ ] Verify contracts are deployed
- [ ] Verify contract code on Blockscout
- [ ] Save contract addresses to `contracts-deployed.json`
**Script**: `./scripts/deployment/deploy-all.sh --skip-infrastructure --skip-kubernetes --skip-blockscout --skip-cloudflare`
#### 9. Update Token List
- [ ] Read contract addresses from `contracts-deployed.json`
- [ ] Update `metamask/token-list.json` with WETH address
- [ ] Update `metamask/token-list.json` with other token addresses
- [ ] Validate token list against schema
- [ ] Commit token list changes to repository
**Script**: `./scripts/deployment/update-token-list.sh`
#### 10. Verify Deployment
- [ ] Run deployment verification script
- [ ] Test RPC endpoint accessibility
- [ ] Test Blockscout explorer accessibility
- [ ] Test contract deployments
- [ ] Test Kubernetes resources
- [ ] Test MetaMask integration files
- [ ] Test DNS configuration
- [ ] Generate verification report
**Script**: `./scripts/deployment/verify-deployment.sh`
## 🟡 High Priority - Short-Term Actions (Month 1)
### MetaMask Integration
#### 10. Submit Ethereum-Lists PR
- [ ] Fork `ethereum-lists/chains` repository
- [ ] Create branch: `add-chainid-138`
- [ ] Add chain data file: `_data/chains/e138.json`
- [ ] Validate chain data JSON
- [ ] Create PR with description from template
- [ ] Respond to review comments
- [ ] Wait for PR approval and merge
- [ ] Verify ChainID 138 appears on Chainlist
**Script**: `./scripts/deployment/submit-ethereum-lists-pr.sh`
#### 11. Submit Token List to CoinGecko
- [ ] Fork `coingecko/token-lists` repository
- [ ] Add token list file to repository
- [ ] Create PR to coingecko/token-lists
- [ ] Respond to review comments
- [ ] Wait for PR approval and merge
- [ ] Verify token list is accepted
**Script**: `./scripts/deployment/submit-token-list.sh` (provides instructions)
#### 12. Submit Token List to Uniswap
- [ ] Fork `Uniswap/token-lists` repository
- [ ] Add token list file to `src/tokens/` directory
- [ ] Update `tokens.ts` to include the list
- [ ] Create PR to Uniswap/token-lists
- [ ] Respond to review comments
- [ ] Wait for PR approval and merge
- [ ] Verify token list is accepted
**Script**: `./scripts/deployment/submit-token-list.sh` (provides instructions)
#### 13. Submit Token List to Token Lists Aggregator
- [ ] Visit https://tokenlists.org
- [ ] Click "Add Token List"
- [ ] Enter token list URL: `https://raw.githubusercontent.com/Defi-Oracle-Tooling/smom-dbis-138/main/metamask/token-list.json`
- [ ] Submit for review
- [ ] Wait for approval
- [ ] Verify token list appears on aggregator
**Manual**: Visit tokenlists.org and submit URL
#### 14. Verify MetaMask Portfolio Compatibility
- [ ] Add ChainID 138 to MetaMask
- [ ] Add tokens to MetaMask
- [ ] Open MetaMask Portfolio
- [ ] Verify token balances display correctly
- [ ] Verify token symbols display correctly
- [ ] Verify token logos display correctly
- [ ] Test token auto-detection (if applicable)
- [ ] Document any issues
**Manual**: Test with MetaMask browser extension
#### 15. Host Token Logos
- [ ] Create token logo images (512x512 PNG)
- [ ] Upload logos to Blockscout or CDN
- [ ] Update token list with logo URLs
- [ ] Verify logos are accessible via HTTPS
- [ ] Test logo display in MetaMask
**Manual**: Upload to Blockscout or CDN
## 🟢 Medium Priority - Long-Term Actions (Quarter 1)
### Bridge and DEX Integration
#### 16. Bridge Integration
- [ ] Research bridge providers that support ChainID 138
- [ ] Evaluate bridge security and audits
- [ ] Partner with bridge provider (if needed)
- [ ] Integrate bridge into dapps
- [ ] Test bridge functionality
- [ ] Document bridge usage
**Status**: Requires partnership with bridge provider
#### 17. DEX Integration
- [ ] Research DEX providers that support ChainID 138
- [ ] Evaluate DEX security and audits
- [ ] Partner with DEX provider (if needed)
- [ ] Integrate DEX into dapps
- [ ] Test DEX functionality
- [ ] Document DEX usage
**Status**: Requires partnership with DEX provider
#### 18. On-Ramp Integration
- [ ] Research on-ramp providers (MoonPay, Ramp, etc.)
- [ ] Evaluate on-ramp security and compliance
- [ ] Partner with on-ramp provider
- [ ] Integrate on-ramp into dapps
- [ ] Test on-ramp functionality
- [ ] Document on-ramp usage
**Status**: Requires partnership with on-ramp provider
### Business Development
#### 19. Consensys Outreach
- [ ] Prepare integration proposal
- [ ] Contact Consensys business development
- [ ] Schedule meeting to discuss integration
- [ ] Submit proposal for Swaps integration
- [ ] Submit proposal for Bridge integration
- [ ] Submit proposal for on-ramp integration
- [ ] Follow up on proposals
- [ ] Track integration progress
**Documentation**: `docs/METAMASK_BD.md`
#### 20. Monitor MetaMask Feature Updates
- [ ] Subscribe to MetaMask updates
- [ ] Monitor Delegation Toolkit pages
- [ ] Track network support announcements
- [ ] Update documentation as features are added
- [ ] Test new features when available
**Manual**: Monitor MetaMask announcements
## 🔵 Low Priority - Future Enhancements
### Advanced Features
#### 21. Enhanced Token Discovery
- [ ] Implement token discovery API
- [ ] Add token metadata endpoint
- [ ] Implement token logo CDN
- [ ] Add token verification system
- [ ] Document token discovery process
#### 22. Advanced MetaMask Features
- [ ] Implement wallet connect integration
- [ ] Add transaction signing UI
- [ ] Implement gas estimation helpers
- [ ] Add network switching UI
- [ ] Document advanced features
#### 23. User Documentation
- [ ] Create user guides for adding network
- [ ] Create user guides for adding tokens
- [ ] Create troubleshooting guides
- [ ] Create video tutorials
- [ ] Update documentation based on user feedback
## 📋 Deployment Checklist
### Pre-Deployment
- [ ] Environment variables configured
- [ ] Azure credentials verified
- [ ] Cloudflare credentials verified
- [ ] Private keys secured
- [ ] Terraform state backend configured
- [ ] DNS zone verified
### Deployment
- [ ] Infrastructure deployed
- [ ] DNS configured
- [ ] SSL certificates configured
- [ ] Kubernetes resources deployed
- [ ] Blockscout deployed
- [ ] Contracts deployed
- [ ] Token list updated
### Post-Deployment
- [ ] Deployment verified
- [ ] RPC endpoints tested
- [ ] Blockscout tested
- [ ] Contracts verified
- [ ] MetaMask integration tested
- [ ] Documentation updated
## 🚀 Quick Start Commands
### Complete Deployment
```bash
# Deploy everything
./scripts/deployment/deploy-all.sh
# Deploy with options
./scripts/deployment/deploy-all.sh \
--skip-infrastructure \
--skip-kubernetes \
--skip-blockscout \
--skip-contracts \
--skip-cloudflare
```
### Individual Steps
```bash
# Configure Cloudflare DNS
./scripts/deployment/cloudflare-dns.sh \
--zone-id <ZONE_ID> \
--api-token <TOKEN> \
--ip <IP_ADDRESS>
# Update token list
./scripts/deployment/update-token-list.sh
# Verify deployment
./scripts/deployment/verify-deployment.sh
# Submit Ethereum-Lists PR
./scripts/deployment/submit-ethereum-lists-pr.sh
# Submit token list
./scripts/deployment/submit-token-list.sh
```
## 📊 Progress Tracking
### Week 1 (Critical)
- [ ] Infrastructure deployment
- [ ] DNS configuration
- [ ] SSL certificates
- [ ] Kubernetes deployment
- [ ] Blockscout deployment
- [ ] Contract deployment
- [ ] Token list update
- [ ] Deployment verification
### Month 1 (High Priority)
- [ ] Ethereum-Lists PR
- [ ] CoinGecko token list submission
- [ ] Uniswap token list submission
- [ ] Token Lists aggregator submission
- [ ] MetaMask Portfolio verification
- [ ] Token logo hosting
### Quarter 1 (Medium Priority)
- [ ] Bridge integration
- [ ] DEX integration
- [ ] On-ramp integration
- [ ] Consensys outreach
- [ ] MetaMask feature monitoring
## 🔗 Related Documentation
- [Deployment Guide](DEPLOYMENT.md)
- [MetaMask Integration Guide](METAMASK_INTEGRATION.md)
- [MetaMask Gaps Analysis](METAMASK_GAPS_ANALYSIS.md)
- [MetaMask Completion Summary](COMPLETION_SUMMARY_METAMASK.md)
- [Quick Start Guide](QUICKSTART.md)
- [TODO List](TODO.md)
## 📝 Notes
### Environment Variables
All required environment variables must be set in `.env` file:
- Azure credentials (subscription, tenant, client, secret)
- Cloudflare credentials (API token, zone ID)
- Deployment keys (private key, RPC URL, explorer URL)
### Deployment Order
1. Infrastructure (Terraform)
2. DNS (Cloudflare)
3. Kubernetes (Helm charts)
4. Blockscout (Kubernetes)
5. Contracts (Foundry)
6. Token List (Update)
7. Verification (Scripts)
### Verification
Run verification after each deployment step:
```bash
./scripts/deployment/verify-deployment.sh
```
### Troubleshooting
See [Troubleshooting Guide](TROUBLESHOOTING.md) for common issues and solutions.
## 🎯 Success Criteria
### Deployment Complete
- ✅ RPC endpoints accessible at https://rpc.d-bis.org
- ✅ Blockscout accessible at https://explorer.d-bis.org
- ✅ Contracts deployed and verified
- ✅ Token list updated with deployed addresses
- ✅ DNS configured and propagated
- ✅ SSL certificates valid
### Integration Complete
- ✅ Ethereum-Lists PR submitted and merged
- ✅ Token list submitted to aggregators
- ✅ MetaMask Portfolio compatibility verified
- ✅ Token logos hosted and accessible
### Production Ready
- ✅ All critical tasks completed
- ✅ All high-priority tasks completed
- ✅ Deployment verified
- ✅ Integration tested
- ✅ Documentation updated
## 📞 Support
For issues or questions:
- Open an issue on GitHub
- Contact the project team
- Review documentation
- Check troubleshooting guide