.PHONY: build test up down reset deploy logs logs-node1 logs-node2 logs-node3 \ status peer-ids rebuild docker-clean test-local # ── Сборка ─────────────────────────────────────────────────────────────────── build: go build -o bin/node$(EXE) ./cmd/node go build -o bin/client$(EXE) ./cmd/client go build -o bin/wallet$(EXE) ./cmd/wallet go build -o bin/peerid$(EXE) ./cmd/peerid test: go test ./... # ── Docker: запуск / остановка ─────────────────────────────────────────────── ## Собрать образ и запустить все три ноды up: docker compose up --build -d @printf "\n Explorer → http://localhost:8081\n" @printf " node2 → http://localhost:8082\n" @printf " node3 → http://localhost:8083\n\n" @printf " Задеплоить контракты: make deploy\n\n" ## Остановить ноды (данные сохраняются) down: docker compose down ## Полный сброс: остановить + удалить тома с данными reset: docker compose down -v @printf "\n Данные удалены. Запустите 'make up' для чистого старта.\n\n" ## Задеплоить 4 production-контракта deploy: docker compose --profile deploy run --rm deploy # ── Логи ───────────────────────────────────────────────────────────────────── logs: docker compose logs -f logs-node1: docker compose logs -f node1 logs-node2: docker compose logs -f node2 logs-node3: docker compose logs -f node3 # ── Статус ─────────────────────────────────────────────────────────────────── status: @printf "\n── Контейнеры ──────────────────────────────────────────\n" docker compose ps @printf "\n── Сети ────────────────────────────────────────────────\n" docker network ls | grep dchain || true @printf "\n── Backbone IP-адреса ──────────────────────────────────\n" @docker inspect -f '{{.Name}} {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' \ node1 node2 node3 2>/dev/null | grep 172.30 || true @printf "\n" # ── Peer IDs ───────────────────────────────────────────────────────────────── ## Показать peer ID и backbone multiaddr для всех нод peer-ids: build @printf "\n── node1 ────────────────────────────────────────────────\n" bin/peerid$(EXE) --key testdata/node1.json --ip 172.30.0.11 --port 4001 @printf "\n── node2 ────────────────────────────────────────────────\n" bin/peerid$(EXE) --key testdata/node2.json --ip 172.30.0.12 --port 4001 @printf "\n── node3 ────────────────────────────────────────────────\n" bin/peerid$(EXE) --key testdata/node3.json --ip 172.30.0.13 --port 4001 @printf "\n" # ── Docker: служебные ──────────────────────────────────────────────────────── rebuild: docker compose build --no-cache docker compose up -d docker-clean: docker compose down -v --rmi local # ── Локальный тест (одна нода) ──────────────────────────────────────────────── test-local: build @rm -rf /tmp/testchain MSYS_NO_PATHCONV=1 bin/node$(EXE) \ --genesis --db /tmp/testchain --key testdata/node1.json \ --listen /ip4/0.0.0.0/tcp/4001 & @sleep 8 && kill $$(pgrep -f "bin/node") 2>/dev/null || true @echo "--- chain info ---" bin/client$(EXE) info --db /tmp/testchain