---
title: "Как Metalamp создаёт приложения для экосистемы Cardano"
date: 2023-11-01
description: "Как создаются действительно работающие приложения на Cardano? Делимся своим опытом создания продуктов на блокчейне."
author: "Роман Штых"
intro_image: "https://metalamp.ru/images/stair.png"
fulltext_image: "https://metalamp.ru/images/stair.png"
categories:
  - name: "Magazine"
    url: "https://metalamp.ru/magazine.md"
tags:
  - name: "cardano"
    url: "https://metalamp.ru/tags/cardano.md"
  - name: "web3"
    url: "https://metalamp.ru/tags/web3.md"
  - name: "dApps"
    url: "https://metalamp.ru/tags/dapps.md"
---

# Как Metalamp создаёт приложения для экосистемы Cardano

![Как Metalamp создаёт приложения для экосистемы Cardano](https://metalamp.ru/images/stair.png)

Экосистема ADA продолжает расширяться и количество проектов превысило 1000. Для каких разработок используется платформа? Какие проблемы они помогают решить? Как создаются действительно работающие приложения на Cardano? Компания [Metalamp](https://metalamp.ru/) делится своим опытом создания продуктов на блокчейне.

 
## Партнёрство с Cardano

 Наша компания возникла в 2014 году из студенческого проекта. 

 Поначалу мы не могли себе позволить нанимать новых квалифицированных сотрудников, но энтузиазма и желания развиваться было в избытке, поэтому мы решили растить разработчиков своими силами. Мы запустили бесплатную [образовательную программу](https://vc.ru/hr/304764-kak-my-sdelali-besplatnuyu-programmu-obucheniya-veb-razrabotke-i-trudoustroili-60-vypusknikov) по двум направлениям — backend и frontend — и обучали всех желающих языкам Haskell и Javascript; тех, кто успешно сдавал теорию и практику в конце обучения, мы принимали в штат. Сегодня в Metalamp трудится 70 специалистов, из которых больше половины — выпускники нашей программы обучения. 

 Именно языку Haskell мы обязаны партнёрством с Cardano. Знание Haskell привело нас на рынок блокчейна, откуда шло большинство запросов на разработку, — это связано и с популярностью криптовалют, и [с растущим количеством](https://www.sciencedirect.com/science/article/pii/S0740624X21000617#fn0010) правительственных инициатив, а также с распространением dApps для платежей, смарт-контрактов, отслеживания поставок, цифровых удостоверений и т.п. В итоге, на третьем году работы с Haskell, мы получили запрос от самих [IOG](https://apply.workable.com/io-global/): они пригласили нас поучаствовать в тестировании смарт-контрактов Cardano. Так началось наше сотрудничество. Мы очень гордимся тем, что вошли в пятёрку компаний, кому первым в мире доверили разрабатывать юзкейсы для [Plutus](https://docs.cardano.org/plutus/learn-about-plutus).

 Для участия в коллаборации с Cardano нам потребовалось изучить Plutus Core, — язык смарт-контрактов Cardano, использующий кодовую базу Haskell. Порог входа в Plutus достаточно высок, но нам на руку сыграли развитая культура самообразования в компании, предварительное знание Haskell и опыт программирования в функциональном стиле, — благодаря им у нас не возникло проблем с интеграцией. 

 ![](https://metalamp.ru/images/6336cd85244e02844b1e79d9_6315923fb91c27d9bde849d5_3QU72HUNvUH6CutjH9oG9eh4QDdjLcInNZRxhEYqMPgQ9tcM1eKN_hs-T8CrWnOMwbGDZMuOZWFhSTdetZCIEEWSqmSwjn3UAp8No3xJpxRzI400RrI_qquveAytRCHDkUyuUTM8uJJLBdFUjVPGLYtSWkJN_c7kuXgz0.png)

 Размер мирового рынка блокчейнов [растёт](https://www.marketsandmarkets.com/Market-Reports/blockchain-technology-market-90100890.html); DeFi и смарт-контракты становятся всё популярнее, и платформы, обеспечивающие соответствующие решения, активно развиваются. Нам близка философия блокчейна, основанная на принципах доверия, открытости и децентрализации, и мы хотим развивать сотрудничество с экосистемой Cardano в длительной перспективе. Поэтому мы обучили языку Plutus Core всех наших Haskell-разработчиков. Ребята посмотрели курс лекций, которые разработали [IOG](https://apply.workable.com/io-global/) в рамках программы [Plutus Pioneer](https://docs.cardano.org/cardano-testnet/pioneer-programs/plutus-pioneers/) и пообщались с основателями и экспертами по языку. Вдобавок мы сами разработали практические задания, для которых наши бэкендеры искали и с нуля писали решения: например, реализация NFT-маркетплейса, создание Faucet-приложения и т.п. Теперь каждый наш разработчик, включая новичков-джунов, может взять в работу Cardano-проект.

 Такова предыстория наших взаимоотношений с Cardano. Теперь мы хотим рассказать о нескольких наших проектах на этом блокчейне.

 
## Наши проекты на Cardano

 ### Тестирование смарт-контрактов Plutus

 В 2021 мы проверяли, как смарт-контракты Plutus ведут себя в реальных проектах. Тесно сотрудничая с внутренней командой IOG, наши разработчики помогали находить ошибки и участвовали в брейнштормах на тему внесения улучшений. 

 В частности, мы тестировали хардфорк Alonzo Purple перед его развёртыванием в основной сети. Тестирование позволило увидеть, в каком виде хранятся [eUTXO](https://docs.cardano.org/plutus/eutxo-explainer), как их использовать в транзакции и как выполнять валидацию.

 На момент нашего участия у IOG не было тестовой сети, поддерживающей смарт-контракты, а также документации, позволяющей разобраться в некоторых вещах. Мы работали с симуляцией. Когда появилась тестовая сеть, оказалось, что она не поддерживает многие фичи, — например, PAB с кошельками, конечные автоматы и т. д. И код, который мы успешно запускали в симуляции, не всегда работал в реальной сети. В специальном сообществе в Discord мы постоянно общались с разработчиками Plutus и другими участниками программы тестирования контрактов, обсуждая способы исправления возникших ошибок. Основная внутренняя команда IOG оказала нам большую поддержку; в частности, Ларс Брюньес, – директор по образованию, – был очень отзывчив и полезен (привет, [Ларс](https://twitter.com/larsbrunjes)!).

 Порой ни у кого не было готовых предложений или советов, и нам приходилось заглядывать в исходный код Plutus и разбираться самим. Здесь нам помогла фундаментальная подготовка — полезный подход в любой области, а в блокчейне — и подавно, ведь практически невозможно написать смарт-контракты, не владея знаниями о том, что они собой представляют. А ещё в некоторых случаях нам помогало изучение существующих решений в Ethereum.

 
### Проектирование NFT-маркетплейса

 Результатом участия в программе тестирования платформы Plutus и опробования протокола IPFS стала [первая торговая площадка NFT](https://metalamp.ru/nft-marketplace) с аукционом на блокчейне Cardano. 

 NFT создаётся в два этапа: первый — загрузка связанных метаданных (это может быть любой файл, например изображение) в хранилище, второй — чеканка токена, который поступает в кошелёк создателя на блокчейне. Первый шаг требует адресуемости контента, — её обеспечивает протокол IPFS, который присваивает каждому файлу уникальный идентификатор (он представляет собой криптографический хеш). Основная цель смарт-контракта торговой площадки — обеспечить прямую связь между токеном в кошельке пользователя и этим идентификатором контента. Нам удалось этого достичь, и пользователи нашего маркетплейса могут:

 
- Создавать свои невзаимозаменяемые токены;
- Объединять карты (токены) в коллекции (пачки);
- Сделать аукцион;
- Установить цену и период аукциона;
- Загружать изображения, а также видео и аудио файлы.

 Платформа монетизируется за счёт комиссий от продажи NFT и аукционов.

 При запуске маркетплейса в тестовой сети в 2021 оказалось, что кошельки не интегрируются с PAB и подписывать транзакции невозможно. Поэтому проект так и не был запущен в тестнет.

 
### Разработка децентрализованного облачного хранилища 

 Компания [Iagon](https://iagon.com/) задалась целью создать для людей безопасный способ хранения и владения данными о своём здоровье. Благодаря прозрачности, открытости и неизменяемости блокчейн-технология — самая подходящая почва для воплощения замысла. Мы помогаем Iagon разрабатывать децентрализованную облачную систему на блокчейне Cardano для задействования неиспользуемых вычислительных мощности и ёмкостей хранения центров обработки данных, компьютеров и интеллектуальных устройств. По задумке создателей, каждый сможет предлагать свободные мощности на рынке, получая, таким образом пассивный доход. Эта децентрализованная облачная система составит конкуренцию централизованным гигантам-поставщикам облачных услуг (например, Google Cloud или Microsoft).

 Cardano [была выбрана](https://blog.iagon.com/cloud-computing-reinvented-a-quick-overview/) площадкой для развёртывания протокола как наиболее удачно сочетающая в себе возможности масштабирования, совместимости, экологичности, низкой стоимости транзакций и безопасности, основанной на научном подходе. Главная задача смарт-контракта в первом децентрализованном облачном хранилище этой сети — обеспечить прямую, без посредников, связь между покупателями свободных ёмкостей хранения и провайдерами storage или compute.

 На момент написания статьи мы столкнулись с проблемами при интеграции контракта с фреймворками от IOG, — такими, как PAF (Plutus Application Framework), — и работаем над их решением. Если простые контракты можно задеплоить без PAF, то более сложные и масштабируемые решения не имеют другого конкретного способа релиза контракта в открытый доступ. Это обратная сторона медали разработки Cardano, которая преимущественно фокусируется на поддержке ноды и ключевых элементов. 

 
### Создание стейблкоина для ADADAO

 [Adadao](https://www.adadao.org/) — это децентрализованный лендинг на блокчейне Cardano для займа стейблкоинов AUSD под залог ADA. AUSD можно использовать как обычную криптовалюту, оплачивая товары и услуги или отправляя другим пользователям.

 Займ можно взять при условии размещения [залога с запасом](https://www.investopedia.com/terms/o/overcollateralization.asp) (например, 1 AUSD за 1.5 ADA залога). Сверхзалог нужен для того, чтобы в случае падения стоимости ADA, AUSD оставался обеспеченным. Если займ становится недостаточно обеспеченным, система списывает долг с заёмщика, и обменивает его залог на AUSD используя [Stability pool](https://docs.liquity.org/faq/stability-pool-and-liquidations), распродажу на аукционе или перераспределение долга. При возвращении займа пользователь забирает залог, а полученные AUSD сжигаются. 

 На момент написания статьи (август 2022) мы уже разработали основную часть протокола. Сюда входят смарт-контракты для заёмщиков и вкладчиков в Stability pool, контракты для ликвидации, аукциона, а также модуль для управления протоколом и мониторинга курса ADA к AUSD, чтобы отслеживать и запускать ликвидации. В стадии ресёрча и разработки находятся: контракт по перераспределению ликвидированного долга, контракт для регуляции курса AUSD, контракт для держателей управляющих ADAO токенов и голосования.

 При запуске протокола в тестнет мы столкнулись с проблемой в работе chain-index — компонента PAB, — а также с тем, что большая часть кода, написанного для симуляции, не работает в тестнете. Отстуствие ораклов в мейннет не позволяет получить данные, необходимых для работы протокола, поэтому пока мы используем моковый оракл (фейковый оракл, который мы сами написали; мы меняем его данные вручную, когда проводим тесты). Было бы так же хорошо иметь альтернативные стейблкоины в мейннет — в аукционах или в качестве альтернативной валюты для залога.

 
## Плюсы и минусы разработки проектов на Cardano

 Чаще всего нам заказывают разработку приложения смарт-контракта — серверной части приложения, которое взаимодействует с блокчейном. Это предполагает написание кода, который конструирует транзакции, и кода, который валидирует транзакции. Иногда запрос включает написание интерфейса приложения (фронтенд) для ручного тестирования или для продакшена. В некоторых случаях разработке предшествует период исследования, за время которого изначальная идея проекта превращается в конкретную концепцию архитектуры приложения и спецификацию имплементации.

 Cardano — перспективная технология для разработки безопасных смарт-контрактов благодаря высокой пропускной способности, низкой стоимости транзакций и экономии энергопотребления (Proof of Stake более экологичен, чем Proof of work). Нам также нравится в Cardano то, что: 

 
- Разработка на Haskell позволяет использовать удобную систему типов и безопасные абстракции фреймворка Plutus;
- Сообщество Cardano отличается отзывчивостью, и действует согласно принципам свободной разработки (open source).

 Минусы разработки на Cardano, которые мы выделяем на сегодняшний день:

 
- Фреймворк Plutus недоработан. Пользователи испытывают API, разработчики дают обратную связь, исправляют ошибки и делают фреймворк удобнее;
- Всё ещё [не работает PAB](https://plutus-apps.readthedocs.io/en/latest/plutus/explanations/pab.html) в режиме браузерного кошелька. Работа с браузерными кошельками необходима для любого DeFi приложения. Необходимо дополнительно исследовать временные решения, с помощью которых можно  запустить приложение для широкого круга пользователей;
- Из-за лимита на размер транзакции (16 КB) приходится специально переделывать приложение. Так же есть лимиты на количество шагов вычисления (CPU) и оперативной памяти (RAM), потребляемых скриптом, из-за чего приходится оптимизировать код.

 После участия в партнёрской программе Cardano наши ИТ-инженеры погрузились в конкретные области разработки программного обеспечения на блокчейне, став первыми разработчиками, которым удалось написать смарт-контракты на Plutus. В результате этот опыт принёс нам новые знания, новых клиентов и новые проекты не только на Cardano, но и на Ethereum. Последнее связано с тем, что язык Ethereum, Solidity, похож на JS, а им как раз владеют наши фронтенд-разработчики. А ещё нас стали чаще приглашать в качестве экспертов в СМИ и на различные профильные мероприятия.

 ![article-logo](https://metalamp.ru/images/article/logo.svg) 
## Ещё статьи по этой теме


## Custom Fields

**reading time:** 8

**Article type:** articles

**Article description:** Экосистема ADA продолжает расширяться и количество проектов превысило 1000. Для каких разработок используется платформа? Какие проблемы они помогают решить? Как создаются действительно работающие приложения на Cardano? Делимся своим опытом создания продуктов на блокчейне.

**Editor's choice:** editors_choice

**Author (copy):** Роман Штых

