Mesmo от Cardano предоставляет разработку с поддержкой ИИ для Python, Go, Rust и JavaScript

Во время Cardano Developers Office Hours архитектор программного обеспечения Mateusz Czeladka подробно рассказал о том, как Mesmo поддерживает разработку транзакций с помощью ИИ, офлайн оценку Plutus и межъязыковое исполнение. В презентации также были рассмотрены технические ограничения библиотеки и потенциальные улучшения.

By SongMarketCap

Cardano News - Mesmo от Cardano предоставляет разработку с поддержкой ИИ для Python, Go, Rust и JavaScript

Старший архитектор программного обеспечения 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 через свою общую нативную библиотеку, тогда как приложения остаются ответственными за сетевой доступ и отправку готовых транзакций.

Смотреть на YouTube