Files
smom-dbis-138/docker-compose/docker-compose.template.yml
defiQUG 1fb7266469 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.
2025-12-12 14:57:48 -08:00

180 lines
5.7 KiB
YAML

version: "3.8"
services:
# Validator service (if VAL1_NODE_NAME is set)
validator-1:
image: hyperledger/besu:23.10.0
container_name: ${VAL1_NODE_NAME:-validator-1}
restart: unless-stopped
stop_grace_period: 60s
networks:
- besu-net
volumes:
- ./config:/config:ro
- ./data/validator-1:/data
- ./keys:/keys:ro
- ./logs/validator-1:/logs
command:
- --config-file=/config/config-validator.toml
- --genesis-file=/config/${GENESIS_FILE:-genesis.json}
- --data-path=/data
- --node-private-key-file=/keys/${VAL1_NODE_KEY:-validator1.priv}
- --p2p-host=${VAL1_P2P_HOST}
- --p2p-port=${VAL1_P2P_PORT:-30303}
- --rpc-http-enabled=false
ports:
- "${VAL1_P2P_PORT:-30303}:${VAL1_P2P_PORT:-30303}/tcp"
- "${VAL1_P2P_PORT:-30303}:${VAL1_P2P_PORT:-30303}/udp"
profiles:
- validator-1
# RPC Permissioned service (if RPCP_NODE_NAME is set)
rpc-perm:
image: hyperledger/besu:23.10.0
container_name: ${RPCP_NODE_NAME:-rpc-perm}
restart: unless-stopped
stop_grace_period: 60s
networks:
- besu-net
volumes:
- ./config:/config:ro
- ./data/rpc-perm:/data
- ./keys:/keys:ro
- ./logs/rpc-perm:/logs
command:
- --config-file=/config/config-rpc-perm.toml
- --genesis-file=/config/${GENESIS_FILE:-genesis.json}
- --data-path=/data
- --node-private-key-file=/keys/${RPCP_NODE_KEY:-rpc-perm.priv}
- --p2p-host=${RPCP_P2P_HOST}
- --p2p-port=${RPCP_P2P_PORT:-30304}
- --rpc-http-host=0.0.0.0
- --rpc-http-port=${RPCP_HTTP_PORT:-8545}
ports:
- "${RPCP_P2P_PORT:-30304}:${RPCP_P2P_PORT:-30304}/tcp"
- "${RPCP_P2P_PORT:-30304}:${RPCP_P2P_PORT:-30304}/udp"
- "${RPCP_HTTP_PORT:-8545}:${RPCP_HTTP_PORT:-8545}/tcp"
profiles:
- rpc-perm
# RPC Core service (if RPCC_NODE_NAME is set)
rpc-core:
image: hyperledger/besu:23.10.0
container_name: ${RPCC_NODE_NAME:-rpc-core}
restart: unless-stopped
stop_grace_period: 60s
networks:
- besu-net
volumes:
- ./config:/config:ro
- ./data/rpc-core:/data
- ./keys:/keys:ro
- ./logs/rpc-core:/logs
command:
- --config-file=/config/config-rpc-core.toml
- --genesis-file=/config/${GENESIS_FILE:-genesis.json}
- --data-path=/data
- --node-private-key-file=/keys/${RPCC_NODE_KEY:-rpc-core.priv}
- --p2p-host=${RPCC_P2P_HOST}
- --p2p-port=${RPCC_P2P_PORT:-30304}
- --rpc-http-host=0.0.0.0
- --rpc-http-port=${RPCC_HTTP_PORT:-8545}
ports:
- "${RPCC_P2P_PORT:-30304}:${RPCC_P2P_PORT:-30304}/tcp"
- "${RPCC_P2P_PORT:-30304}:${RPCC_P2P_PORT:-30304}/udp"
- "${RPCC_HTTP_PORT:-8545}:${RPCC_HTTP_PORT:-8545}/tcp"
profiles:
- rpc-core
# Member service (if MEM1_NODE_NAME is set)
member-1:
image: hyperledger/besu:23.10.0
container_name: ${MEM1_NODE_NAME:-member-1}
restart: unless-stopped
stop_grace_period: 60s
networks:
- besu-net
volumes:
- ./config:/config:ro
- ./data/member-1:/data
- ./keys:/keys:ro
- ./logs/member-1:/logs
command:
- --config-file=/config/config-member.toml
- --genesis-file=/config/${GENESIS_FILE:-genesis.json}
- --data-path=/data
- --node-private-key-file=/keys/${MEM1_NODE_KEY:-member1.priv}
- --p2p-host=${MEM1_P2P_HOST}
- --p2p-port=${MEM1_P2P_PORT:-30304}
- --rpc-http-host=0.0.0.0
- --rpc-http-port=${MEM1_HTTP_PORT:-8550}
ports:
- "${MEM1_P2P_PORT:-30304}:${MEM1_P2P_PORT:-30304}/tcp"
- "${MEM1_P2P_PORT:-30304}:${MEM1_P2P_PORT:-30304}/udp"
- "${MEM1_HTTP_PORT:-8550}:${MEM1_HTTP_PORT:-8550}/tcp"
profiles:
- member-1
# Member-2 service (if MEM2_NODE_NAME is set)
member-2:
image: hyperledger/besu:23.10.0
container_name: ${MEM2_NODE_NAME:-member-2}
restart: unless-stopped
stop_grace_period: 60s
networks:
- besu-net
volumes:
- ./config:/config:ro
- ./data/member-2:/data
- ./keys:/keys:ro
- ./logs/member-2:/logs
command:
- --config-file=/config/config-member.toml
- --genesis-file=/config/${GENESIS_FILE:-genesis.json}
- --data-path=/data
- --node-private-key-file=/keys/${MEM2_NODE_KEY:-member2.priv}
- --p2p-host=${MEM2_P2P_HOST}
- --p2p-port=${MEM2_P2P_PORT:-30304}
- --rpc-http-host=0.0.0.0
- --rpc-http-port=${MEM2_HTTP_PORT:-8550}
ports:
- "${MEM2_P2P_PORT:-30304}:${MEM2_P2P_PORT:-30304}/tcp"
- "${MEM2_P2P_PORT:-30304}:${MEM2_P2P_PORT:-30304}/udp"
- "${MEM2_HTTP_PORT:-8550}:${MEM2_HTTP_PORT:-8550}/tcp"
profiles:
- member-2
# RPC Public service (if RPCPUB_NODE_NAME is set)
rpc-public:
image: hyperledger/besu:23.10.0
container_name: ${RPCPUB_NODE_NAME:-rpc-public}
restart: unless-stopped
stop_grace_period: 60s
networks:
- besu-net
volumes:
- ./config:/config:ro
- ./data/rpc-public:/data
- ./keys:/keys:ro
- ./logs/rpc-public:/logs
command:
- --config-file=/config/config-rpc-public.toml
- --genesis-file=/config/${GENESIS_FILE:-genesis.json}
- --data-path=/data
- --node-private-key-file=/keys/${RPCPUB_NODE_KEY:-rpc-public.priv}
- --p2p-host=${RPCPUB_P2P_HOST}
- --p2p-port=${RPCPUB_P2P_PORT:-30303}
- --rpc-http-host=0.0.0.0
- --rpc-http-port=${RPCPUB_HTTP_PORT:-8545}
ports:
- "${RPCPUB_P2P_PORT:-30303}:${RPCPUB_P2P_PORT:-30303}/tcp"
- "${RPCPUB_P2P_PORT:-30303}:${RPCPUB_P2P_PORT:-30303}/udp"
- "${RPCPUB_HTTP_PORT:-8545}:${RPCPUB_HTTP_PORT:-8545}/tcp"
profiles:
- rpc-public
networks:
besu-net:
external: true