192 lines
5.0 KiB
YAML
192 lines
5.0 KiB
YAML
# ============================================================
|
|
# Genex Blockchain Stack — Docker Compose
|
|
#
|
|
# 包含:
|
|
# - genex-node-1/2/3: 3个创世验证节点
|
|
# - genex-inst-1/2: 2个机构验证节点
|
|
# - genex-regulatory: 1个监管只读节点
|
|
# - contract-deployer: 智能合约部署任务
|
|
#
|
|
# 启动:
|
|
# docker compose up -d
|
|
#
|
|
# 仅启动单节点开发模式:
|
|
# docker compose up genex-node-1 -d
|
|
#
|
|
# 部署合约:
|
|
# docker compose run contract-deployer
|
|
# ============================================================
|
|
|
|
version: "3.9"
|
|
|
|
x-genex-node: &genex-node-defaults
|
|
build:
|
|
context: ./genex-chain
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
networks:
|
|
- genex-net
|
|
|
|
services:
|
|
# =============================================
|
|
# Genesis Validator Node 1 (Primary, US-East)
|
|
# =============================================
|
|
genex-node-1:
|
|
<<: *genex-node-defaults
|
|
container_name: genex-us-east-1
|
|
hostname: genex-us-east-1
|
|
environment:
|
|
- MONIKER=genex-us-east-1
|
|
- CHAIN_ID=genex-testnet-1
|
|
- NODE_TYPE=genesis
|
|
ports:
|
|
- "26656:26656" # P2P
|
|
- "26657:26657" # CometBFT RPC
|
|
- "8545:8545" # EVM JSON-RPC
|
|
- "8546:8546" # EVM WebSocket
|
|
- "1317:1317" # Cosmos REST API
|
|
- "9090:9090" # gRPC
|
|
volumes:
|
|
- node1-data:/home/genex/.genexd
|
|
|
|
# =============================================
|
|
# Genesis Validator Node 2 (US-West)
|
|
# =============================================
|
|
genex-node-2:
|
|
<<: *genex-node-defaults
|
|
container_name: genex-us-west-1
|
|
hostname: genex-us-west-1
|
|
environment:
|
|
- MONIKER=genex-us-west-1
|
|
- CHAIN_ID=genex-testnet-1
|
|
- NODE_TYPE=genesis
|
|
- PERSISTENT_PEERS=genex-us-east-1:26656
|
|
ports:
|
|
- "26666:26656"
|
|
- "26667:26657"
|
|
- "8555:8545"
|
|
volumes:
|
|
- node2-data:/home/genex/.genexd
|
|
depends_on:
|
|
- genex-node-1
|
|
|
|
# =============================================
|
|
# Genesis Validator Node 3 (Singapore)
|
|
# =============================================
|
|
genex-node-3:
|
|
<<: *genex-node-defaults
|
|
container_name: genex-sg-1
|
|
hostname: genex-sg-1
|
|
environment:
|
|
- MONIKER=genex-sg-1
|
|
- CHAIN_ID=genex-testnet-1
|
|
- NODE_TYPE=genesis
|
|
- PERSISTENT_PEERS=genex-us-east-1:26656,genex-us-west-1:26656
|
|
ports:
|
|
- "26676:26656"
|
|
- "26677:26657"
|
|
- "8565:8545"
|
|
volumes:
|
|
- node3-data:/home/genex/.genexd
|
|
depends_on:
|
|
- genex-node-1
|
|
|
|
# =============================================
|
|
# Institution Validator Node 1
|
|
# =============================================
|
|
genex-inst-1:
|
|
<<: *genex-node-defaults
|
|
container_name: genex-inst-1
|
|
hostname: genex-inst-1
|
|
environment:
|
|
- MONIKER=genex-inst-1
|
|
- CHAIN_ID=genex-testnet-1
|
|
- NODE_TYPE=institution
|
|
- PERSISTENT_PEERS=genex-us-east-1:26656,genex-sg-1:26656
|
|
ports:
|
|
- "26686:26656"
|
|
- "26687:26657"
|
|
- "8575:8545"
|
|
volumes:
|
|
- inst1-data:/home/genex/.genexd
|
|
depends_on:
|
|
- genex-node-1
|
|
- genex-node-3
|
|
|
|
# =============================================
|
|
# Institution Validator Node 2
|
|
# =============================================
|
|
genex-inst-2:
|
|
<<: *genex-node-defaults
|
|
container_name: genex-inst-2
|
|
hostname: genex-inst-2
|
|
environment:
|
|
- MONIKER=genex-inst-2
|
|
- CHAIN_ID=genex-testnet-1
|
|
- NODE_TYPE=institution
|
|
- PERSISTENT_PEERS=genex-us-east-1:26656,genex-inst-1:26656
|
|
ports:
|
|
- "26696:26656"
|
|
- "26697:26657"
|
|
- "8585:8545"
|
|
volumes:
|
|
- inst2-data:/home/genex/.genexd
|
|
depends_on:
|
|
- genex-node-1
|
|
|
|
# =============================================
|
|
# Regulatory Observer Node (Read-Only)
|
|
# =============================================
|
|
genex-regulatory:
|
|
<<: *genex-node-defaults
|
|
container_name: genex-regulatory-1
|
|
hostname: genex-regulatory-1
|
|
environment:
|
|
- MONIKER=genex-regulatory-1
|
|
- CHAIN_ID=genex-testnet-1
|
|
- NODE_TYPE=regulatory
|
|
- PERSISTENT_PEERS=genex-us-east-1:26656,genex-sg-1:26656
|
|
ports:
|
|
- "26706:26656"
|
|
- "26707:26657"
|
|
- "8595:8545"
|
|
volumes:
|
|
- regulatory-data:/home/genex/.genexd
|
|
depends_on:
|
|
- genex-node-1
|
|
|
|
# =============================================
|
|
# Smart Contract Deployer (one-shot job)
|
|
# =============================================
|
|
contract-deployer:
|
|
build:
|
|
context: ./genex-contracts
|
|
dockerfile: Dockerfile
|
|
container_name: genex-contract-deployer
|
|
environment:
|
|
- RPC_URL=http://genex-node-1:8545
|
|
- DEPLOYER_PRIVATE_KEY=${DEPLOYER_PRIVATE_KEY:-}
|
|
- USDC_ADDRESS=${USDC_ADDRESS:-}
|
|
- FEE_COLLECTOR=${FEE_COLLECTOR:-}
|
|
networks:
|
|
- genex-net
|
|
depends_on:
|
|
- genex-node-1
|
|
profiles:
|
|
- deploy
|
|
|
|
volumes:
|
|
node1-data:
|
|
node2-data:
|
|
node3-data:
|
|
inst1-data:
|
|
inst2-data:
|
|
regulatory-data:
|
|
|
|
networks:
|
|
genex-net:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.28.0.0/16
|