logos-blockchain/compose.static.yml
gusto 3c249f67d1
feat(testnet): L2 sequencer and archiver example (#2001)
Co-authored-by: Antonio Antonino <antonio@status.im>
Co-authored-by: Petar Radovic <petar.radovic@gmail.com>
2026-01-12 18:15:22 +02:00

165 lines
4.7 KiB
YAML

version: '3.8'
services:
cfgsync:
container_name: cfgsync
image: ghcr.io/logos-blockchain/logos-blockchain:testnet
volumes:
- ./testnet:/etc/nomos
depends_on:
- grafana
entrypoint: /etc/nomos/scripts/run_cfgsync.sh
nomos-node-0:
container_name: nomos_node_0
image: ghcr.io/logos-blockchain/logos-blockchain:testnet
ports:
- "3000:3000/udp"
- "18080:18080/tcp"
volumes:
- ./testnet:/etc/nomos
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
entrypoint: /etc/nomos/scripts/run_nomos_node.sh
nomos-node-1:
container_name: nomos_node_1
image: ghcr.io/logos-blockchain/logos-blockchain:testnet
volumes:
- ./testnet:/etc/nomos
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
ports:
- "3001:3000/udp"
- "18081:18080/tcp"
entrypoint: /etc/nomos/scripts/run_nomos_node.sh
nomos-node-2:
container_name: nomos_node_2
image: ghcr.io/logos-blockchain/logos-blockchain:testnet
volumes:
- ./testnet:/etc/nomos
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
ports:
- "3002:3000/udp"
- "18082:18080/tcp"
entrypoint: /etc/nomos/scripts/run_nomos_node.sh
nomos-node-3:
container_name: nomos_node_3
image: ghcr.io/logos-blockchain/logos-blockchain:testnet
volumes:
- ./testnet:/etc/nomos
- ./tests/kzgrs/kzgrs_test_params:/kzgrs_test_params:z
depends_on:
- cfgsync
ports:
- "3003:3000/udp"
- "18083:18080/tcp"
entrypoint: /etc/nomos/scripts/run_nomos_executor.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:
- 127.0.0.1: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:testnet
ports:
- "8200:80"
depends_on:
- l2-sequencer
- l2-archiver
entrypoint: ["nginx", "-g", "daemon off;"]
l2-sequencer:
container_name: l2_sequencer
image: ghcr.io/logos-blockchain/logos-blockchain:testnet
environment:
- SEQUENCER_LISTEN_ADDR=0.0.0.0:8080
- SEQUENCER_NODE_ENDPOINT=http://nomos-node-0:18080
- 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/demo-sequencer"]
l2-archiver:
container_name: l2_archiver
image: ghcr.io/logos-blockchain/logos-blockchain:testnet
environment:
- TESTNET_ENDPOINT=http://nomos-node-1:18080
- CHANNEL_ID=6d656d636f696e00000000000000000000000000000000000000000000000001
- TOKEN_NAME=MEM
entrypoint: ["/usr/bin/logos-blockchain-archiver"]
volumes:
l2-sequencer-data: