Mesmo от Cardano предоставляет разработку с поддержкой ИИ для Python, Go, Rust и JavaScript
Во время Cardano Developers Office Hours архитектор программного обеспечения Mateusz Czeladka подробно рассказал о том, как Mesmo поддерживает разработку транзакций с помощью ИИ, офлайн оценку Plutus и межъязыковое исполнение. В презентации также были рассмотрены технические ограничения библиотеки и потенциальные улучшения.
By SongMarketCap
Старший архитектор программного обеспечения Cardano Foundation Mateusz Czeladka представил технический разбор Mesmo во время восемьдесят четвертой сессии Developers Office Hours, которую провел Fabian Bormann. В презентации было показано, как библиотека с открытым исходным кодом делает функциональность разработки Cardano доступной в нескольких языках программирования, с особым вниманием к обработке транзакций, разработке с поддержкой ИИ и интеграции с инфраструктурой блокчейна.
Обсуждение вышло за рамки существующей поддержки языков в Mesmo и рассмотрело, как устроена ее архитектура, что разработчики могут на ней построить и какие технические ограничения остаются в представленной версии.
Mesmo использует общий движок исполнения для транзакций Cardano
Mesmo построен вокруг Cardano Client Lib, библиотеки разработки на Java, функциональность которой компилируется в нативную разделяемую библиотеку с помощью GraalVM Native Image. Обертки для конкретных языков позволяют приложениям на Python, Go, Rust и JavaScript получать доступ к этому скомпилированному коду через стандартный C Application Binary Interface (ABI).
Такая архитектура позволяет разработчикам использовать поддерживаемые операции Cardano без запуска Java Virtual Machine. Она также дает доступ к функциональности, которая может отсутствовать в основном наборе средств разработки приложения.
Mateusz Czeladka объяснил, что такой подход возник частично из-за различий в графиках поддержки библиотек Cardano. Во время обсуждения участники вспомнили более ранний период, когда библиотеке Apollo на Go не хватало поддержки транзакций Plutus V3, что требовало архитектурных изменений в приложениях, которые от нее зависели.
Вместо замены устоявшихся инструментов, таких как MeshJS, PyCardano, Pallas или Apollo, Mesmo предоставляет доступ к выбранным функциям из общего решения.
Его возможности включают управление кошельками и адресами, подписание транзакций, операции стейкинга, native scripts и транзакции управления Cardano. Функциональность управления охватывает специализированные операции, связанные с голосованием Constitutional Committee и другими действиями сверх стандартной делегации DRep.
Ключевой компонент это TX Plan, который описывает транзакции с помощью структурированных данных YAML. Вместо построения каждой операции через последовательность методов конкретного языка разработчики предоставляют определение транзакции, которое Mesmo интерпретирует и обрабатывает.
Эта модель позволяет приложениям на разных языках использовать одну и ту же базовую логику транзакций, сохраняя контроль над окружающей инфраструктурой.
Агенты программирования на основе ИИ могут работать со структурированными транзакциями Cardano
Одной из тем презентации была совместимость Mesmo с разработкой программного обеспечения при помощи ИИ.
Проект предоставляет AI starter pack, содержащий информацию о его программных интерфейсах. Разработчики могут передавать эти материалы инструментам программирования на основе ИИ, чтобы помочь им понять доступные функции, ожидаемые входные данные и поддерживаемые операции с транзакциями.
TX Plan предлагает структурированный интерфейс для такого процесса. Агент программирования на основе ИИ может сгенерировать YAML определение транзакции, которое приложение передаст в Mesmo для построения транзакции.
Важно различать генерацию транзакции и ее исполнение в блокчейне.
Mesmo самостоятельно не подключается к узлам Cardano, не получает on-chain информацию и не рассылает транзакции. Эти обязанности лежат на приложении, интегрирующем библиотеку.
Например, приложение может получить доступные UTXOs и параметры протокола у поддерживаемого поставщика данных блокчейна, передать эти входные данные в Mesmo и получить сериализованные данные транзакции. После подписания приложение отправляет транзакцию через выбранный сетевой сервис.
Czeladka охарактеризовал базовое исполнение как детерминированное и не сохраняющее состояние, то есть одни и те же входные данные приводят к одним и тем же результатам без самостоятельного изменения библиотекой внешнего состояния блокчейна.
В презентации также рассматривалась офлайн оценка Plutus. В Mesmo встроен оценщик Scalus, который может вычислять объем памяти и единицы исполнения CPU, требуемые поддерживаемыми транзакциями смарт контрактов. Разработчики могут интегрировать альтернативные оценщики через доступный интерфейс.
Такая схема позволяет локально выполнять построение транзакций и оценку скриптов, без необходимости делать отдельный сетевой запрос для самой оценки.
Обработка аккаунтов следует аналогичному разделению ответственности. Объект аккаунта может хранить необходимые ключевые данные для генерации адресов и подписания транзакций, избегая повторной передачи мнемонических фраз между функциями приложения.
Однако использование нативных библиотек влечет вопросы управления памятью. Участники обсуждали, как следует освобождать ресурсы на границе между языком программирования хоста и нативным кодом, особенно когда задействованы чувствительные криптографические данные.
[NEWSBREAK]
Ограничения перед релизом и потенциальная поддержка WebAssembly
В презентации были обозначены несколько практических ограничений реализации Mesmo.
Поддержка JavaScript в продемонстрированной версии опирается на среду выполнения Bun. Node.js не поддерживается из-за сложностей, связанных с его Foreign Function Interface.
Еще одно ограничение это размер скомпилированной библиотеки, примерно 60 MB. Czeladka назвал это потенциальным компромиссом для серверных приложений и более серьезным препятствием для сред со строгими требованиями к размеру пакетов.
Нативное распространение также требует совместимых сборок для разных операционных систем и процессорных архитектур. Поддержка этих комбинаций добавляет работы по сопровождению по мере расширения проекта.
Czeladka обсудил WebAssembly как возможную будущую альтернативу. Развивающиеся возможности WebAssembly в GraalVM со временем могут обеспечить более переносимую цель исполнения, уменьшая необходимость распространять отдельные нативные бинарные файлы для множества платформ. В презентации не были определены сроки релиза и не была подтверждена готовность к промышленной эксплуатации этого подхода.
Другие направления развития включают дополнительные интеграции с поставщиками данных блокчейна, языковые конструкторы транзакций, улучшенную обработку ошибок и более широкую поддержку подписания и метаданных, связанных с контрактами.
Представленная реализация использует TX Plan как основной интерфейс построения транзакций. Более привычные программные методы могут быть разработаны поверх общего движка, если сообщество проявит достаточный интерес к такой работе.
В Mesmo также есть записи архитектурных решений и документация с открытым исходным кодом, призванные помочь контрибьюторам понимать и расширять реализацию.
Команда ищет обратную связь от разработчиков, тестирующих доступные языковые обертки и функции транзакций. Вклад может включать новых поставщиков данных блокчейна, улучшения управления ресурсами и поддержку отсутствующих операций.
В реализации, продемонстрированной во время Developers Office Hours, Mesmo обеспечивает построение транзакций, подписание и локальную оценку Plutus через свою общую нативную библиотеку, тогда как приложения остаются ответственными за сетевой доступ и отправку готовых транзакций.