- 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.
180 lines
5.7 KiB
YAML
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
|
|
|