Инженер Cardano Foundation изложил путь к версии v1.0 для фреймворка разработки elm-cardano
Матье Пизенберг представил нынешнее состояние elm-cardano во время Cardano Developers Office Hours, затронув вопросы построения транзакций, инструментов Elm, процесса онбординга разработчиков и пути к более стабильному выпуску фреймворка.
By SongMarketCap
На технической сессии Cardano Developers Office Hours была обсуждена дорога к версии v1.0 для elm-cardano — фреймворка разработки, который соединяет язык программирования Elm с разработкой приложений на платформе Cardano. Сессия была проведена Фабианом Борманом, а Матье Пизенберг, старший инженер-программист из Cardano Foundation, представил текущий статус проекта и проблемы с инструментами для разработчиков, которые он нацелен решить.
elm-cardano позиционируется как фреймворк для создания фронтенд-приложений Cardano и инструментов построения транзакций с использованием Elm, функционального языка программирования, известного своей строгой типизацией, быстрым откликом компилятора и стабильностью. Обсуждение охватывало инструменты построения транзакций в фреймворке, его подход, основанный на намерениях, локальное управление UTXO, выбор монет и более широкий вопрос о том, как разработчики Cardano могут использовать больше возможностей, уже доступных в реестре.
elm-cardano ориентируется на фронтенд Cardano и инструменты построения транзакций
Пизенберг объяснил, что первоначальная идея для сессии возникла из работы над интерактивным инструментом построения транзакций. Предложенный инструмент позволит разработчикам визуально создавать различные типы транзакций Cardano через веб-интерфейс, а не начинать сразу с написания полного приложения или использования командной строки.
Концепт инструмента позволяет выполнять действия, такие как отправление токенов, выпуск NFT, снятие наград за стекинг и взаимодействие с dApps. Он также дает возможность разработчикам совмещать несколько действий в одной транзакции Cardano, что является одной из практических возможностей модели eUTXO.
По словам Пизенберга, многим разработчикам нужен более быстрый способ тестирования конкретных паттернов транзакций. Вместо настройки полного JavaScript-приложения или использования рабочих процессов CLI для каждого эксперимента, предложенный интерфейс даст разработчикам более прямой способ конструирования, проверки и тестирования поведения транзакций.
Презентация также поместила elm-cardano в более широкий контекст экосистемы Elm. Elm был описан как стабильный функциональный язык для фронтенд-приложений, с акцентом на избежание ошибок выполнения, снижение риска зависимости и улучшение безопасности рефакторинга. Пизенберг отметил, что язык остается активным несмотря на медленный цикл выпусков, добавив, что его стабильность часто неправильно воспринимается как отсутствие активности.
Построение транзакций, основанное на намерениях, нацелено на более гибкое развитие Cardano
Основная часть сессии была посвящена тому, как elm-cardano подходит к построению транзакций. Пизенберг сравнил фреймворк с общими паттернами построения транзакций, особенно в библиотеках JavaScript, где разработчик обычно работает близко к представлению транзакции в реестре.
elm-cardano использует подход, основанный на намерениях. Вместо того чтобы требовать от разработчиков ручного описания каждого низкоуровневого компонента транзакции, разработчик описывает, что транзакция должна делать. Например, намерение может быть — отправить активы на адрес, использовать определенный набор UTXO, создать конкретный вывод или объединить несколько действий в одной транзакции.
Фреймворк затем обрабатывает эти намерения и выполняет технические требования, необходимые для создания действительной транзакции Cardano. Пизенберг описал это как способ отделить цель разработчика от низкоуровневой структуры финального тела транзакции.
Презентация также затронула тему локального состояния UTXO, которое позволяет инструменту построения транзакций работать с определенным набором выходов. Это может быть полезным для тестирования, так как инструмент не зависит напрямую от внешних сервисов, таких как API блокчейн-провайдеров. Вместо этого он работает с состоянием, предоставленным разработчиком.
Этот дизайн также поддерживает цепочечное построение транзакций. Как только транзакция локально завершена, полученное состояние может быть использовано для построения другой транзакции, не ожидая подтверждения в сети в процессе разработки. Это позволяет разработчикам тестировать последовательности транзакций в контролируемых условиях.
Пизенберг также обсуждал настройку выбора монет. elm-cardano включает стандартные подходы, такие как выбор «наибольшего первым», наряду с отдельным методом выбора, ориентированным на залог. Пример с залогом был представлен как практическая проблема, так как разработчики обычно не хотят, чтобы UTXO с высокой стоимостью выбирался в качестве залога для транзакции Plutus.
Путь к версии v1.0 включает более чистые API, тестирование и улучшение опыта разработчиков Cardano
На пути к версии v1.0 для elm-cardano ведется работа над основной структурой фреймворка и API для взаимодействия с разработчиками. Пизенберг отметил, что некоторые части проекта начались около трех лет назад, и что несколько ранних решений дизайна теперь нужно переработать перед более стабильным выпуском.
Одной из обсуждаемых областей был процесс с несколькими раундами, необходимый для создания определенных транзакций Cardano. Так как комиссии за транзакцию зависят от ее размера, а размер транзакции может измениться при добавлении UTXO, выкупателей или оценок скриптов Plutus, построение может требовать нескольких раундов, прежде чем будет достигнуто стабильное финальное состояние.
Пизенберг сказал, что текущая реализация вручную выполняет несколько раундов построения, тогда как будущая версия должна более чисто идентифицировать стабильную фиксированную точку. Это позволит фреймворку прекратить пересборку, как только состояние транзакции перестанет меняться.
Сессия также охватывала индексацию выкупателей и позиционирование выводов, которые важны для более сложных взаимодействий со смарт-контрактами Cardano. Некоторые скрипты зависят от конкретных индексов входов или выходов, и инструменты построения транзакций должны предоставлять достаточно контроля для разработчиков, чтобы они могли составлять сложные взаимодействия между несколькими протоколами.
Обсуждение расширилось на тему опыта разработчиков Cardano в целом. Пизенберг отметил, что многие возможности Cardano все еще недостаточно активно используются dApps и инструментами. Он также призвал разработчиков, которые создают протоколы, вносить исправления и улучшения обратно в библиотеки, которые они используют, а не решать проблемы только внутри своих приложений.
Язык Elm также обсуждался в контексте разработки с помощью искусственного интеллекта. Пизенберг отметил, что обратная связь компилятора Elm и сильные сообщения об ошибках полезны для работы с инструментами LLM, так как точные ошибки могут помогать моделям быстрее идентифицировать и исправлять проблемы.
elm-cardano в настоящее время не описывается как широко используемый фреймворк в производственных проектах Cardano. Сессия представила его как активный технический проект, экспериментальную реализацию и отправную точку для того, как инструменты транзакций Cardano могут раскрывать больше существующих возможностей реестра. Следующий этап elm-cardano сосредоточен на более чистых API, улучшенном поведении инструмента построения транзакций и более стабильном фреймворке для разработчиков, тестирующих продвинутые потоки транзакций Cardano.