# Quickstart Три пути в зависимости от того, что вам нужно. ## Путь 1: локальная single-node за 5 минут Самый быстрый способ потрогать блокчейн — одна нода в Docker, без TLS, без федерации, с HTTP-API на `localhost:8080`. ```bash git clone https://git.vsecoder.vodka/vsecoder/dchain.git cd dchain # 1. Собираем образ docker build -t dchain-node-slim -f deploy/prod/Dockerfile.slim . # 2. Генерим ключ ноды (один раз) mkdir -p keys docker run --rm --entrypoint /usr/local/bin/client \ -v "$PWD/keys:/out" dchain-node-slim \ keygen --out /out/node.json # 3. Запускаем как genesis (блок 0 = эта нода — единственный валидатор) docker run -d --name dchain --restart unless-stopped \ -p 4001:4001 -p 8080:8080 \ -v dchain_data:/data \ -v "$PWD/keys:/keys:ro" \ -e DCHAIN_GENESIS=true \ -e DCHAIN_ANNOUNCE=/ip4/127.0.0.1/tcp/4001 \ dchain-node-slim \ --db=/data/chain --mailbox-db=/data/mailbox --key=/keys/node.json \ --relay-key=/data/relay.json --listen=/ip4/0.0.0.0/tcp/4001 --stats-addr=:8080 # 4. Проверяем curl -s http://localhost:8080/api/netstats curl -s http://localhost:8080/api/well-known-version open http://localhost:8080/ # Explorer UI open http://localhost:8080/swagger # Swagger UI ``` Блоки коммитятся каждые ~5 секунд. Что дальше: - Первая отправка tx — [cli/README.md](cli/README.md) - API endpoint reference — [api/README.md](api/README.md) - Выключить UI / Swagger — см. `DCHAIN_DISABLE_UI` / `DCHAIN_DISABLE_SWAGGER` в [deploy/single/README.md](../deploy/single/README.md) ## Путь 2: single-node с TLS и доменом Полный operator runbook — [deploy/single/README.md](../deploy/single/README.md). Там 6 готовых сценариев: публичная с UI, headless API, полностью приватная, genesis, joiner, auto-update от Gitea. ## Путь 3: multi-validator federation 3 ноды в PBFT quorum, Caddy LB с ip_hash для WS — [deploy/prod/README.md](../deploy/prod/README.md). ## Требования - Docker Desktop / Docker Engine + Compose v2 - 2 GB RAM (одна нода), 4 GB (3-node dev cluster) - 1 CPU Для разработки из исходников: - Go 1.24+ (модуль использует новые фичи) - TinyGo 0.30+ — только если собираете WASM-контракты вручную ## Проверка жизни ```bash # высота тип curl -s http://localhost:8080/api/netstats | jq '.total_blocks' # версия бинаря docker exec dchain /usr/local/bin/node --version # → dchain-node v0.5.0-dev (commit=abc1234 date=… dirty=false) # /api/well-known-version — те же данные + features[] curl -s http://localhost:8080/api/well-known-version | jq . # лист возможностей curl -s http://localhost:8080/api/well-known-version | jq '.features' ``` Если `total_blocks` растёт каждые ~5 сек — всё ОК.