Mesmo de Cardano apporte le développement assisté par IA à Python, Go, Rust et JavaScript
Lors des Developers Office Hours de Cardano, l’architecte logiciel Mateusz Czeladka a détaillé comment Mesmo prend en charge le développement de transactions assisté par IA, l’évaluation Plutus hors ligne et l’exécution interlangage. La présentation a également examiné les limites techniques de la bibliothèque et les améliorations potentielles.
By SongMarketCap
Mateusz Czeladka, Senior Software Architect à la Cardano Foundation, a proposé une démonstration technique de Mesmo lors de la 84e session des Developers Office Hours, animée par Fabian Bormann. La présentation a exploré comment cette bibliothèque open source rend les fonctionnalités de développement Cardano accessibles dans plusieurs langages de programmation, avec une attention particulière au traitement des transactions, au développement assisté par IA et à l’intégration avec l’infrastructure blockchain.
La discussion est allée au delà du support linguistique actuel de Mesmo pour examiner le fonctionnement de son architecture, ce que les développeurs peuvent construire avec, et quelles limites techniques subsistent dans la version présentée.
Mesmo utilise un moteur d’exécution mutualisé pour les transactions Cardano
Mesmo est construit autour de Cardano Client Lib, une bibliothèque de développement Java dont les fonctionnalités sont compilées en une bibliothèque native partagée via GraalVM Native Image. Des wrappers spécifiques à chaque langage permettent aux applications écrites en Python, Go, Rust et JavaScript d’accéder à ce code compilé via une interface binaire d’application C standard (ABI).
Cette architecture permet aux développeurs d’utiliser les opérations Cardano prises en charge sans exécuter une Java Virtual Machine. Elle donne aussi accès à des fonctionnalités qui peuvent manquer au kit de développement principal de l’application.
Czeladka a expliqué que cette approche est en partie née de différences de rythmes de maintenance entre les bibliothèques Cardano. Pendant la discussion, les participants ont rappelé une période antérieure où la bibliothèque Apollo en Go ne proposait pas la prise en charge des transactions Plutus V3, ce qui a exigé des ajustements architecturaux dans les applications qui en dépendaient.
Plutôt que de remplacer des outils établis comme MeshJS, PyCardano, Pallas ou Apollo, Mesmo donne accès à des fonctions sélectionnées issues d’une implémentation partagée.
Ses capacités incluent la gestion de portefeuilles et d’adresses, la signature de transactions, les opérations de staking, les scripts natifs et les transactions de gouvernance Cardano. Les fonctions de gouvernance s’étendent à des opérations spécialisées impliquant les votes du Constitutional Committee et d’autres actions au delà de la délégation DRep standard.
Un composant central est TX Plan, qui décrit les transactions via des données YAML structurées. Au lieu de construire chaque opération via une séquence de méthodes propres à un langage, les développeurs fournissent une définition de transaction que Mesmo interprète et traite.
Ce modèle permet aux applications écrites dans différents langages d’accéder à la même logique transactionnelle sous jacente tout en conservant le contrôle sur leur infrastructure environnante.
Les agents de codage IA peuvent travailler avec des transactions Cardano structurées
Un domaine exploré pendant la présentation concernait la compatibilité de Mesmo avec le développement logiciel assisté par IA.
Le projet fournit un kit de démarrage IA contenant des informations sur ses interfaces de programmation. Les développeurs peuvent transmettre ces éléments à des outils de codage IA pour les aider à comprendre les fonctions disponibles, les entrées attendues et les opérations de transaction prises en charge.
TX Plan offre une interface structurée pour ce flux de travail. Un agent de codage IA peut générer une définition de transaction YAML qu’une application peut transmettre à Mesmo pour la construction de la transaction.
La distinction entre générer une transaction et l’exécuter sur la blockchain reste importante.
Mesmo ne se connecte pas de manière autonome aux nœuds Cardano, ne récupère pas d’informations on chain et ne diffuse pas les transactions. Ces responsabilités incombent à l’application qui intègre la bibliothèque.
Par exemple, une application peut obtenir les UTXO disponibles et les paramètres de protocole auprès d’un fournisseur de données blockchain pris en charge, transmettre ces entrées à Mesmo et recevoir des données de transaction sérialisées. Après la signature, l’application soumet la transaction via le service réseau de son choix.
Czeladka a qualifié l’exécution sous jacente de déterministe et sans état, ce qui signifie que les mêmes entrées fournies produisent les mêmes résultats sans que la bibliothèque ne modifie de manière autonome l’état externe de la blockchain.
La présentation a également examiné l’évaluation Plutus hors ligne. Mesmo inclut un évaluateur Scalus intégré capable de calculer les unités d’exécution mémoire et CPU requises par les transactions de smart contracts prises en charge. Les développeurs peuvent intégrer des évaluateurs alternatifs via l’interface disponible.
Cette organisation permet à la construction de la transaction et à l’évaluation des scripts d’avoir lieu localement, sans exiger de requête réseau séparée pour l’évaluation elle même.
La gestion des comptes suit une séparation des responsabilités similaire. Un objet de compte peut conserver le matériel de clés nécessaire à la génération d’adresses et à la signature des transactions, évitant la transmission répétée de phrases mnémoniques entre les fonctions de l’application.
Cependant, l’utilisation de bibliothèques natives introduit des considérations de gestion de mémoire. Les participants ont discuté de la manière dont les ressources doivent être libérées à la frontière entre le langage hôte et le code natif, en particulier lorsque du matériel cryptographique sensible est en jeu.
[NEWSBREAK]
Contraintes de préversion et prise en charge potentielle de WebAssembly
La présentation a identifié plusieurs limites pratiques dans l’implémentation de Mesmo.
La prise en charge de JavaScript dans la version présentée repose sur le runtime Bun. Node.js n’est pas pris en charge en raison de difficultés liées à sa Foreign Function Interface.
Une autre contrainte est la taille de la bibliothèque compilée, environ 60 Mo. Czeladka a décrit cela comme un compromis potentiel pour les applications côté serveur et un obstacle plus important pour les environnements aux exigences strictes de taille de paquets.
La distribution native exige aussi des builds compatibles pour différents systèmes d’exploitation et architectures de processeur. La prise en charge de ces combinaisons ajoute du travail de maintenance à mesure que le projet s’étend.
Czeladka a évoqué WebAssembly comme une alternative possible à l’avenir. Les capacités WebAssembly en développement de GraalVM pourraient finalement offrir une cible d’exécution plus portable, réduisant la nécessité de distribuer des binaires natifs séparés sur plusieurs plates formes. La présentation n’a pas fixé de date de sortie ni confirmé la disponibilité en production de cette approche.
Parmi les autres pistes de développement figurent des intégrations supplémentaires avec des fournisseurs de données blockchain, des constructeurs de transactions spécifiques à chaque langage, une gestion des erreurs améliorée et une prise en charge élargie de la signature et des métadonnées liées aux contrats.
L’implémentation présentée utilise TX Plan comme interface principale de construction de transactions. Des méthodes de programmation plus classiques pourraient être développées au dessus du moteur partagé si la demande de la communauté soutient ce travail.
Mesmo inclut aussi des registres de décisions d’architecture et une documentation open source destinés à aider les contributeurs à comprendre et étendre l’implémentation.
L’équipe sollicite des retours des développeurs qui testent les wrappers de langage disponibles et les fonctions de transaction. Les contributions peuvent inclure de nouveaux fournisseurs de données blockchain, des améliorations de la gestion des ressources et la prise en charge d’opérations manquantes.
Dans l’implémentation démontrée pendant les Developers Office Hours, Mesmo fournit la construction de transactions, la signature et l’évaluation Plutus locale via sa bibliothèque native partagée, tandis que les applications restent responsables de l’accès réseau et de la soumission des transactions finalisées.