Разработка децентрализованной сети вычислений под ключ

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Разработка децентрализованной сети вычислений под ключ
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

Направления блокчейн-разработки

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1251
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    956
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1188
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    929

Централизованные облака — AWS, GCP, Azure — контролируют 65% мирового рынка облачных вычислений. Три компании решают, кто получает доступ к инфраструктуре, по каким ценам и на каких условиях. Для большинства приложений это приемлемо. Для AI-инференса, рендеринга, научных вычислений и любой нагрузки, где важны цена, цензуростойкость или географическое распределение — уже нет. Децентрализованная сеть вычислений строит рынок между теми, у кого есть избыточные GPU/CPU, и теми, кому они нужны. Мы разрабатываем такие сети с полным циклом — от экономической модели до запуска mainnet. Получите консультацию по выбору механизма верификации уже сегодня.

Проблема в том, что построить децентрализованную сеть вычислений технически сложнее, чем кажется на первый взгляд. Нужно решить три фундаментальных задачи: верифицировать, что вычисление реально было выполнено правильно; защититься от нечестных провайдеров и клиентов; обеспечить производительность, сравнимую с централизованными аналогами. Свяжитесь с нами — мы бесплатно оценим ваш проект.

Как верифицировать вычисления без повторного запуска?

Провайдер утверждает, что запустил вашу задачу и получил результат X. Как контракт проверит это без того, чтобы самому пересчитать? Если контракт пересчитывает — вы платите двойную стоимость вычислений. Это и есть основная проблема верификации.

Три подхода и их компромиссы

Optimistic execution с challenge period. Результат принимается как верный, если в течение окна (обычно 7 дней) никто не оспорил. При оспаривании — верификационная игра: обе стороны по очереди сужают несогласие до одного шага вычисления, который верифицируется on-chain. Это подход Truebit, адаптированный вариант используется в Arbitrum для EVM споров.

Ключевые параметры: размер залога провайдера (должен превышать ожидаемую прибыль от мошенничества), длина challenge window (компромисс между безопасностью и скоростью), число верификаторов в игре. Слабое место: если клиент и провайдер в сговоре, или если challenge window выбрана неправильно для конкретного класса задач.

Trusted Execution Environment (TEE). Вычисление происходит в изолированном анклаве — Intel SGX, AMD SEV, ARM TrustZone. Аппаратный механизм attestation доказывает, что конкретный код выполнился в конкретном окружении без вмешательства оператора. Контракт верифицирует attestation quote on-chain.

interface ITEEVerifier {
    // mrenclave — уникальный хэш кода в анклаве
    // report — подписанный Intel IAS отчёт
    function verifyAttestation(
        bytes32 mrenclave,
        bytes calldata report,
        bytes calldata signature
    ) external view returns (bool);
}
Как работает TEE attestation? Анклав генерирует подписанное свидетельство (quote), которое проверяется on-chain с помощью публичного ключа Intel. Если аттестация прошла, контракт уверен, что код выполнен в защищённой среде.

Используется в iExec (TEE tasks), Phala Network (Phat Contracts), Marlin Protocol. Слабые стороны: Intel SGX имел несколько серьёзных уязвимостей (Spectre/Meltdown variants, SGAxe), зависимость от производителя железа, сложность supply chain для верификации оборудования. TEE быстрее ZK в 10-50 раз по времени верификации, но уступает в уровне гарантий.

Cryptographic verification через ZK-proofs. Провайдер генерирует ZK-proof того, что он выполнил корректное вычисление над входными данными. Верификатор on-chain проверяет proof за O(1) независимо от сложности вычисления. Это самый сильный подход с точки зрения гарантий, но самый дорогой с точки зрения overhead на генерацию proof.

Для простых детерминированных задач (хэширование, базовая арифметика) — Groth16 или PLONK через circom. Для сложных вычислений — zkVM (RISC Zero, SP1): клиент пишет программу на Rust, zkVM генерирует proof выполнения для любой Rust-программы. Стоимость proof generation на RISC Zero: от $0.01 до $1 в зависимости от сложности задачи, время 10–300 секунд.

На практике большинство протоколов последних лет используют гибрид: TEE для первичной верификации (быстро, дёшево) + optimistic challenge для случаев, когда TEE attestation недоступен или скомпрометирован. Такой подход даёт снижение стоимости на 30-50% по сравнению с чистой ZK-схемой без потери уровня безопасности.

Метод Скорость Безопасность Стоимость overhead
Optimistic Средняя Средняя Низкая
TEE Высокая Средняя Низкая
ZK Низкая Высокая Высокая

Детерминизм вычислений

Для любого метода верификации вычисление должно быть детерминированным: один и тот же код с одними и теми же входными данными должен давать точно одинаковый результат на любом железе. Это не тривиальное требование.

Проблемы: floating-point операции дают разные результаты на разных CPU архитектурах и компиляторах; GPU вычисления недетерминированы по умолчанию из-за параллелизма; многопоточность с race conditions; зависимость от системного времени или случайности.

Решения: вычисления в WebAssembly (детерминирован по спецификации); использование integer arithmetic вместо float; детерминированные ML фреймворки (с фиксированными seed и отключённым недетерминированным параллелизмом); изоляция в контейнере с фиксированным окружением (Docker image pinning по SHA256).

Когда нужна репликация вычислений?

Для задач, где цена ошибки высока, можно запустить одно вычисление на N провайдерах и верифицировать результаты через consensus. При 3 провайдерах с результатом большинства — вероятность успешной атаки резко падает (нужен сговор 2 из 3).

Схема commitment-reveal

Провайдеры сначала публикуют хэш результата (commitment), затем после того, как все задепонировали — раскрывают результат. Это предотвращает копирование ответа друг у друга.

// Фаза 1: Commit
function submitResultHash(bytes32 taskId, bytes32 resultHash) external {
    require(isTaskProvider(taskId, msg.sender), "Not assigned provider");
    require(task.status == TaskStatus.Active, "Wrong status");
    resultCommitments[taskId][msg.sender] = resultHash;
    emit ResultCommitted(taskId, msg.sender);
}

// Фаза 2: Reveal
function revealResult(bytes32 taskId, bytes calldata result) external {
    bytes32 commitment = resultCommitments[taskId][msg.sender];
    require(keccak256(result) == commitment, "Hash mismatch");
    revealedResults[taskId][msg.sender] = result;
    _tryFinalize(taskId);
}

Экономический слой

Протокол токен-модели для децентрализованной сети вычислений обычно включает:

Параметр Типичный диапазон Назначение
Stake провайдера 5–100 RLC / USDC Залог против мошенничества
Slash при нарушении 10–50% stake Deterrence
Протокольная комиссия 1–5% Treasury
Scheduler fee 1–3% Matching layer

Важный нюанс: токен должен использоваться для оплаты вычислений (utility), а не только для governance. Чисто governance токены в compute рынках не создают достаточного demand-side давления.

Рабочий процесс задачи end-to-end

  1. Клиент загружает Docker image приложения на IPFS, получает content hash.
  2. Клиент создаёт задачу on-chain: app hash, dataset hash, параметры, депозит.
  3. Matching layer или scheduler назначает провайдера(ов).
  4. Провайдер скачивает image + данные, выполняет в TEE или стандартном контейнере, генерирует результат + attestation/proof.
  5. Провайдер публикует commitment on-chain.
  6. После reveal и consensus — результат финализируется, провайдер получает оплату.
  7. Клиент скачивает результат из IPFS.

Сетевые компоненты вне блокчейна

Worker node — основной компонент провайдера. Daemon, который мониторит блокчейн на новые задачи, скачивает и выполняет workload, публикует результаты. Стек: Go или Rust, Docker SDK для изоляции контейнеров, SGX SDK для TEE задач.

Scheduler / Core — для протоколов с off-chain matching. Отвечает за категоризацию задач, выбор провайдеров по stake и репутации, мониторинг timeout. Может быть децентрализован через BFT consensus (набор scheduler нод).

Result storage — IPFS для хранения результатов с пиннингом. Ссылка на IPFS хранится on-chain. Альтернатива для конфиденциальных результатов: зашифрованный результат в IPFS, ключ расшифровки передаётся через TLS в TEE.

Что входит в разработку под ключ

Мы предлагаем полный цикл: от whiteboard до аудита. Среди ключевых deliverable — документация архитектуры, смарт-контракты с исходниками, worker node с интеграцией Docker и TEE, тестовый стенд с реальными провайдерами, обучение команды заказчика и пост-запусковая поддержка. При необходимости пишем формальные спецификации и проводим формальную верификацию критических модулей.

Разработка и запуск

Фаза проектирования (2–3 недели). Выбор механизма верификации (TEE / optimistic / ZK), определение категорий задач, token economics. Это решения, которые нельзя исправить после деплоя.

Смарт-контракты (6–10 недель). TaskRegistry, WorkerRegistry, Escrow, Consensus модуль, Voucher система (для спонсирования задач). Foundry для тестирования, включая fork-тесты с реальными TEE attestation данными.

Worker node (4–8 недель). Go/Rust daemon с Docker интеграцией. Если TEE — интеграция с Intel DCAP attestation API. Критично: node должен корректно обрабатывать timeout, зависшие задачи, network partitions.

Тестирование с реальным железом (4–6 недель). Testnet с реальными worker нодами, нагрузочное тестирование matching layer, проверка слэшинга на dishonest worker.

Аудит (4–8 недель). Акцент на: корректность consensus механизма при Byzantine провайдерах, возможность манипуляции challenge game, атаки через flash loans на stake механизм.

Полный цикл от проектирования до mainnet launch для MVP протокола (TEE-based, без ZK) — 6–10 месяцев командой из 3–5 инженеров. Сроки зависят от сложности и необходимости ZK-или-гибридной верификации. Получите консультацию — оценим ваш проект и предложим roadmap.

Развертывание блокчейн-инфраструктуры: ноды, RPC, индексация

Subgraph упал в 3:47 ночи. К утру пользователи видели устаревшие балансы, транзакции «висели» в UI, поддержка получила 47 тикетов за час. Причина: handler в subgraph упал на транзакции с нестандартным event log — и весь индекс встал. Мы сталкивались с такими ситуациями десятки раз. Наш опыт показывает: блокчейн-инфраструктура не прощает gaps в observability. Гарантировать uptime без многослойного мониторинга и fault‑tolerant архитектуры невозможно. За 8 лет работы с Ethereum, Polygon и Solana мы выработали подход, который позволяет предсказуемо развёртывать инфраструктуру любого масштаба — от одиночной ноды до мультичейн‑сетки с десятками субграфов.

Архитектура RPC-слоя

Каждое взаимодействие dApp с блокчейном идёт через RPC — JSON‑RPC API, которую предоставляет нода. Три варианта:

Managed providers — Alchemy, QuickNode, Infura, Ankr. Минимальные операционные расходы, SLA, встроенный мониторинг. Ограничения: rate limits (Alchemy Free: 300 RU/sec), vendor lock, потенциальные downtime при инцидентах провайдера. Для большинства проектов — правильный выбор на старте.

Собственные ноды — полный контроль, нет rate limits, нет зависимости от третьих сторон. Стоимость: архивная нода Ethereum занимает 2.5–3TB SSD, требует мощный сервер и DevOps‑поддержку. Sync с нуля на Ethereum через Geth/Nethermind — 3–7 дней. Оправдано при высокой нагрузке или требованиях к latency.

Гибрид — собственная нода как primary, managed provider как fallback. Стандарт для протоколов с TVL от $10M. Правильная балансировка может сократить расходы на 20–30% по сравнению с чисто managed‑схемой. При нагрузке 10 млн запросов в месяц гибрид экономит от $1500 до $3000.

Провайдер Сильная сторона Ограничение
Alchemy Supernode, Enhanced APIs, webhooks Дорогой на high-volume
QuickNode Низкая latency, multi-chain Дороже Alchemy на базовом плане
Infura Историческая надёжность Rate limits на бесплатном, один крупный инцидент остановил пол‑DeFi
Ankr Дешёвый, 40+ чейнов Менее стабильный

Как настроить RPC-слой без единой точки отказа?

Минимум два провайдера, DNS round‑robin с health check каждые 5 секунд, автоматическое переключение на fallback при latency >500 мс. На практике это даёт 99.99% доступности при любом сбое провайдера. Для протоколов с TVL от $10M мы рекомендуем собственный HA‑прокси (nginx или Envoy) перед двумя managed‑провайдерами.

Почему гибридная RPC-схема выгоднее чисто managed?

При 50 млн запросов в месяц Alchemy стоит $2000+, QuickNode — $2500+, собственная нода — $400–600 за хостинг + DevOps. Гибрид: primary — своя нода ($500), fallback — QuickNode ($500), итого ~$1000. Экономия 50–60% без потери SLA.

Клиенты нод Ethereum

Execution clients: Geth (наиболее используемый), Nethermind (C#, быстрая sync), Besu (Java, enterprise), Erigon (самый быстрый sync, архивный режим эффективен по диску — ~2TB вместо 3TB).

Consensus clients (post‑Merge): Lighthouse (Rust), Prysm (Go), Teku (Java), Nimbus (Nim). Каждая нода после The Merge требует пары execution + consensus client.

Для DevOps: eth‑docker — Docker Compose конфигурации для всех комбинаций клиентов. Настройка мониторинга через Grafana + Prometheus — обязательна, стандартный дашборд есть в репозитории каждого клиента.

The Graph: индексация событий

The Graph Protocol — decentralized indexing. Subgraph описывает какие события с каких контрактов индексировать и как трансформировать их в GraphQL схему.

Структура subgraph:

  • subgraph.yaml — манифест: адреса контрактов, startBlock, события которые обрабатываются
  • schema.graphql — GraphQL схема entities
  • src/mapping.ts — AssemblyScript обработчики событий
dataSources:
  - kind: ethereum
    name: UniswapV3Pool
    network: mainnet
    source:
      address: "0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640"
      abi: UniswapV3Pool
      startBlock: 12370624
    mapping:
      eventHandlers:
        - event: Swap(indexed address,indexed address,int256,int256,uint160,uint128,int24)
          handler: handleSwap

AssemblyScript handlers — не TypeScript. Нет nullable types, нет closures, нет многих стандартных API. Ошибка в handler останавливает индексацию subgraph-а на той транзакции. Важно: добавлять try‑catch на операции которые могут падать (например store.get() для entity которая может не существовать).

Как избежать остановки индексации субграфа?

Лог файлы Graph Node мониторятся в реальном времени, при hasIndexingErrors = true срабатывает алерт и автоматический рестарт ноды (через systemd или Kubernetes). Типичный downtime при ошибке — 150–300 секунд до восстановления. Дополнительно: для production ставим watchdog, который перезапускает Graph Node если subgraph lag превышает 50 блоков.

Выбор между Hosted Service и Decentralized Network

Graph Hosted Service (бесплатный, централизованный) deprecated в пользу Subgraph Studio + Graph Network. Для продакшн: деплой на Graph Network с GRT curation signal — субграф получает indexers пропорционально curation.

Альтернативы The Graph: Ponder (TypeScript, self-hosted, проще дебагать), Envio (ultra‑fast indexer, поддерживает EVM + non‑EVM), Subsquid (TypeScript, своя сеть), Moralis Streams (managed, webhook‑based). Наш опыт показывает: для высоконагруженных проектов с уникальной логикой эффективнее Ponder или Envio — они дают полный контроль над процессом и не требуют токеномики GRT.

Webhooks и real-time нотификации

Alchemy Webhooks и QuickNode Streams позволяют получать события в реальном времени через HTTP webhook или WebSocket. Для мониторинга адресов, новых транзакций, минтов — это быстрее чем polling RPC.

Tenderly — платформа для мониторинга и алертов. Можно настроить alert на конкретный event из контракта, на изменение баланса, на вызов функции с определёнными параметрами. Симуляция транзакций через Tenderly API — бесценно для debugging.

Мониторинг и observability

Минимальный стек мониторинга для протокола:

On‑chain: OpenZeppelin Defender Sentinel — watches contract events, вызывает webhook или Autotask при срабатывании условий. Forta Network — community‑maintained боты детектируют аномалии (большие withdrawals, flash loans, governance attacks).

Infrastructure: Grafana + Prometheus для нод, Datadog или Grafana Cloud для managed метрик. Alert на: нода отстала на 10+ блоков, RPC latency > 500ms, subgraph lag > 100 блоков.

Uptime: Better Uptime или PagerDuty на RPC endpoint и subgraph health endpoint (The Graph предоставляет _meta { hasIndexingErrors, block { number } }).

Почему мониторинг без Tenderly недостаточен?

Tenderly даёт симуляцию транзакций и детальные трейсы — это критично для отладки ошибок в субграфах и смарт‑контрактах. Forta же фокусируется на аномалиях в сети, а не на вашей инфраструктуре. Комбинация Tenderly + собственный дашборд Grafana покрывает 90% сценариев инцидентов.

Мультичейн инфраструктура

Протокол на 5 чейнах = 5 отдельных RPC endpoints, 5 subgraphs, 5 мониторинг‑конфигов. Это управляемо, но нужна автоматизация деплоя.

Для subgraph multi‑network деплой: graph deploy --network mainnet, graph deploy --network arbitrum-one и т.д. с единой кодовой базой и network‑specific адресами в отдельных файлах конфигурации.

Chainlink CCIP и LayerZero для cross‑chain messaging требуют мониторинга состояния обоих чейнов и транзакций на intermediate relayers. Реорг на source chain при уже подтверждённом минте на target chain — классическая проблема мостов. Решение: ждать finality (на Ethereum ~15 минут после Merge для экономической finality) перед подтверждением на target chain.

Процесс настройки инфраструктуры

  1. Аудит текущего стека — определяем чейны, объём запросов, требования к latency и доступности.
  2. Проектирование архитектуры — выбор провайдеров, балансировка, redundancy.
  3. Разработка subgraph — манифест → схема → handlers → тестирование на локальной Graph Node → деплой на testnet → mainnet.
  4. Конфигурация мониторинга — Tenderly alerts, Grafana дашборд, PagerDuty интеграция.
  5. Документация и runbook — что делать при: subgraph fell behind, RPC downtime, нода desync.
  6. Передача в эксплуатацию — обучение команды, передача доступов, поддержка первый месяц.

Что входит в работу

  • Развёртывание managed или self‑hosted нод Ethereum, Polygon, BNB Chain
  • Настройка RPC‑слоя с primary/fallback и load balancing
  • Разработка и деплой subgraph под ваш протокол
  • Подключение мониторинга (Tenderly, Grafana, алерты)
  • Создание runbook и документации по эксплуатации
  • Обучение команды (до 4 часов онлайн)
  • Поддержка в течение 30 дней после сдачи

Сроки

Работа Срок
Настройка RPC и базового мониторинга 1–2 недели
Subgraph для одного протокола 2–4 недели
Self-hosted нода с мониторингом 2–3 недели
Полная инфраструктура (multi-chain, мониторинг, runbooks) 6–10 недель

Все проекты ведутся в репозитории на GitHub/GitLab с CI/CD, код конфигураций остаётся у вас. Закажите развертывание инфраструктуры — расскажем, как сократить расходы на 20–30% без потери надёжности. JSON‑RPC спецификация, документация The Graph. Получите консультацию — покажем, как мы развёртывали инфраструктуру для протокола с TVL $50M+ на Ethereum и Arbitrum.

Свяжитесь с нами.