Add Oracle Aggregator and CCIP Integration

- 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.
This commit is contained in:
defiQUG
2025-12-12 14:57:48 -08:00
parent a1466e4005
commit 1fb7266469
1720 changed files with 241279 additions and 16 deletions

View File

@@ -0,0 +1,56 @@
version: "3.8"
services:
blockscout-db:
image: postgres:15
container_name: blockscout-db
environment:
- POSTGRES_USER=blockscout
- POSTGRES_PASSWORD=blockscout
- POSTGRES_DB=blockscout
volumes:
- /opt/blockscout/postgres:/var/lib/postgresql/data
networks:
- core
restart: unless-stopped
blockscout:
image: blockscout/blockscout:latest
container_name: blockscout
depends_on:
- blockscout-db
environment:
- DATABASE_URL=postgresql://blockscout:blockscout@blockscout-db:5432/blockscout
- ETHEREUM_JSONRPC_HTTP_URL=http://besu:8545
- ETHEREUM_JSONRPC_WS_URL=ws://besu:8546
- ETHEREUM_JSONRPC_TRACE_URL=http://besu:8545
- COIN=ETH
- NETWORK=DeFi Oracle Meta Mainnet
- SUBNETWORK=Mainnet
- BLOCK_TRANSFORMER=base
- CHAIN_ID=138
- SHOW_ADDRESS_MARKETCAP_PERCENTAGE=true
- ENABLE_ACCOUNT_BALANCE_CACHE=true
- ENABLE_EXCHANGE_RATES=true
- EXCHANGE_RATES_COINGECKO_COIN_ID=ethereum
- ENABLE_SOURCIFY_INTEGRATION=true
- SOURCIFY_SERVER_URL=https://sourcify.dev/server
- SOURCIFY_REPO_URL=https://repo.sourcify.dev/contracts/full_match
- ENABLE_TXS_STATS=true
- TXS_STATS_DAYS_TO_COMPILE_AT_INIT=1
- ENABLE_CORS=true
- CORS_ALLOWED_ORIGINS=https://explorer.d-bis.org,https://portfolio.metamask.io,https://metamask.io,https://chainlist.org
- ENABLE_TOKEN_METADATA_API=true
- TOKEN_METADATA_CACHE_ENABLED=true
- TOKEN_METADATA_CACHE_TTL=3600
- SECRET_KEY_BASE=change-me-in-production-use-openssl-rand-hex-32
ports:
- "4000:4000"
networks:
- core
restart: unless-stopped
command: ["/bin/sh", "-c", "mix do ecto.create, ecto.migrate && mix phx.server"]
networks:
core:
driver: bridge

View File

@@ -0,0 +1,105 @@
version: "3.8"
services:
besu:
image: hyperledger/besu:23.10.0
container_name: besu-besu-node-0
restart: unless-stopped
stop_grace_period: 60s
volumes:
- /opt/besu/data:/data
- /opt/besu/config:/config
- /opt/besu/keys:/keys:ro
- /opt/besu/logs:/logs
ports:
- "8545:8545"
- "8546:8546"
- "30303:30303"
- "30303:30303/udp"
- "9545:9545"
command:
- --config-file=/config/besu-config.toml
networks:
- core
firefly-core-a:
image: ghcr.io/hyperledger/firefly:latest
container_name: firefly-core-a
depends_on:
- firefly-postgres
environment:
- FIREFLY_NAMESPACE=default
- FIREFLY_DATABASE_TYPE=postgres
- FIREFLY_DATABASE_DSN=postgres://firefly:firefly@firefly-postgres:5432/firefly?sslmode=disable
networks:
- core
cacti-core-a:
image: cacti/cacti:latest
container_name: cacti-core-a
depends_on:
- cacti-db
networks:
- core
chainlink-ccip-a:
image: chainlink/chainlink:latest
container_name: chainlink-ccip-a
networks:
- core
firefly-postgres:
image: postgres:15
container_name: firefly-postgres
environment:
- POSTGRES_USER=firefly
- POSTGRES_PASSWORD=firefly
- POSTGRES_DB=firefly
volumes:
- /opt/firefly/postgres:/var/lib/postgresql/data
networks:
- core
cacti-db:
image: postgres:15
container_name: cacti-db
environment:
- POSTGRES_USER=cacti
- POSTGRES_PASSWORD=cacti
- POSTGRES_DB=cacti
volumes:
- /opt/cacti/postgres:/var/lib/postgresql/data
networks:
- core
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
network_mode: host
pid: host
restart: unless-stopped
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
restart: unless-stopped
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /cgroup:/cgroup:ro
ports:
- "8080:8080"
log-shipper:
image: grafana/promtail:latest
container_name: log-shipper
volumes:
- /var/log:/var/log
- /opt/promtail/config.yml:/etc/promtail/config.yml:ro
networks:
core:
driver: bridge

View File

@@ -0,0 +1,97 @@
version: "3.8"
services:
besu:
image: hyperledger/besu:23.10.0
container_name: besu-besu-node-0
restart: unless-stopped
stop_grace_period: 60s
volumes:
- /opt/besu/data:/data
- /opt/besu/config:/config
- /opt/besu/keys:/keys:ro
- /opt/besu/logs:/logs
ports:
- "8545:8545"
- "8546:8546"
- "30303:30303"
- "30303:30303/udp"
- "9545:9545"
command:
- --config-file=/config/besu-config.toml
networks:
- core
firefly-core-b:
image: ghcr.io/hyperledger/firefly:latest
container_name: firefly-core-b
depends_on:
- firefly-postgres-primary
environment:
- FIREFLY_NAMESPACE=default
- FIREFLY_DATABASE_TYPE=postgres
- FIREFLY_DATABASE_DSN=postgres://firefly:firefly@firefly-postgres-primary:5432/firefly?sslmode=disable
networks:
- core
firefly-postgres-primary:
image: postgres:15
container_name: firefly-postgres-primary
environment:
- POSTGRES_USER=firefly
- POSTGRES_PASSWORD=firefly
- POSTGRES_DB=firefly
volumes:
- /opt/firefly/postgres-primary:/var/lib/postgresql/data
networks:
- core
cacti-db-primary:
image: postgres:15
container_name: cacti-db-primary
environment:
- POSTGRES_USER=cacti
- POSTGRES_PASSWORD=cacti
- POSTGRES_DB=cacti
volumes:
- /opt/cacti/postgres-primary:/var/lib/postgresql/data
networks:
- core
chainlink-ccip-b:
image: chainlink/chainlink:latest
container_name: chainlink-ccip-b
networks:
- core
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
network_mode: host
pid: host
restart: unless-stopped
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
restart: unless-stopped
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /cgroup:/cgroup:ro
ports:
- "8080:8080"
log-shipper:
image: grafana/promtail:latest
container_name: log-shipper
volumes:
- /var/log:/var/log
- /opt/promtail/config.yml:/etc/promtail/config.yml:ro
networks:
core:
driver: bridge

View File

@@ -0,0 +1,103 @@
version: "3.8"
services:
besu:
image: hyperledger/besu:23.10.0
container_name: besu-besu-node-0
restart: unless-stopped
stop_grace_period: 60s
volumes:
- /opt/besu/data:/data
- /opt/besu/config:/config
- /opt/besu/keys:/keys:ro
- /opt/besu/logs:/logs
ports:
- "8545:8545"
- "8546:8546"
- "30303:30303"
- "30303:30303/udp"
- "9545:9545"
command:
- --config-file=/config/besu-config.toml
networks:
- core
firefly-dataexchange-a:
image: ghcr.io/hyperledger/firefly-dataexchange-https:latest
container_name: firefly-dataexchange-a
networks:
- core
ipfs:
image: ipfs/go-ipfs:latest
container_name: ipfs-node
volumes:
- /opt/ipfs/data:/data/ipfs
ports:
- "5001:5001"
networks:
- core
cacti-db-primary:
image: postgres:15
container_name: cacti-db-primary
environment:
- POSTGRES_USER=cacti
- POSTGRES_PASSWORD=cacti
- POSTGRES_DB=cacti
volumes:
- /opt/cacti/postgres-primary:/var/lib/postgresql/data
networks:
- core
cacti-ui:
image: cacti/cacti:latest
container_name: cacti-ui
depends_on:
- cacti-db-primary
ports:
- "8081:80"
networks:
- core
prometheus:
image: prom/prometheus:latest
container_name: prometheus-primary
volumes:
- /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
ports:
- "9090:9090"
networks:
- core
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
network_mode: host
pid: host
restart: unless-stopped
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
restart: unless-stopped
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /cgroup:/cgroup:ro
ports:
- "8080:8080"
log-shipper:
image: grafana/promtail:latest
container_name: log-shipper
volumes:
- /var/log:/var/log
- /opt/promtail/config.yml:/etc/promtail/config.yml:ro
networks:
core:
driver: bridge

View File

@@ -0,0 +1,97 @@
version: "3.8"
services:
besu:
image: hyperledger/besu:23.10.0
container_name: besu-besu-node-0
restart: unless-stopped
stop_grace_period: 60s
volumes:
- /opt/besu/data:/data
- /opt/besu/config:/config
- /opt/besu/keys:/keys:ro
- /opt/besu/logs:/logs
ports:
- "8545:8545"
- "8546:8546"
- "30303:30303"
- "30303:30303/udp"
- "9545:9545"
command:
- --config-file=/config/besu-config.toml
networks:
- core
firefly-dataexchange-b:
image: ghcr.io/hyperledger/firefly-dataexchange-https:latest
container_name: firefly-dataexchange-b
networks:
- core
prometheus-secondary:
image: prom/prometheus:latest
container_name: prometheus-secondary
volumes:
- /opt/prometheus/secondary.yml:/etc/prometheus/prometheus.yml:ro
ports:
- "9091:9090"
networks:
- core
grafana:
image: grafana/grafana:latest
container_name: grafana
volumes:
- /opt/grafana:/var/lib/grafana
ports:
- "3000:3000"
networks:
- core
alertmanager:
image: prom/alertmanager:latest
container_name: alertmanager
volumes:
- /opt/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
ports:
- "9093:9093"
networks:
- core
chainlink-ccip-c:
image: chainlink/chainlink:latest
container_name: chainlink-ccip-c
networks:
- core
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
network_mode: host
pid: host
restart: unless-stopped
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
restart: unless-stopped
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /cgroup:/cgroup:ro
ports:
- "8080:8080"
log-shipper:
image: grafana/promtail:latest
container_name: log-shipper
volumes:
- /var/log:/var/log
- /opt/promtail/config.yml:/etc/promtail/config.yml:ro
networks:
core:
driver: bridge

View File

@@ -0,0 +1,106 @@
services:
besu:
image: hyperledger/besu:23.10.0
container_name: besu-besu-node-0
restart: unless-stopped
stop_grace_period: 60s
volumes:
- /opt/besu/data:/data
- /opt/besu/config:/config
- /opt/besu/keys:/keys:ro
- /opt/besu/logs:/logs
ports:
- "8545:8545"
- "8546:8546"
- "30303:30303"
- "30303:30303/udp"
- "9545:9545"
command:
- --config-file=/config/besu-config.toml
networks:
- core
loki:
image: grafana/loki:2.9.0
container_name: loki
volumes:
- /opt/loki/config.yml:/etc/loki/config.yml:ro
- /opt/loki/data:/loki
ports:
- "3100:3100"
networks:
- core
log-ui:
image: grafana/grafana:latest
container_name: grafana-logs
volumes:
- /opt/grafana-logs:/var/lib/grafana
ports:
- "3001:3000"
networks:
- core
firefly-postgres-replica:
image: postgres:15
container_name: firefly-postgres-replica
environment:
- POSTGRES_USER=firefly
- POSTGRES_PASSWORD=firefly
- POSTGRES_DB=firefly
volumes:
- /opt/firefly/postgres-replica:/var/lib/postgresql/data
networks:
- core
cacti-db-primary:
image: postgres:15
container_name: cacti-db-primary
environment:
- POSTGRES_USER=cacti
- POSTGRES_PASSWORD=cacti
- POSTGRES_DB=cacti
volumes:
- /opt/cacti/postgres:/var/lib/postgresql/data
networks:
- core
cacti-core-b:
image: cacti/cacti:latest
container_name: cacti-core-b
depends_on:
- cacti-db-primary
networks:
- core
node-exporter:
image: prom/node-exporter:latest
container_name: node-exporter
network_mode: host
pid: host
restart: unless-stopped
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
restart: unless-stopped
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
- /cgroup:/cgroup:ro
ports:
- "8080:8080"
log-shipper:
image: grafana/promtail:latest
container_name: log-shipper
volumes:
- /var/log:/var/log
- /opt/promtail/config.yml:/etc/promtail/config.yml:ro
networks:
core:
driver: bridge