Услуги
Экспертиза
Работы
О нас
Обучение
Блог
Свяжитесь со мной
Перейти ко всем статьям

Сделано на Cardano: как в компании Metalamp разрабатывают приложения для вселенной ADA

Article preview

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

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

Поначалу мы не могли себе позволить нанимать новых квалифицированных сотрудников, но энтузиазма и желания развиваться было в избытке, поэтому мы решили растить разработчиков своими силами. Мы запустили бесплатную образовательную программу по двум направлениям — backend и frontend — и обучали всех желающих языкам Haskell и Javascript; тех, кто успешно сдавал теорию и практику в конце обучения, мы принимали в штат. Сегодня в Metalamp трудится 70 специалистов, из которых больше половины — выпускники нашей программы обучения. 

Именно языку Haskell мы обязаны партнёрством с Cardano. Знание Haskell привело нас на рынок блокчейна, откуда шло большинство запросов на разработку, — это связано и с популярностью криптовалют, и с растущим количеством правительственных инициатив, а также с распространением dApps для платежей, смарт-контрактов, отслеживания поставок, цифровых удостоверений и т.п. В итоге, на третьем году работы с Haskell, мы получили запрос от самих IOG: они пригласили нас поучаствовать в тестировании смарт-контрактов Cardano. Так началось наше сотрудничество. Мы очень гордимся тем, что вошли в пятёрку компаний, кому первым в мире доверили разрабатывать юзкейсы для Plutus.

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

Размер мирового рынка блокчейнов растёт; DeFi и смарт-контракты становятся всё популярнее, и платформы, обеспечивающие соответствующие решения, активно развиваются. Нам близка философия блокчейна, основанная на принципах доверия, открытости и децентрализации, и мы хотим развивать сотрудничество с экосистемой Cardano в длительной перспективе. Поэтому мы обучили языку Plutus Core всех наших Haskell-разработчиков. Ребята посмотрели курс лекций, которые разработали IOG в рамках программы Plutus Pioneer и пообщались с основателями и экспертами по языку. Вдобавок мы сами разработали практические задания, для которых наши бэкендеры искали и с нуля писали решения: например, реализация NFT-маркетплейса, создание Faucet-приложения и т.п. Теперь каждый наш разработчик, включая новичков-джунов, может взять в работу Cardano-проект.

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

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

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

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

В частности, мы тестировали хардфорк Alonzo Purple перед его развёртыванием в основной сети. Тестирование позволило увидеть, в каком виде хранятся eUTXO, как их использовать в транзакции и как выполнять валидацию.

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

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

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

Результатом участия в программе тестирования платформы Plutus и опробования протокола IPFS стала первая торговая площадка NFT с аукционом на блокчейне Cardano. 

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

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

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

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

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

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

Cardano была выбрана площадкой для развёртывания протокола как наиболее удачно сочетающая в себе возможности масштабирования, совместимости, экологичности, низкой стоимости транзакций и безопасности, основанной на научном подходе. Главная задача смарт-контракта в первом децентрализованном облачном хранилище этой сети — обеспечить прямую, без посредников, связь между покупателями свободных ёмкостей хранения и провайдерами storage или compute.

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

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

Adadao — это децентрализованный лендинг на блокчейне Cardano для займа стейблкоинов AUSD под залог ADA. AUSD можно использовать как обычную криптовалюту, оплачивая товары и услуги или отправляя другим пользователям.

Займ можно взять при условии размещения залога с запасом (например, 1 AUSD за 1.5 ADA залога). Сверхзалог нужен для того, чтобы в случае падения стоимости ADA, AUSD оставался обеспеченным. Если займ становится недостаточно обеспеченным, система списывает долг с заёмщика, и обменивает его залог на AUSD используя Stability pool, распродажу на аукционе или перераспределение долга. При возвращении займа пользователь забирает залог, а полученные 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 в режиме браузерного кошелька. Работа с браузерными кошельками необходима для любого DeFi приложения. Необходимо дополнительно исследовать временные решения, с помощью которых можно  запустить приложение для широкого круга пользователей;
  • Из-за лимита на размер транзакции (16 КB) приходится специально переделывать приложение. Так же есть лимиты на количество шагов вычисления (CPU) и оперативной памяти (RAM), потребляемых скриптом, из-за чего приходится оптимизировать код.

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

Скопировано в буфер обмена
Нажимая на кнопку, вы соглашаетесь с политикой конфиденциальности
Спасибо, что написали нам! Выходим на связь в будни с 10:00 до 18:00 Мск. Постараемся ответить побыстрее 🐝
Супер, жду

Ваш браузер устарел :(

Вы открыли наш сайт в браузере IE, из-за этого некоторые элементы сайта могут работать некорректно. Чтобы вам было приятно пользоваться нашим сайтом, рекомендуем открыть его в другом браузере:

Что вас интересует?

НастроитьОтклонитьПринять