Files
nomos-node/compose.devnet.run.yml
T

223 lines
6.7 KiB
YAML

version: '3.8'
services:
explorer:
container_name: explorer
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
depends_on:
- logos-blockchain-node-0
environment:
- NBE_NODE_API_HOST=logos-blockchain-node-0
- NBE_NODE_API_PORT=${NODE0_API_PORT}
ports:
- "8000:8000/tcp"
entrypoint: /opt/scripts/run_explorer.sh
cfgsync:
container_name: cfgsync
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
volumes:
- ./testnet:/etc/logos-blockchain
depends_on:
- grafana
ports:
- "4400:4400/tcp"
entrypoint: /etc/logos-blockchain/scripts/run_cfgsync_server.sh
logos-blockchain-node-0:
container_name: logos_blockchain_node_0
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
volumes:
- node-data:/node-data
- ./testnet:/etc/logos-blockchain
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
environment:
- LB_HOST_IDX=0
- CFG_HOST_IP=${PUBLIC_IP_ADDR}
- CFG_NETWORK_PORT=${NODE0_NET_PORT}
- CFG_BLEND_PORT=${NODE0_BLEND_PORT}
- CFG_API_PORT=${NODE0_API_PORT}
- FAUCET_PORT=${NODE0_FAUCET_PORT}
ports:
- "3000:3000/udp"
- "3400:3400/udp"
- "18085:18085/tcp"
entrypoint: /etc/logos-blockchain/scripts/run_node.sh
logos-blockchain-node-1:
container_name: logos_blockchain_node_1
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
volumes:
- node-data:/node-data
- ./testnet:/etc/logos-blockchain
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
environment:
- LB_HOST_IDX=1
- CFG_HOST_IP=${PUBLIC_IP_ADDR}
- CFG_NETWORK_PORT=${NODE1_NET_PORT}
- CFG_BLEND_PORT=${NODE1_BLEND_PORT}
- CFG_API_PORT=${NODE1_API_PORT}
- FAUCET_PORT=${NODE1_FAUCET_PORT}
ports:
- "3001:3001/udp"
- "3401:3401/udp"
- "18081:18081/tcp"
entrypoint: /etc/logos-blockchain/scripts/run_node.sh
logos-blockchain-node-2:
container_name: logos_blockchain_node_2
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
volumes:
- node-data:/node-data
- ./testnet:/etc/logos-blockchain
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
environment:
- LB_HOST_IDX=2
- CFG_HOST_IP=${PUBLIC_IP_ADDR}
- CFG_NETWORK_PORT=${NODE2_NET_PORT}
- CFG_BLEND_PORT=${NODE2_BLEND_PORT}
- CFG_API_PORT=${NODE2_API_PORT}
- FAUCET_PORT=${NODE2_FAUCET_PORT}
ports:
- "3002:3002/udp"
- "3402:3402/udp"
- "18082:18082/tcp"
entrypoint: /etc/logos-blockchain/scripts/run_node.sh
logos-blockchain-node-3:
container_name: logos_blockchain_node_3
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
volumes:
- node-data:/node-data
- ./testnet:/etc/logos-blockchain
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
environment:
- LB_HOST_IDX=3
- CFG_HOST_IP=${PUBLIC_IP_ADDR}
- CFG_NETWORK_PORT=${NODE3_NET_PORT}
- CFG_BLEND_PORT=${NODE3_BLEND_PORT}
- CFG_API_PORT=${NODE3_API_PORT}
- FAUCET_PORT=${NODE3_FAUCET_PORT}
ports:
- "3003:3003/udp"
- "3403:3403/udp"
- "18083:18083/tcp"
entrypoint: /etc/logos-blockchain/scripts/run_node.sh
prometheus:
container_name: prometheus
image: prom/prometheus:v3.0.1
volumes:
- ./testnet/monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:z
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.retention.time=7d
- --web.enable-otlp-receiver
ports:
- 0.0.0.0:9090:9090
restart: on-failure
grafana:
container_name: grafana
image: grafana/grafana:latest
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
- GF_AUTH_DISABLE_LOGIN_FORM=true
- GF_FEATURE_TOGGLES_ENABLE=traceqlEditor traceQLStreaming metricsSummary
env_file:
- ./testnet/monitoring/grafana/plugins.env
volumes:
- ./testnet/monitoring/grafana/grafana.ini:/etc/grafana/grafana.ini:z
- ./testnet/monitoring/grafana/datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml:z
- ./testnet/monitoring/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yml:z
- ./testnet/monitoring/grafana/dashboards:/var/lib/grafana/dashboards/:z
ports:
- 9091:3000
restart: on-failure
depends_on:
- prometheus
loki:
image: grafana/loki:2.9.2
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
# Tempo runs as unpriviliged user, volumes need to be chowned before running.
tempo-init:
image: busybox:latest
user: root
entrypoint:
- "chown"
- "10001:10001"
- "/var/tempo"
volumes:
- ./tempo-data:/var/tempo
tempo:
image: grafana/tempo:latest
container_name: tempo
command: [ "-config.file=/etc/tempo.yaml" ]
volumes:
- ./testnet/monitoring/tempo.yaml:/etc/tempo.yaml:z
- ./tempo-data:/var/tempo
ports:
- "4317:4317" # otlp grpc
depends_on:
- tempo-init
# L2 Sequencer Demo Services
l2-nginx:
container_name: l2_nginx
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
ports:
- "18080:18080"
depends_on:
- cfgsync
- explorer
volumes:
- ./testnet/nginx.conf:/etc/nginx/nginx.conf:ro
- ./testnet/static:/usr/share/nginx/html:ro
entrypoint: [ "nginx", "-g", "daemon off;" ]
l2-sequencer:
container_name: l2_sequencer
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
environment:
- SEQUENCER_LISTEN_ADDR=0.0.0.0:8080
- SEQUENCER_NODE_ENDPOINT=http://logos-blockchain-node-0:18081
- SEQUENCER_DB_PATH=/data/sequencer.db
- SEQUENCER_SIGNING_KEY_PATH=/data/sequencer.key
- SEQUENCER_CHANNEL_ID=6d656d636f696e00000000000000000000000000000000000000000000000001
- SEQUENCER_INITIAL_BALANCE=1000
volumes:
- l2-sequencer-data:/data
entrypoint: [ "/usr/bin/logos-blockchain-demo-sequencer" ]
l2-archiver:
container_name: l2_archiver
image: ghcr.io/logos-blockchain/logos-blockchain:devnet
environment:
- TESTNET_ENDPOINT=http://logos-blockchain-node-1:18081
- CHANNEL_ID=6d656d636f696e00000000000000000000000000000000000000000000000001
- TOKEN_NAME=MEM
entrypoint: [ "/usr/bin/logos-blockchain-demo-archiver" ]
# Node data volume is marked as external and assumes
# that configuration files were placed by compose.setup.yml
volumes:
l2-sequencer-data:
node-data:
name: logos-node-data
external: true