Skip to main content
5 человек
в команде
5 месяцев
в работе
Спроектировали и разработали совместно с IOHK децентрализованное приложение на платформе Plutus. Созданный DApp — это один из первых NFT-маркетплейсов на Cardano
Узнать больше

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

stair

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

Партнёрство с 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, а им как раз владеют наши фронтенд-разработчики. А ещё нас стали чаще приглашать в качестве экспертов в СМИ и на различные профильные мероприятия.

article-logo
polymarket_article
горячее
Что такое Polymarket и как работает рынок предсказаний?

Павел Найданов

Solidity разработчик

Статьи

web3
business
package_solutions
новое
tapalki
новое
uma_protocol
новое
AdsGram
выбор редакции
Способ монетизировать игры в Telegram

Алексей Федин

Исполнительный директор Magnetto.pro

Статьи

web3
mobile
TON
hamster_tma
выбор редакции
Как хомяк, но для трафика: привлекаем аудиторию тапалкой

Николай Бордуненко

бизнес-аналитик MetaLamp

Статьи

web3
dApps
mobile
dao
Что такое DAO?

Павел Найданов

Solidity разработчик

Статьи

education
web3
ethereum_gas
scroll
Как работает блокчейн Scroll: технический обзор

Алексей Куценко

Solidity разработчик

Статьи

ethereum
web3
dApps
L2
nft_stacking
выбор редакции
Понимание стейкинга NFT: механизмы и преимущества

Павел Найданов

Solidity разработчик

Статьи

ethereum
web3
dApps
legendary_play
выбор редакции
payments
sharding
выбор редакции
ton
выбор редакции
bottle_wine
выбор редакции
launchpad
twa
выбор редакции
buildings
выбор редакции
anonymus
Zero-Knowledge Proofs: важный тренд в блокчейне на 2024 год

Евгений Биктимиров

Венчурный аналитик

Статьи

ethereum
web3
dApps
cpay
AA zksync
zero knowledge proofs
stock market chart
planets
fundraising
cto
wallet
tokens
выбор редакции
Как токенизировать реальные активы: пошаговое руководство

Елизавета Черная

Редактор Бренд-медиа

Статьи

web3
business
startup
rocket computer
выбор редакции
Как создать дизайн для MVP за 7 дней

Юлия Черепанова

Head of Design Office

Статьи

startup
MVP
design
nft
AI
crypto wallets
выбор редакции
red space
выбор редакции
speed up development
myths
выбор редакции
launching
выбор редакции
Кого нанимать для успешного запуска MVP

Алексей Сухарев

Head of Sales Department

Статьи

business
startup
MVP
galaxy
magazine
spaceman
выбор редакции
coffee
investors
nft
Как мы создали первый NFT-маркетплейс на Cardano

Станислав Жданович

Haskell разработчик

Статьи

cardano
web3
nft
stair
выбор редакции
bridge
rocket
abstraction
Как мы нанимаем инженеров Plutus через собственную программу обучения

Светлана Дульцева

Супервизор программы обучения

Статьи

education
cardano
web3
mountains
salary
salary increase
app
developer with books
keyboard
abstract
blockchain