Мы интегрируем Akash Network в вашу инфраструктуру, чтобы размещать AI-инференс (LLM, Stable Diffusion), blockchain-ноды (Ethereum, Cosmos), бэкенды DApp и вычислительные задачи на децентрализованном облаке. Провайдеры предлагают GPU/CPU мощности, клиенты управляют workload через SDL-манифесты, оплата — в AKT. Ключевое преимущество: поддержка стандартных Docker-контейнеров без кастомного runtime, что упрощает перенос существующих приложений. Типичный сценарий: ML-команде нужно развернуть инференс-сервер для Llama 3 на GPU, но AWS или GCP обходятся дорого, а Kubernetes — избыточен. Akash позволяет разместить тот же Docker-образ на децентрализованных провайдерах с экономией до 50% и полным контролем через блокчейн.
Как устроен SDL-манифест и почему он критичен?
Stack Definition Language (SDL) — YAML-формат описания деплоя. Внешне напоминает docker-compose, но есть отличия, которые ломают деплой без подготовки. Вот пример манифеста для инференс-сервера:
--- version: "2.0" services: inference-api: image: your-org/llm-inference:sha256-abc123 expose: - port: 8080 as: 80 to: - global: true env: - MODEL_PATH=/models/llama-7b - MAX_CONCURRENT=4 resources: cpu: units: 4.0 memory: size: 16Gi storage: - size: 50Gi attributes: persistent: true class: beta3 profiles: compute: inference-api: resources: cpu: units: 4 memory: size: 16Gi gpu: units: 1 attributes: vendor: nvidia: - model: rtx3090 placement: dcloud: pricing: inference-api: denom: uakt amount: 1000 deployment: inference-api: dcloud: profile: inference-api count: 1 Akash Network Documentation подчёркивает важность атрибута persistent: true для хранения данных, переживающих рестарт. Без него контейнер стартует с чистого листа при каждом перемещении на другого провайдера. Используйте class: beta3 (NVMe) для высокого IOPS — это критично для ML-моделей и баз данных.
Подводные камни SDL:
- persistent storage — обязателен для данных, которые должны пережить рестарт контейнера. Без него — эфемерное хранилище.
- Класс storage —
beta3(NVMe) значительно быстрееbeta2(HDD). Разница в IOPS критична для БД и ML-моделей. - Пиннинг образа — используйте digest (sha256), а не тег
latest. Провайдеры кэшируют образы, иlatestможет отличаться. - GPU-ресурсы — доступны не у всех провайдеров. Указание конкретной модели (rtx3090, a100) сужает пул, но гарантирует совместимость.
- Отсутствие health check — деплой не получит IP, платить будете даже за неработающий сервис.
- Неправильный порт expose — приложение будет недоступно извне.
Как запрограммировать деплой на Akash?
Для автоматизации из вашего приложения используем Akash JavaScript SDK или прямые вызовы REST API (Cosmos-based). Ниже — пример создания деплоя через SDK:
import { Registry, DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; import { SigningStargateClient } from "@cosmjs/stargate"; import { MsgCreateDeployment } from "@akashnetwork/akash-api/akash/deployment/v1beta3"; const AKASH_RPC = "https://rpc.akashnet.net:443"; const AKASH_DENOM = "uakt"; async function createDeployment(sdlContent: string, walletMnemonic: string) { const wallet = await DirectSecp256k1HdWallet.fromMnemonic(walletMnemonic, { prefix: "akash", }); const [account] = await wallet.getAccounts(); const client = await SigningStargateClient.connectWithSigner(AKASH_RPC, wallet, { registry: new Registry(/* akash proto types */), }); const dseq = Math.floor(Date.now() / 1000); const msg = { typeUrl: "/akash.deployment.v1beta3.MsgCreateDeployment", value: MsgCreateDeployment.fromPartial({ id: { owner: account.address, dseq: BigInt(dseq), }, groups: parseSDLGroups(sdlContent), deposit: { denom: AKASH_DENOM, amount: "5000000" }, }), }; const result = await client.signAndBroadcast( account.address, [msg], { amount: [{ denom: AKASH_DENOM, amount: "20000" }], gas: "800000" } ); return { dseq, txHash: result.transactionHash }; } После создания деплоя запускается аукцион: провайдеры делают биды, клиент выбирает оптимальный и создаёт lease. Это асинхронный процесс — нужно подписаться на события блокчейна (WebSocket или polling).
async function watchBidsAndCreateLease(dseq: number, ownerAddress: string) { const bids = await pollBids(dseq, ownerAddress, { timeoutMs: 120000 }); if (bids.length === 0) throw new Error("No bids received"); const bestBid = bids.sort((a, b) => Number(a.bid.price.amount) - Number(b.bid.price.amount) )[0]; await createLease(bestBid.bid.bidId, wallet); await sendManifestToProvider(bestBid.bid.bidId.provider, dseq, sdlContent); } Как управлять жизненным циклом деплоя?
После создания lease деплой управляется через Provider Service API — HTTP-эндпоинты провайдера. Endpoint получается из on-chain данных провайдера.
async function getDeploymentStatus(providerAddress: string, dseq: number, owner: string) { const providerInfo = await queryProviderInfo(providerAddress); const providerHost = providerInfo.hostUri; const response = await fetch( `${providerHost}/lease/${owner}/${dseq}/1/1/status`, { headers: { Authorization: `Bearer ${await getProviderToken()}` } } ); return response.json(); } Для production мы интегрируем мониторинг через Prometheus/Grafana, поднимая sidecar-контейнер в том же деплое. Регулярно проверяем баланс депозита — при исчерпании деплой завершится без возможности восстановления. Чтобы избежать этого, настраиваем автоматическое пополнение.
Какие нагрузки лучше всего подходят для Akash?
| Тип нагрузки | Требования | Рекомендации |
|---|---|---|
| AI inference | GPU, persistent storage для моделей | Init-контейнер для скачивания, health check с таймаутом 5–10 минут |
| Blockchain ноды | 1+ TB persistent, UDP для P2P | Используйте snapshot bootstrap, указывайте proto: UDP в expose |
| Stateless бэкенды | Minimal resources | Horizontal scaling через count, внешний load balancer |
| Базы данных | Persistent, I/O | Только с репликацией; критичные данные — вне Akash |
Ценообразование и контроль расходов
Стоимость формируется в uAKT за блок (~6 секунд). Для оценки до деплоя используйте API Cloudmos: отправьте SDL и получите цену за блок. Типичная цена для ML-инференса с GPU RTX 3090 составляет несколько десятков центов в час, что даёт значительную экономию по сравнению с облачными провайдерами. Для production настраиваем автоматическое пополнение депозита — иначе деплой закрывается без предупреждения.
Сравнение ручного и программного деплоя
| Метод | Время настройки | Автоматизация | Масштабирование |
|---|---|---|---|
| Ручной (CLI) | 1–3 дня | Нет | Ручное |
| Программный (SDK) | 1–2 недели | Полная | По событиям |
| Полный (EVM-интеграция) | 3–5 недель | On-chain escrow | Через смарт-контракт |
Что входит в работу
- Анализ вашего приложения и подготовка SDL-манифеста
- Разработка скриптов деплоя (CLI или программная интеграция)
- Настройка мониторинга и алертинга
- Интеграция с EVM-контрактами (опционально)
- Документация и обучение вашей команды
- Поддержка после запуска
Опыт: более 5 лет в Web3, 30+ проектов по интеграции децентрализованных вычислений. Используем Foundry, Cosmos SDK и TypeScript.
Сроки интеграции
- Базовая (ручной SDL, CLI) — от 1 до 3 дней
- Программная (автоматический деплой, мониторинг) — от 1 до 2 недель
- Полная (EVM-контракт, escrow, lifecycle) — от 3 до 5 недель
Оценим ваш проект в течение 1–2 рабочих дней. Свяжитесь с нами — обсудим детали. Получите консультацию по интеграции Akash.







