feat: make up/down/status for zoo subnet on lux localnet

This commit is contained in:
Hanzo AI
2026-04-04 13:19:44 -07:00
parent 15797d1f56
commit c3655e13c9
+66
View File
@@ -0,0 +1,66 @@
# Zoo Universe — Local Development
# Runs zood nodes as Lux subnet validators
#
# Prerequisites: lux localnet running (cd ~/work/lux/universe && make up)
#
# Quick start:
# make up Start zoo subnet on local lux network
# make down Stop zoo nodes
# make status Check zoo subnet health
SHELL := /bin/bash
.DEFAULT_GOAL := help
ZOOD := $(HOME)/work/zoo/node/build/zood
LUX_RPC := http://127.0.0.1:9660
LIGHT_MNEMONIC := light light light light light light light light light light light energy
ZOO_VMID := 2n2njofjYvece8gZWCNnc1mqkcqfW6kbrhPRZPVzwxrSQrQ4gE
ZOO_CHAIN_ID := 200200
LOCAL_DIR := /tmp/zoo-localnet
GREEN := \033[32m
BOLD := \033[1m
RESET := \033[0m
RED := \033[31m
.PHONY: up
up: build ## Start zoo subnet on local lux network
@echo "$(BOLD)Checking lux localnet...$(RESET)"
@curl -s $(LUX_RPC)/ext/health -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"health.health"}' >/dev/null 2>&1 || \
(echo "$(RED)Lux localnet not running. Start it first: cd ~/work/lux/universe && make up$(RESET)" && exit 1)
@echo "$(GREEN)Lux localnet is running$(RESET)"
@echo "$(BOLD)Zoo subnet ready — zood VM plugin loaded by luxd$(RESET)"
@echo ""
@echo " Zoo EVM VM ID: $(ZOO_VMID)"
@echo " Chain ID: $(ZOO_CHAIN_ID)"
@echo " RPC: $(LUX_RPC)/ext/bc/<zoo-chain-id>/rpc"
@echo ""
@echo " To create a Zoo subnet chain:"
@echo " MNEMONIC=\"$(LIGHT_MNEMONIC)\" lux chain deploy zoo --local"
.PHONY: down
down: ## Stop zoo (handled by lux universe)
@echo "Zoo runs as a VM plugin inside luxd — stop luxd with:"
@echo " cd ~/work/lux/universe && make down"
.PHONY: build
build: ## Build zood binary
@if [ ! -f $(ZOOD) ]; then \
echo "$(BOLD)Building zood...$(RESET)" && \
cd $(HOME)/work/zoo/node && \
GONOSUMCHECK="*" GONOSUMDB="*" GOPRIVATE="*" go build -o build/zood . 2>/dev/null && \
echo "$(GREEN)zood built$(RESET)"; \
else echo "$(GREEN)zood already built$(RESET)"; fi
.PHONY: status
status: ## Check zoo subnet status
@echo "$(BOLD)Zoo Subnet Status$(RESET)"
@curl -s $(LUX_RPC)/ext/info -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"info.getVMs"}' 2>/dev/null | \
python3 -c "import sys,json; vms=json.load(sys.stdin).get('result',{}).get('vms',{}); print(' Zoo EVM registered:', '$(ZOO_VMID)' in str(vms))" 2>/dev/null || \
echo " $(RED)Cannot reach lux localnet$(RESET)"
.PHONY: help
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'