Mesmo di Cardano porta lo sviluppo assistito dall'AI in Python, Go, Rust e JavaScript
Durante le Developers Office Hours di Cardano, l'architetto software Mateusz Czeladka ha illustrato come Mesmo supporta lo sviluppo di transazioni assistito dall'AI, la valutazione offline di Plutus e l'esecuzione tra linguaggi. La presentazione ha inoltre esaminato i limiti tecnici della libreria e i possibili miglioramenti.
By SongMarketCap
Il Senior Software Architect della Cardano Foundation, Mateusz Czeladka, ha fornito una panoramica tecnica di Mesmo durante l'84ª sessione delle Developers Office Hours, ospitata da Fabian Bormann. La presentazione ha esplorato come la libreria open source renda accessibili le funzionalità di sviluppo su Cardano in più linguaggi di programmazione, con particolare attenzione all'elaborazione delle transazioni, allo sviluppo assistito dall'AI e all'integrazione con l'infrastruttura blockchain.
La discussione è andata oltre il supporto linguistico già presente in Mesmo per esaminare come funziona la sua architettura, cosa possono costruire gli sviluppatori con essa e quali limiti tecnici permangono nella versione presentata.
Mesmo utilizza un motore di esecuzione condiviso per le transazioni su Cardano
Mesmo è costruito attorno a Cardano Client Lib, una libreria di sviluppo software Java la cui funzionalità è compilata in una libreria condivisa nativa utilizzando GraalVM Native Image. Wrapper specifici per linguaggio consentono alle applicazioni scritte in Python, Go, Rust e JavaScript di accedere a quel codice compilato tramite una Application Binary Interface C standard (ABI).
Questa architettura consente agli sviluppatori di utilizzare le operazioni supportate di Cardano senza eseguire una Java Virtual Machine. Fornisce inoltre accesso a funzionalità che potrebbero mancare nel kit di sviluppo software principale di un'applicazione.
Czeladka ha spiegato che questo approccio è nato in parte dalle differenze nei piani di manutenzione tra le librerie di Cardano. Durante la discussione, i partecipanti hanno ricordato un periodo precedente in cui la libreria Apollo basata su Go mancava del supporto alle transazioni Plutus V3, richiedendo adeguamenti architetturali nelle applicazioni che dipendevano da essa.
Invece di sostituire strumenti affermati come MeshJS, PyCardano, Pallas o Apollo, Mesmo fornisce accesso a funzioni selezionate da un'implementazione condivisa.
Le sue capacità includono gestione di wallet e indirizzi, firma delle transazioni, operazioni di staking, script nativi e transazioni di governance di Cardano. La funzionalità di governance si estende a operazioni specializzate che coinvolgono il voto del Constitutional Committee e altre azioni oltre la delega DRep standard.
Un componente centrale è TX Plan, che descrive le transazioni tramite dati YAML strutturati. Invece di costruire ogni operazione attraverso una sequenza di metodi specifici del linguaggio, gli sviluppatori forniscono una definizione di transazione che Mesmo interpreta ed elabora.
Questo modello consente alle applicazioni scritte in linguaggi diversi di accedere alla stessa logica di transazione sottostante, mantenendo al contempo il controllo sulla propria infrastruttura circostante.
Gli agenti di coding basati su AI possono lavorare con transazioni Cardano strutturate
Uno degli ambiti esplorati durante la presentazione era la compatibilità di Mesmo con lo sviluppo software assistito dall'AI.
Il progetto fornisce un AI starter pack contenente informazioni sulle sue interfacce di programmazione. Gli sviluppatori possono fornire questo materiale agli strumenti di coding basati su AI per aiutarli a comprendere le funzioni disponibili, gli input attesi e le operazioni di transazione supportate.
TX Plan offre un'interfaccia strutturata per questo flusso di lavoro. Un agente di coding basato su AI può generare una definizione di transazione in YAML, che un'applicazione può passare a Mesmo per la costruzione della transazione.
Rimane importante la distinzione tra generare una transazione ed eseguirla sulla blockchain.
Mesmo non si connette in modo indipendente ai nodi di Cardano, non recupera informazioni on-chain e non trasmette transazioni. Queste responsabilità spettano all'applicazione che integra la libreria.
Ad esempio, un'applicazione può ottenere gli UTXO disponibili e i parametri di protocollo da un provider di dati blockchain supportato, passare tali input a Mesmo e ricevere dati di transazione serializzati. Dopo la firma, l'applicazione invia la transazione tramite il servizio di rete scelto.
Czeladka ha descritto l'esecuzione sottostante come deterministica e senza stato, ossia gli stessi input forniti producono gli stessi risultati senza che la libreria modifichi in modo indipendente lo stato esterno della blockchain.
La presentazione ha inoltre esaminato la valutazione offline di Plutus. Mesmo include un valutatore Scalus incorporato che può calcolare le unità di esecuzione per memoria e CPU richieste dalle transazioni di smart contract supportate. Gli sviluppatori possono integrare valutatori alternativi tramite l'interfaccia disponibile.
Questa impostazione consente che la costruzione delle transazioni e la valutazione degli script avvengano localmente, senza richiedere una richiesta di rete separata per la valutazione stessa.
La gestione degli account segue una simile separazione delle responsabilità. Un oggetto account può conservare il materiale di chiave necessario per la generazione degli indirizzi e la firma delle transazioni, evitando la trasmissione ripetuta delle frasi mnemoniche tra le funzioni dell'applicazione.
Tuttavia, l'uso di librerie native introduce considerazioni sulla gestione della memoria. I partecipanti hanno discusso di come le risorse debbano essere rilasciate attraverso il confine tra il linguaggio di programmazione ospite e il codice nativo, in particolare quando è coinvolto materiale crittografico sensibile.
[NEWSBREAK]
Vincoli della versione preliminare e potenziale supporto a WebAssembly
La presentazione ha individuato diverse limitazioni pratiche nell'implementazione di Mesmo.
Il supporto a JavaScript nella versione dimostrata si basa sul runtime Bun. Node.js non è supportato a causa di difficoltà legate alla sua Foreign Function Interface.
Un altro vincolo è la dimensione della libreria compilata, circa 60 MB. Czeladka l'ha descritta come un potenziale compromesso per le applicazioni lato server e un ostacolo più significativo per gli ambienti con requisiti stringenti sulla dimensione dei pacchetti.
La distribuzione nativa richiede inoltre build compatibili per diversi sistemi operativi e architetture di processore. Supportare tali combinazioni aggiunge lavoro di manutenzione man mano che il progetto si espande.
Czeladka ha discusso di WebAssembly come possibile alternativa futura. Le capacità in via di sviluppo di WebAssembly in GraalVM potrebbero alla fine fornire un obiettivo di esecuzione più portabile, riducendo la necessità di distribuire binari nativi separati su più piattaforme. La presentazione non ha stabilito una data di rilascio né confermato la disponibilità in produzione per tale approccio.
Altre possibilità di sviluppo includono ulteriori integrazioni con provider di dati blockchain, builder di transazioni specifici del linguaggio, una migliore gestione degli errori e un supporto più ampio per la firma e i metadati relativi ai contratti.
L'implementazione presentata utilizza TX Plan come interfaccia principale per la costruzione delle transazioni. Metodi di programmazione più convenzionali potrebbero essere sviluppati sopra il motore condiviso se la domanda della community sostiene tale lavoro.
Mesmo include anche record di decisioni architetturali e documentazione open source progettati per aiutare i contributori a comprendere ed estendere l'implementazione.
Il team è alla ricerca di feedback da parte degli sviluppatori che stanno testando i wrapper linguistici disponibili e le funzioni di transazione. I contributi possono includere nuovi provider di dati blockchain, miglioramenti alla gestione delle risorse e supporto per operazioni mancanti.
Nell'implementazione dimostrata durante le Developers Office Hours, Mesmo fornisce costruzione delle transazioni, firma e valutazione locale di Plutus tramite la sua libreria nativa condivisa, mentre le applicazioni restano responsabili dell'accesso alla rete e dell'invio delle transazioni completate.