Files
zeekayandHanzo Dev 89e2274b46 Point the gateway and the scripts at the segment luxd serves
The route table lives in configs/gateway/*.json, where each endpoint names both
the public path and the url_pattern sent upstream. Both moved: luxd answers
under /v1/chain and nothing translates between them.

The operational scripts went with it — Makefiles, the roll and validator
helpers, the e2e specs and the market-maker config all composed /v1/bc
addresses that now reach nothing. A test that dials a dead path fails in a way
that looks like the chain is down.

Lines that record an observation keep their original spelling.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-30 17:47:43 -07:00

135 lines
3.7 KiB
Makefile

# Docker-based Lux Universe Deployment
# 5 nodes validate everything: LUX mainnet + all app chains (Hanzo, ZOO, SPC)
.PHONY: all up down clean logs status test help
# Default
all: up
help:
@echo "Lux Docker Universe Manager"
@echo "==========================="
@echo "Commands:"
@echo " make up - Start all services (nodes, explorers, IPFS)"
@echo " make down - Stop all services"
@echo " make clean - Stop and remove volumes"
@echo " make logs - Follow all logs"
@echo " make status - Check service status"
@echo " make test - Test all endpoints"
@echo " make build - Rebuild Docker images"
# Build Docker images
build:
@echo "Building Docker images..."
docker compose build --parallel
# Start all services
up:
@echo "Starting Lux Universe (5 nodes + all services)..."
docker compose up -d postgres
@sleep 5
docker compose up -d ipfs
@sleep 3
docker compose up -d lux-node-1
@sleep 5
docker compose up -d lux-node-2 lux-node-3 lux-node-4 lux-node-5
@sleep 10
docker compose up -d lux-explorer hanzo-explorer zoo-explorer spc-explorer
@echo ""
@echo "✅ Lux Universe Started!"
@echo ""
@echo "Services:"
@echo " Nodes: http://localhost:9650,9660,9670,9680,9690"
@echo " Explorers:"
@echo " LUX: http://localhost:4000"
@echo " Hanzo: http://localhost:4003"
@echo " Zoo: http://localhost:4001"
@echo " SPC: http://localhost:4002"
@echo " IPFS: http://localhost:5001 (API), http://localhost:8080 (Gateway)"
# Stop all services
down:
@echo "Stopping all services..."
docker compose down
# Clean everything
clean:
@echo "Cleaning everything..."
docker compose down -v
docker network prune -f
# View logs
logs:
docker compose logs -f
# Check status
status:
@echo "Service Status:"
@echo "=============="
@docker compose ps
@echo ""
@echo "Network Health:"
@for i in 9650 9660 9670 9680 9690; do \
echo -n "Node $$i: "; \
curl -s http://localhost:$$i/v1/health | jq -r .healthy || echo "not ready"; \
done
# Test all endpoints
test:
@echo "Testing Endpoints..."
@echo "==================="
@echo ""
@echo "Testing Nodes:"
@for port in 9650 9660 9670 9680 9690; do \
echo -n " Port $$port: "; \
if curl -s -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' \
-H 'content-type:application/json' http://localhost:$$port/v1/chain/C/rpc | grep -q result; then \
echo "✓ OK"; \
else \
echo "✗ Failed"; \
fi; \
done
@echo ""
@echo "Testing Explorers:"
@for port in 4000 4001 4002 4003; do \
echo -n " Port $$port: "; \
if curl -s http://localhost:$$port/api/v1/health | grep -q ok; then \
echo "✓ OK"; \
else \
echo "✗ Failed"; \
fi; \
done
@echo ""
@echo "Testing IPFS:"
@echo -n " API: "
@if curl -s http://localhost:5001/api/v0/version | grep -q Version; then \
echo "✓ OK"; \
else \
echo "✗ Failed"; \
fi
# Initialize databases
init-db:
@echo "Initializing databases..."
docker exec lux-postgres psql -U postgres -c "CREATE DATABASE explorer_luxnet IF NOT EXISTS;"
docker exec lux-postgres psql -U postgres -c "CREATE DATABASE explorer_hanzo IF NOT EXISTS;"
docker exec lux-postgres psql -U postgres -c "CREATE DATABASE explorer_zoo IF NOT EXISTS;"
docker exec lux-postgres psql -U postgres -c "CREATE DATABASE explorer_spc IF NOT EXISTS;"
# Deploy app chains
deploy-chains:
@echo "Deploying app chains on Lux mainnet..."
@echo "Creating Hanzo chain..."
@curl -X POST --data '{ \
"jsonrpc": "2.0", \
"method": "platform.createChain", \
"params": { \
"controlKeys": ["P-lux1q2z72rl2yqrfhkw8xfgn9qvxh7xr4n3zpjqkqw"], \
"threshold": 1 \
}, \
"id": 1 \
}' -H 'content-type:application/json' http://localhost:9650/v1/P
@echo ""
@echo "App chains deployed!"
.SILENT: help status test