luxd moved chain APIs from /v1/bc/<alias> to /v1/chain/<alias> and deleted the
old prefix, and health moved onto typed ops at /v1/health/ops/*. Both landed in
node 1.36.181. Nothing here could move before that image existed, and the image
cannot roll out while the manifests still ask for addresses it no longer serves,
so the pin and the paths move in one commit.
What moved:
image 1.36.171 -> 1.36.181, digest with it, on devnet/testnet/mainnet
internal exchange-api, lux-hb2, rpc-tip-gate, the luxd startup script
probes /v1/health/liveness -> /v1/health/ops/liveness (bare /v1/health,
which the local compose healthcheck used, no longer routes at all)
public the devnet and testnet gateway routes
Comments that RECORD an observation keep their original spelling: a note saying
/v1/bc/zoo/rpc returned 404 on a given date is a fact about that date, and
rewriting it would make the record false. Only live addresses moved.
1.36.181 also carries chains v1.7.38, so the deployed node has the zkvm
content-derived transaction identity.
Co-authored-by: Hanzo Dev <[email protected]>
237 lines
6.3 KiB
YAML
237 lines
6.3 KiB
YAML
# Devnet Configuration - Network ID 5, Ports 9840+
|
|
# Usage: docker compose -f compose.devnet.yml up -d
|
|
#
|
|
# Development network for protocol testing and experimentation
|
|
|
|
version: "3.8"
|
|
|
|
networks:
|
|
devnet:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.32.0.0/24
|
|
|
|
volumes:
|
|
devnet-postgres:
|
|
devnet-redis:
|
|
devnet-node1-data:
|
|
devnet-node2-data:
|
|
devnet-node3-data:
|
|
devnet-node4-data:
|
|
devnet-node5-data:
|
|
|
|
x-node-common: &node-common
|
|
image: ghcr.io/luxfi/node:${NODE_VERSION:-latest}
|
|
restart: unless-stopped
|
|
networks:
|
|
- devnet
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
environment:
|
|
NETWORK_ID: 3
|
|
|
|
services:
|
|
# Infrastructure
|
|
devnet-postgres:
|
|
image: ghcr.io/hanzoai/sql:0.1.0
|
|
container_name: devnet-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: devnet
|
|
volumes:
|
|
- devnet-postgres:/var/lib/postgresql/data
|
|
ports:
|
|
- "15434:5432"
|
|
networks:
|
|
- devnet
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
devnet-redis:
|
|
image: ghcr.io/hanzoai/kv:0.1.0
|
|
container_name: devnet-redis
|
|
restart: unless-stopped
|
|
command: redis-server --appendonly yes
|
|
volumes:
|
|
- devnet-redis:/data
|
|
ports:
|
|
- "16381:6379"
|
|
networks:
|
|
- devnet
|
|
|
|
# Bootstrap Node (Node 1) - Dev network with fresh genesis
|
|
devnet-node-1:
|
|
<<: *node-common
|
|
container_name: devnet-node-1
|
|
volumes:
|
|
- devnet-node1-data:/app/data
|
|
- ~/.lux/keys/node0:/app/keys:ro
|
|
- ../genesis/configs/devnet:/app/genesis:ro
|
|
ports:
|
|
- "9840:9630"
|
|
- "9841:9631"
|
|
command: >
|
|
--network-id=3
|
|
--http-host=0.0.0.0
|
|
--http-port=9630
|
|
--staking-port=9631
|
|
--staking-host=0.0.0.0
|
|
--network-allow-private-ips=true
|
|
--genesis-file=/app/genesis/genesis.json
|
|
--staking-tls-cert-file=/app/keys/staking/staker.crt
|
|
--staking-tls-key-file=/app/keys/staking/staker.key
|
|
--staking-signer-key-file=/app/keys/bls/private.key
|
|
--index-enabled
|
|
--api-admin-enabled
|
|
--data-dir=/app/data
|
|
--log-level=debug
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:9630/v1/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
start_period: 60s
|
|
retries: 3
|
|
|
|
devnet-node-2:
|
|
<<: *node-common
|
|
container_name: devnet-node-2
|
|
volumes:
|
|
- devnet-node2-data:/app/data
|
|
- ~/.lux/keys/node1:/app/keys:ro
|
|
- ../genesis/configs/devnet:/app/genesis:ro
|
|
ports:
|
|
- "9842:9630"
|
|
- "9843:9631"
|
|
command: >
|
|
--network-id=3
|
|
--http-host=0.0.0.0
|
|
--http-port=9630
|
|
--staking-port=9631
|
|
--network-allow-private-ips=true
|
|
--genesis-file=/app/genesis/genesis.json
|
|
--staking-tls-cert-file=/app/keys/staking/staker.crt
|
|
--staking-tls-key-file=/app/keys/staking/staker.key
|
|
--staking-signer-key-file=/app/keys/bls/private.key
|
|
--bootstrap-ips=devnet-node-1:9631
|
|
--bootstrap-ids=NodeID-FrtEjhat6RUqjEWCJgYZKqBaxY2Woyy5G
|
|
--data-dir=/app/data
|
|
--log-level=debug
|
|
depends_on:
|
|
devnet-node-1:
|
|
condition: service_healthy
|
|
|
|
devnet-node-3:
|
|
<<: *node-common
|
|
container_name: devnet-node-3
|
|
volumes:
|
|
- devnet-node3-data:/app/data
|
|
- ~/.lux/keys/node2:/app/keys:ro
|
|
- ../genesis/configs/devnet:/app/genesis:ro
|
|
ports:
|
|
- "9844:9630"
|
|
- "9845:9631"
|
|
command: >
|
|
--network-id=3
|
|
--http-host=0.0.0.0
|
|
--http-port=9630
|
|
--staking-port=9631
|
|
--network-allow-private-ips=true
|
|
--genesis-file=/app/genesis/genesis.json
|
|
--staking-tls-cert-file=/app/keys/staking/staker.crt
|
|
--staking-tls-key-file=/app/keys/staking/staker.key
|
|
--staking-signer-key-file=/app/keys/bls/private.key
|
|
--bootstrap-ips=devnet-node-1:9631
|
|
--bootstrap-ids=NodeID-FrtEjhat6RUqjEWCJgYZKqBaxY2Woyy5G
|
|
--data-dir=/app/data
|
|
--log-level=debug
|
|
depends_on:
|
|
devnet-node-1:
|
|
condition: service_healthy
|
|
|
|
devnet-node-4:
|
|
<<: *node-common
|
|
container_name: devnet-node-4
|
|
volumes:
|
|
- devnet-node4-data:/app/data
|
|
- ~/.lux/keys/node3:/app/keys:ro
|
|
- ../genesis/configs/devnet:/app/genesis:ro
|
|
ports:
|
|
- "9846:9630"
|
|
- "9847:9631"
|
|
command: >
|
|
--network-id=3
|
|
--http-host=0.0.0.0
|
|
--http-port=9630
|
|
--staking-port=9631
|
|
--network-allow-private-ips=true
|
|
--genesis-file=/app/genesis/genesis.json
|
|
--staking-tls-cert-file=/app/keys/staking/staker.crt
|
|
--staking-tls-key-file=/app/keys/staking/staker.key
|
|
--staking-signer-key-file=/app/keys/bls/private.key
|
|
--bootstrap-ips=devnet-node-1:9631
|
|
--bootstrap-ids=NodeID-FrtEjhat6RUqjEWCJgYZKqBaxY2Woyy5G
|
|
--data-dir=/app/data
|
|
--log-level=debug
|
|
depends_on:
|
|
devnet-node-1:
|
|
condition: service_healthy
|
|
|
|
devnet-node-5:
|
|
<<: *node-common
|
|
container_name: devnet-node-5
|
|
volumes:
|
|
- devnet-node5-data:/app/data
|
|
- ~/.lux/keys/node4:/app/keys:ro
|
|
- ../genesis/configs/devnet:/app/genesis:ro
|
|
ports:
|
|
- "9848:9630"
|
|
- "9849:9631"
|
|
command: >
|
|
--network-id=3
|
|
--http-host=0.0.0.0
|
|
--http-port=9630
|
|
--staking-port=9631
|
|
--network-allow-private-ips=true
|
|
--genesis-file=/app/genesis/genesis.json
|
|
--staking-tls-cert-file=/app/keys/staking/staker.crt
|
|
--staking-tls-key-file=/app/keys/staking/staker.key
|
|
--staking-signer-key-file=/app/keys/bls/private.key
|
|
--bootstrap-ips=devnet-node-1:9631
|
|
--bootstrap-ids=NodeID-FrtEjhat6RUqjEWCJgYZKqBaxY2Woyy5G
|
|
--data-dir=/app/data
|
|
--log-level=debug
|
|
depends_on:
|
|
devnet-node-1:
|
|
condition: service_healthy
|
|
|
|
# LXD Gateway for DEX
|
|
devnet-gateway:
|
|
build:
|
|
context: ../dex
|
|
dockerfile: Dockerfile
|
|
image: lxd-gateway:devnet
|
|
container_name: devnet-gateway
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8082:8080"
|
|
environment:
|
|
LUX_RPC_URL: http://devnet-node-1:9630/v1/chain/C/rpc
|
|
ZOO_RPC_URL: http://devnet-node-1:9630/v1/chain/zoo/rpc
|
|
LOG_LEVEL: debug
|
|
networks:
|
|
- devnet
|
|
depends_on:
|
|
devnet-node-1:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|