@hashgraph/hedera-local
Version:
Developer tooling for running Local Hedera Network (Consensus + Mirror Nodes).
1,468 lines (1,467 loc) • 42.1 kB
YAML
name: hiero-local-node
services:
account-balances-uploader:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /balances
- --s3-endpoint
- http://minio:9000
- --debug
container_name: account-balances-uploader
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: accountBalances/balance0.0.3
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: pb_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: pb
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances/balance0.0.3
target: /balances
bind:
create_host_path: true
account-balances-uploader-1:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /balances
- --s3-endpoint
- http://minio:9000
- --debug
container_name: account-balances-uploader-1
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: accountBalances/balance0.0.4
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: pb_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: pb
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances/balance0.0.4
target: /balances
bind:
create_host_path: true
account-balances-uploader-2:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /balances
- --s3-endpoint
- http://minio:9000
- --debug
container_name: account-balances-uploader-2
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: accountBalances/balance0.0.5
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: pb_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: pb
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances/balance0.0.5
target: /balances
bind:
create_host_path: true
account-balances-uploader-3:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /balances
- --s3-endpoint
- http://minio:9000
- --debug
container_name: account-balances-uploader-3
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: accountBalances/balance0.0.6
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: pb_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: pb
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances/balance0.0.6
target: /balances
bind:
create_host_path: true
block-node:
container_name: block-node
environment:
BLOCKNODE_STORAGE_ROOT_PATH: /app/storage
JAVA_OPTS: -Xms16G -Xmx16G
REGISTRY_PREFIX: ""
VERSION: 0.7.0
image: ghcr.io/hiero-ledger/hiero-block-node:0.10.0
networks:
mirror-node: null
network-node-bridge: null
ports:
- mode: ingress
target: 8080
published: "8080"
protocol: tcp
- mode: ingress
target: 9999
published: "9998"
protocol: tcp
cache:
container_name: relay-cache
image: ghcr.io/mhga24/redis:6-alpine
mem_limit: "805306368"
memswap_limit: "805306368"
networks:
network-node-bridge:
ipv4_address: 172.27.0.50
ports:
- mode: ingress
target: 6379
published: "6379"
protocol: tcp
restart: unless-stopped
stop_signal: SIGTERM
tty: true
cadvisor:
container_name: cadvisor
image: gcr.io/cadvisor/cadvisor:v0.47.0
networks:
default: null
ports:
- mode: ingress
target: 8080
published: "8081"
protocol: tcp
volumes:
- type: bind
source: /var/run/docker.sock
target: /var/run/docker.sock
read_only: true
bind:
create_host_path: true
- type: bind
source: /sys
target: /sys
read_only: true
bind:
create_host_path: true
- type: bind
source: /var/lib/docker/
target: /var/lib/docker
read_only: true
bind:
create_host_path: true
db:
container_name: mirror-node-db
environment:
GRPC_PASSWORD: mirror_grpc_pass
IMPORTER_PASSWORD: mirror_importer_pass
OWNER_PASSWORD: mirror_node_pass
POSTGRES_HOST_AUTH_METHOD: scram-sha-256
POSTGRES_INITDB_ARGS: --auth-host=scram-sha-256
POSTGRES_PASSWORD: postgres_password
REST_PASSWORD: mirror_api_pass
ROSETTA_PASSWORD: mirror_rosetta_pass
image: ghcr.io/mhga24/postgres:latest
networks:
mirror-node: null
ports:
- mode: ingress
target: 5432
published: "5433"
protocol: tcp
restart: unless-stopped
stop_grace_period: 2m0s
stop_signal: SIGTERM
tty: true
volumes:
- type: bind
source: ./compose-network/mirror-node/init.sh
target: /docker-entrypoint-initdb.d/init.sh
bind:
create_host_path: true
- type: volume
source: mirror-node-postgres
target: /var/lib/postgresql/data
envoy:
container_name: envoy-proxy
image: ghcr.io/mhga24/envoyproxy/envoy:v1.22.0
networks:
network-node-bridge: null
ports:
- mode: ingress
target: 50213
published: "50213"
protocol: tcp
volumes:
- type: bind
source: ./envoy.yaml
target: /etc/envoy/envoy.yaml
bind:
create_host_path: true
explorer:
container_name: hedera-explorer
environment:
DOCKER_LOCAL_MIRROR_NODE_MENU_NAME: LOCALNET
DOCKER_LOCAL_MIRROR_NODE_URL: http://127.0.0.1:5551/
image: gcr.io/hedera-registry/hedera-mirror-node-explorer:24.4.0
networks:
mirror-node: null
ports:
- mode: ingress
target: 8080
published: "8090"
protocol: tcp
restart: unless-stopped
grafana:
container_name: grafana
environment:
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Admin
GF_AUTH_DISABLE_LOGIN_FORM: "true"
GF_AUTH_DISABLE_SIGNOUT_MENU: "true"
GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION: "true"
image: ghcr.io/mhga24/grafana/grafana:8.5.16
networks:
mirror-node: null
network-node-bridge:
ipv4_address: 172.27.0.5
ports:
- mode: ingress
target: 3000
published: "3000"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: ./compose-network/grafana/datasources
target: /etc/grafana/provisioning/datasources
bind:
create_host_path: true
- type: bind
source: ./compose-network/grafana/dashboards
target: /etc/grafana/provisioning/dashboards
bind:
create_host_path: true
- type: volume
source: grafana-data
target: /var/lib/grafana
volume: {}
grpc:
container_name: mirror-node-grpc
depends_on:
db:
condition: service_started
required: true
network-node:
condition: service_started
required: true
environment:
HEDERA_MIRROR_GRPC_DB_HOST: db
JAVA_TOOL_OPTIONS: ""
SPRING_CONFIG_ADDITIONAL_LOCATION: file:/usr/etc/hedera-mirror-grpc/
image: gcr.io/mirrornode/hedera-mirror-grpc:0.129.0
mem_limit: "536870912"
memswap_limit: "536870912"
networks:
mirror-node: null
ports:
- mode: ingress
target: 5600
published: "5600"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: ./compose-network/mirror-node/application.yml
target: /usr/etc/hedera-mirror-grpc/application.yml
bind:
create_host_path: true
haveged:
command:
- -d 16
container_name: haveged
image: gcr.io/hedera-registry/network-node-haveged:0.62.3
network_mode: none
privileged: true
restart: always
importer:
container_name: mirror-node-importer
depends_on:
db:
condition: service_started
required: true
minio:
condition: service_started
required: true
environment:
HEDERA_MIRROR_IMPORTER_DB_HOST: db
JAVA_TOOL_OPTIONS: ""
SPRING_CONFIG_ADDITIONAL_LOCATION: file:/usr/etc/hedera-mirror-importer/
image: gcr.io/mirrornode/hedera-mirror-importer:0.129.0
mem_limit: "805306368"
memswap_limit: "805306368"
networks:
cloud-storage: null
mirror-node: null
restart: unless-stopped
volumes:
- type: bind
source: ./compose-network/mirror-node/application.yml
target: /usr/etc/hedera-mirror-importer/application.yml
bind:
create_host_path: true
- type: bind
source: ./compose-network/mirror-node/addressBook.multinode.bin
target: /usr/etc/hedera-mirror-importer/local-dev-1-node.addressbook.f102.json.bin
bind:
create_host_path: true
minio:
command:
- -c
- mkdir -p /data/hedera-streams && minio server /data --console-address ":9001"
container_name: minio
entrypoint:
- sh
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
MINIO_ROOT_USER: minioadmin
MINIO_SECRET_KEY: minioadmin
image: ghcr.io/mhga24/minio/minio
networks:
cloud-storage: null
ports:
- mode: ingress
target: 9000
published: "9000"
protocol: tcp
- mode: ingress
target: 9001
published: "9001"
protocol: tcp
volumes:
- type: volume
source: minio-data
target: /data
volume: {}
monitor:
container_name: mirror-node-monitor
depends_on:
grpc:
condition: service_started
required: true
network-node:
condition: service_healthy
required: true
network-node-1:
condition: service_healthy
required: true
network-node-2:
condition: service_healthy
required: true
network-node-3:
condition: service_healthy
required: true
rest:
condition: service_started
required: true
environment:
JAVA_TOOL_OPTIONS: ""
SPRING_CONFIG_ADDITIONAL_LOCATION: file:/usr/etc/hedera-mirror-monitor/
image: gcr.io/mirrornode/hedera-mirror-monitor:0.129.0
mem_limit: "536870912"
memswap_limit: "536870912"
networks:
mirror-node: null
network-node-bridge: null
ports:
- mode: ingress
target: 8082
published: "8082"
protocol: tcp
restart: unless-stopped
tty: true
volumes:
- type: bind
source: ./compose-network/mirror-node/application.yml
target: /usr/etc/hedera-mirror-monitor/application.yml
bind:
create_host_path: true
network-node:
container_name: network-node
depends_on:
haveged:
condition: service_started
required: true
record-streams-uploader:
condition: service_started
required: true
environment:
CONSENSUS_NODE_ID: "0"
JAVA_HEAP_MAX: 2g
JAVA_HEAP_MIN: 256m
JAVA_OPTS: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xlog:gc*:gc.log
JAVA_TOOL_OPTIONS: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xlog:gc*:gc.log
healthcheck:
test:
- CMD
- grep
- -E
- Now current platform status = ACTIVE|OBSERVING|CHECKING
- /opt/hgcapp/services-hedera/HapiApp2.0/output/hgcaa.log
timeout: 10s
interval: 30s
retries: 10
start_period: 10s
image: gcr.io/hedera-registry/consensus-node:0.62.3
mem_limit: "4294967296"
memswap_limit: "4294967296"
networks:
network-node-bridge:
ipv4_address: 172.27.0.3
ports:
- mode: ingress
target: 50211
published: "50211"
protocol: tcp
- mode: ingress
target: 50212
published: "50212"
protocol: tcp
- mode: ingress
target: 9999
published: "9999"
protocol: tcp
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances
target: /opt/hgcapp/accountBalances
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/recordStreams
target: /opt/hgcapp/recordStreams
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/config
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/config
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/config
target: /opt/hgcapp/data/config
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/logs
target: /opt/hgcapp/services-hedera/HapiApp2.0/output
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/keys
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/keys
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/stats
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/stats
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/config.multinode.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/config.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/settings.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/settings.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/log4j2.xml
target: /opt/hgcapp/services-hedera/HapiApp2.0/log4j2.xml
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.crt
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.crt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.key
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.key
bind:
create_host_path: true
network-node-1:
container_name: network-node-1
depends_on:
haveged:
condition: service_started
required: true
network-node:
condition: service_healthy
required: true
record-streams-uploader:
condition: service_started
required: true
environment:
CONSENSUS_NODE_ID: "1"
JAVA_HEAP_MAX: 2g
JAVA_HEAP_MIN: 256m
JAVA_OPTS: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xlog:gc*:gc.log
healthcheck:
test:
- CMD
- grep
- -E
- Now current platform status = ACTIVE|OBSERVING|CHECKING
- /opt/hgcapp/services-hedera/HapiApp2.0/output/hgcaa.log
timeout: 10s
interval: 30s
retries: 10
start_period: 10s
image: gcr.io/hedera-registry/consensus-node:0.62.3
mem_limit: "4294967296"
memswap_limit: "4294967296"
networks:
network-node-bridge:
ipv4_address: 172.27.0.11
ports:
- mode: ingress
target: 50211
published: "51211"
protocol: tcp
- mode: ingress
target: 50212
published: "51212"
protocol: tcp
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances
target: /opt/hgcapp/accountBalances
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/recordStreams
target: /opt/hgcapp/recordStreams
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/config
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/config
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/logs
target: /opt/hgcapp/services-hedera/HapiApp2.0/output
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/keys
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/keys
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/stats
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/stats
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/config.multinode.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/config.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/settings.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/settings.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/log4j2.xml
target: /opt/hgcapp/services-hedera/HapiApp2.0/log4j2.xml
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.crt
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.crt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.key
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.key
bind:
create_host_path: true
network-node-2:
container_name: network-node-2
depends_on:
haveged:
condition: service_started
required: true
network-node-1:
condition: service_healthy
required: true
record-streams-uploader:
condition: service_started
required: true
environment:
CONSENSUS_NODE_ID: "2"
JAVA_HEAP_MAX: 2g
JAVA_HEAP_MIN: 256m
JAVA_OPTS: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xlog:gc*:gc.log
healthcheck:
test:
- CMD
- grep
- -E
- Now current platform status = ACTIVE|OBSERVING|CHECKING
- /opt/hgcapp/services-hedera/HapiApp2.0/output/hgcaa.log
timeout: 10s
interval: 30s
retries: 10
start_period: 10s
image: gcr.io/hedera-registry/consensus-node:0.62.3
mem_limit: "4294967296"
memswap_limit: "4294967296"
networks:
network-node-bridge:
ipv4_address: 172.27.0.12
ports:
- mode: ingress
target: 50211
published: "52211"
protocol: tcp
- mode: ingress
target: 50212
published: "52212"
protocol: tcp
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances
target: /opt/hgcapp/accountBalances
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/recordStreams
target: /opt/hgcapp/recordStreams
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/config
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/config
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/logs
target: /opt/hgcapp/services-hedera/HapiApp2.0/output
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/keys
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/keys
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/stats
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/stats
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/config.multinode.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/config.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/settings.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/settings.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/log4j2.xml
target: /opt/hgcapp/services-hedera/HapiApp2.0/log4j2.xml
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.crt
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.crt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.key
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.key
bind:
create_host_path: true
network-node-3:
container_name: network-node-3
depends_on:
haveged:
condition: service_started
required: true
network-node-2:
condition: service_healthy
required: true
record-streams-uploader:
condition: service_started
required: true
environment:
CONSENSUS_NODE_ID: "3"
JAVA_HEAP_MAX: 2g
JAVA_HEAP_MIN: 256m
JAVA_OPTS: -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xlog:gc*:gc.log
healthcheck:
test:
- CMD
- grep
- -E
- Now current platform status = ACTIVE|OBSERVING|CHECKING
- /opt/hgcapp/services-hedera/HapiApp2.0/output/hgcaa.log
timeout: 10s
interval: 30s
retries: 10
start_period: 10s
image: gcr.io/hedera-registry/consensus-node:0.62.3
mem_limit: "4294967296"
memswap_limit: "4294967296"
networks:
network-node-bridge:
ipv4_address: 172.27.0.13
ports:
- mode: ingress
target: 50211
published: "53211"
protocol: tcp
- mode: ingress
target: 50212
published: "53212"
protocol: tcp
user: root
volumes:
- type: bind
source: ./network-logs/node/accountBalances
target: /opt/hgcapp/accountBalances
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/recordStreams
target: /opt/hgcapp/recordStreams
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/config
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/config
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/logs
target: /opt/hgcapp/services-hedera/HapiApp2.0/output
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/data/keys
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/keys
bind:
create_host_path: true
- type: bind
source: ./network-logs/node/stats
target: /opt/hgcapp/services-hedera/HapiApp2.0/data/stats
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/config.multinode.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/config.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/settings.txt
target: /opt/hgcapp/services-hedera/HapiApp2.0/settings.txt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/log4j2.xml
target: /opt/hgcapp/services-hedera/HapiApp2.0/log4j2.xml
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.crt
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.crt
bind:
create_host_path: true
- type: bind
source: ./compose-network/network-node/hedera.key
target: /opt/hgcapp/services-hedera/HapiApp2.0/hedera.key
bind:
create_host_path: true
prometheus:
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --web.console.libraries=/etc/prometheus/console_libraries
- --web.console.templates=/etc/prometheus/consoles
- --web.enable-lifecycle
container_name: prometheus
image: ghcr.io/mhga24/prom/prometheus:v2.41.0
networks:
mirror-node: null
network-node-bridge:
ipv4_address: 172.27.0.4
ports:
- mode: ingress
target: 9090
published: "9090"
protocol: tcp
restart: unless-stopped
volumes:
- type: bind
source: ./compose-network/prometheus/prometheus.yml
target: /etc/prometheus/prometheus.yml
bind:
create_host_path: true
- type: volume
source: prometheus-data
target: /prometheus
volume: {}
record-sidecar-uploader:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /sidecar-files
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-sidecar-uploader
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.3/sidecar
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_PRIORITIZE: "false"
SIG_REQUIRE: "false"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.3/sidecar
target: /sidecar-files
bind:
create_host_path: true
record-sidecar-uploader-1:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /sidecar-files
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-sidecar-uploader-1
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.4/sidecar
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_PRIORITIZE: "false"
SIG_REQUIRE: "false"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.4/sidecar
target: /sidecar-files
bind:
create_host_path: true
record-sidecar-uploader-2:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /sidecar-files
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-sidecar-uploader-2
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.5/sidecar
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_PRIORITIZE: "false"
SIG_REQUIRE: "false"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.5/sidecar
target: /sidecar-files
bind:
create_host_path: true
record-sidecar-uploader-3:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /sidecar-files
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-sidecar-uploader-3
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.6/sidecar
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_PRIORITIZE: "false"
SIG_REQUIRE: "false"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.6/sidecar
target: /sidecar-files
bind:
create_host_path: true
record-streams-uploader:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /records
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-streams-uploader
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.3
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: rcd_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.3
target: /records
bind:
create_host_path: true
record-streams-uploader-1:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /records
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-streams-uploader-1
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.4
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: rcd_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.4
target: /records
bind:
create_host_path: true
record-streams-uploader-2:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /records
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-streams-uploader-2
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.5
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: rcd_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.5
target: /records
bind:
create_host_path: true
record-streams-uploader-3:
command:
- /usr/bin/env
- python3.7
- /usr/local/bin/mirror.py
- --linux
- --watch-directory
- /records
- --s3-endpoint
- http://minio:9000
- --debug
container_name: record-streams-uploader-3
depends_on:
minio:
condition: service_started
required: true
environment:
BUCKET_NAME: hedera-streams
BUCKET_PATH: recordstreams/record0.0.6
DEBUG: "true"
GCS_ENABLE: "false"
REAPER_ENABLE: "true"
REAPER_INTERVAL: "5"
REAPER_MIN_KEEP: "1"
S3_ACCESS_KEY: minioadmin
S3_ENABLE: "true"
S3_SECRET_KEY: minioadmin
SIG_EXTENSION: rcd_sig
SIG_PRIORITIZE: "true"
SIG_REQUIRE: "true"
STREAM_EXTENSION: rcd.gz
image: gcr.io/hedera-registry/uploader-mirror:0.7.0
networks:
cloud-storage: null
restart: unless-stopped
user: root
volumes:
- type: bind
source: ./network-logs/node/recordStreams/record0.0.6
target: /records
bind:
create_host_path: true
relay:
container_name: json-rpc-relay
depends_on:
network-node:
condition: service_healthy
required: true
rest:
condition: service_started
required: true
environment:
CHAIN_ID: "0x12a"
DEBUG_API_ENABLED: "true"
DEFAULT_RATE_LIMIT: "200"
DEV_MODE: "false"
E2E_RELAY_HOST: http://127.0.0.1:7546
ETH_CALL_DEFAULT_TO_CONSENSUS_NODE: "false"
ETH_GET_LOGS_BLOCK_RANGE_LIMIT: "1000"
ETH_POPULATE_SYNTHETIC_CONTRACT_RESULTS: ""
FEE_HISTORY_MAX_RESULTS: "10"
HBAR_RATE_LIMIT_BASIC: "500000000000"
HBAR_RATE_LIMIT_DURATION: "0"
HBAR_RATE_LIMIT_EXTENDED: "600000000000"
HBAR_RATE_LIMIT_PRIVILEGED: "700000000000"
HBAR_RATE_LIMIT_TINYBAR: "0"
HEDERA_NETWORK: '{"network-node:50211":"0.0.3"}'
INPUT_SIZE_LIMIT: "1"
LIMIT_DURATION: "60000"
LOCAL_NODE: "true"
MIRROR_NODE_GET_CONTRACT_RESULTS_RETRIES: "20"
MIRROR_NODE_RETRIES: "3"
MIRROR_NODE_RETRY_DELAY: "250"
MIRROR_NODE_URL: http://mirror-node-rest:5551
MIRROR_NODE_URL_WEB3: http://mirror-node-web3:8545
OPERATOR_ID_MAIN: 0.0.2
OPERATOR_KEY_MAIN: 302e020100300506032b65700422042091132178e72057a1d7528025956fe39b0b847f200ab59b2fdd367017f3087137
RATE_LIMIT_DISABLED: "true"
REDIS_ENABLED: "false"
REDIS_URL: redis://127.0.0.1:6379
SERVER_PORT: "7546"
TIER_1_RATE_LIMIT: "100"
TIER_2_RATE_LIMIT: "800"
TIER_3_RATE_LIMIT: "1600"
image: ghcr.io/hiero-ledger/hiero-json-rpc-relay:0.67.0
mem_limit: "805306368"
memswap_limit: "805306368"
networks:
mirror-node: null
network-node-bridge: null
ports:
- mode: ingress
target: 7546
published: "7546"
protocol: tcp
restart: unless-stopped
relay-ws:
command:
- start:ws
container_name: json-rpc-relay-ws
depends_on:
network-node:
condition: service_healthy
required: true
rest:
condition: service_started
required: true
environment:
CHAIN_ID: "0x12a"
DEFAULT_RATE_LIMIT: "200"
DEV_MODE: "false"
E2E_RELAY_HOST: http://127.0.0.1:7546
ETH_CALL_DEFAULT_TO_CONSENSUS_NODE: "false"
ETH_GET_LOGS_BLOCK_RANGE_LIMIT: "1000"
ETH_POPULATE_SYNTHETIC_CONTRACT_RESULTS: ""
FEE_HISTORY_MAX_RESULTS: "10"
HBAR_RATE_LIMIT_DURATION: "0"
HBAR_RATE_LIMIT_TINYBAR: "0"
HEALTHCHECK_PORT: "8547"
HEDERA_NETWORK: '{"network-node:50211":"0.0.3"}'
INPUT_SIZE_LIMIT: "1"
LIMIT_DURATION: "60000"
LOCAL_NODE: "true"
MIRROR_NODE_RETRIES: "3"
MIRROR_NODE_RETRY_DELAY: "250"
MIRROR_NODE_URL: http://mirror-node-rest:5551
OPERATOR_ID_MAIN: 0.0.2
OPERATOR_KEY_MAIN: 302e020100300506032b65700422042091132178e72057a1d7528025956fe39b0b847f200ab59b2fdd367017f3087137
RATE_LIMIT_DISABLED: "true"
REDIS_ENABLED: "false"
REDIS_URL: redis://127.0.0.1:6379
SERVER_PORT: "7546"
SUBSCRIPTIONS_ENABLED: "true"
TIER_1_RATE_LIMIT: "100"
TIER_2_RATE_LIMIT: "800"
TIER_3_RATE_LIMIT: "1600"
WS_CONNECTION_LIMIT: ""
WS_CONNECTION_LIMIT_PER_IP: ""
WS_MAX_INACTIVITY_TTL: ""
WS_MULTIPLE_ADDRESSES_ENABLED: ""
WS_SUBSCRIPTION_LIMIT: ""
image: ghcr.io/hiero-ledger/hiero-json-rpc-relay:0.67.0
mem_limit: "805306368"
memswap_limit: "805306368"
networks:
mirror-node: null
network-node-bridge: null
ports:
- mode: ingress
target: 8546
published: "8546"
protocol: tcp
- mode: ingress
target: 8547
published: "8547"
protocol: tcp
restart: unless-stopped
rest:
container_name: mirror-node-rest
depends_on:
db:
condition: service_started
required: true
importer:
condition: service_started
required: true
environment:
HEDERA_MIRROR_REST_DB_HOST: db
image: gcr.io/mirrornode/hedera-mirror-rest:0.129.0
mem_limit: "536870912"
memswap_limit: "536870912"
networks:
mirror-node: null
ports:
- mode: ingress
target: 5551
published: "5551"
protocol: tcp
restart: unless-stopped
rest-java:
container_name: mirror-node-rest-java
depends_on:
db:
condition: service_started
required: true
importer:
condition: service_started
required: true
environment:
HEDERA_MIRROR_RESTJAVA_DB_HOST: db
JAVA_TOOL_OPTIONS: ""
SPRING_CONFIG_ADDITIONAL_LOCATION: file:/usr/etc/hedera-mirror-rest-java/
image: gcr.io/mirrornode/hedera-mirror-rest-java:0.129.0
mem_limit: "536870912"
memswap_limit: "536870912"
networks:
mirror-node: null
ports:
- mode: ingress
target: 8084
published: "8084"
protocol: tcp
restart: unless-stopped
tty: true
volumes:
- type: bind
source: ./application.yml
target: /usr/etc/hedera-mirror-rest-java/application.yml
bind:
create_host_path: true
web3:
container_name: mirror-node-web3
depends_on:
db:
condition: service_started
required: true
importer:
condition: service_started
required: true
environment:
HEDERA_MIRROR_WEB3_DB_HOST: db
HEDERA_MIRROR_WEB3_EVM_NETWORK: OTHER
JAVA_TOOL_OPTIONS: ""
SPRING_CONFIG_ADDITIONAL_LOCATION: file:/usr/etc/hedera-mirror-web3/
image: gcr.io/mirrornode/hedera-mirror-web3:0.129.0
mem_limit: "1073741824"
memswap_limit: "1073741824"
networks:
mirror-node: null
ports:
- mode: ingress
target: 8545
published: "8545"
protocol: tcp
restart: unless-stopped
tty: true
volumes:
- type: bind
source: ./compose-network/mirror-node/application.yml
target: /usr/etc/hedera-mirror-web3/application.yml
bind:
create_host_path: true
networks:
cloud-storage:
name: hedera-cloud-storage
driver: bridge
default:
name: hiero-local-node_default
mirror-node:
name: hedera-mirror-node
driver: bridge
network-node-bridge:
name: hedera-network-node
driver: bridge
ipam:
driver: default
config:
- subnet: 172.27.0.0/16
gateway: 172.27.0.254
ip_range: 172.27.0.0/24
volumes:
grafana-data:
name: grafana-data
minio-data:
name: minio-data
mirror-node-postgres:
name: mirror-node-postgres
prometheus-data:
name: prometheus-data