Cardano Foundation Engineer Outlines Road to v1.0 per il framework di sviluppo elm-cardano
Mathieu Pizenberg ha presentato lo stato corrente di elm-cardano durante i Cardano Developers Office Hours, discutendo la costruzione delle transazioni, gli strumenti di Elm, l'onboarding degli sviluppatori e il percorso del framework verso un rilascio più stabile.
By SongMarketCap
I Cardano Developers Office Hours hanno ospitato una sessione tecnica focalizzata su v1.0 per elm-cardano, un framework di sviluppo che connette il linguaggio di programmazione Elm con lo sviluppo di applicazioni Cardano. La sessione è stata ospitata da Fabian Bormann, con Mathieu Pizenberg, Senior Software Engineer presso la Cardano Foundation, che ha presentato lo stato attuale del progetto e i problemi legati agli strumenti per sviluppatori che mira a risolvere.
elm-cardano si propone come un framework per la creazione di applicazioni front-end e strumenti per transazioni su Cardano utilizzando Elm, un linguaggio di programmazione funzionale noto per il suo forte typing, il feedback rapido del compilatore e la stabilità. La discussione ha trattato il costruttore di transazioni del framework, il suo design basato sull'intento, la gestione locale degli UTXO, la selezione delle monete e la questione più ampia di come gli sviluppatori Cardano possano utilizzare meglio le capacità già disponibili nel ledger.
elm-cardano si focalizza sull'ambito front-end e sugli strumenti per transazioni su Cardano
Pizenberg ha spiegato che l'idea originale per la sessione è derivata dal lavoro su un costruttore di transazioni interattivo. Lo strumento proposto consentirebbe agli sviluppatori di costruire visivamente diversi tipi di transazioni Cardano attraverso un'interfaccia web, piuttosto che scrivere immediatamente un'applicazione completa o fare affidamento su flussi di lavoro da riga di comando.
Il concetto di costruttore di transazioni è stato progettato per supportare azioni come l'invio di token, la creazione di NFT, il prelievo di ricompense di staking e l'interazione con dApp. Permetterebbe inoltre agli sviluppatori di combinare diverse azioni in una singola transazione Cardano, una delle capacità pratiche del modello eUTXO.
Secondo Pizenberg, molti sviluppatori necessitano di un metodo più veloce per testare specifici schemi di transazione. Invece di configurare un'applicazione completa in JavaScript o utilizzare un flusso di lavoro CLI per ogni esperimento, l'interfaccia proposta darebbe agli sviluppatori un modo più diretto per costruire, ispezionare e testare il comportamento delle transazioni.
La presentazione ha anche collocato elm-cardano all'interno dell'ecosistema Elm più ampio. Elm è stato descritto come un linguaggio funzionale stabile per applicazioni front-end, con un focus sull'evitare eccezioni runtime, ridurre i rischi di dipendenza e migliorare la sicurezza nel refactoring. Pizenberg ha affermato che il linguaggio rimane attivo nonostante il suo lento ciclo di rilascio, aggiungendo che la sua stabilità è spesso scambiata per inattività.
Costruzione di transazioni basata sull'intento per uno sviluppo Cardano più flessibile
Gran parte della sessione si è concentrata sull'approccio di elm-cardano alla costruzione delle transazioni. Pizenberg ha confrontato il framework con i modelli di costruttori di transazioni comuni, in particolare nelle librerie JavaScript, dove lo sviluppatore lavora spesso vicino alla rappresentazione del ledger delle transazioni.
elm-cardano utilizza un approccio basato sull'intento. Piuttosto che richiedere agli sviluppatori di descrivere manualmente ogni componente di basso livello delle transazioni, lo sviluppatore descrive cosa la transazione dovrebbe fare. Ad esempio, l'intento può essere quello di inviare asset a un indirizzo, utilizzare un set di UTXO definito, creare un output specifico o combinare più azioni in una transazione.
Il framework elabora questi intenti e lavora attraverso i requisiti tecnici necessari per produrre una transazione Cardano valida. Pizenberg ha descritto questo come un modo per separare l'obiettivo dello sviluppatore dalla struttura di basso livello del corpo finale della transazione.
La presentazione ha anche trattato lo stato locale degli UTXO, che consente al costruttore di transazioni di operare con un set definito di output. Questo può essere utile per i test perché il costruttore non deve dipendere direttamente da servizi esterni come i provider di API blockchain. Può invece lavorare con lo stato fornito dallo sviluppatore.
Quel design supporta anche il concatenamento delle transazioni. Una volta che una transazione viene finalizzata localmente, lo stato risultante può essere utilizzato per costruire un'altra transazione senza attendere la conferma on-chain durante il flusso di sviluppo. Questo permette agli sviluppatori di testare sequenze di transazioni in condizioni controllate.
Pizenberg ha anche discusso la selezione personalizzabile delle monete. elm-cardano include approcci predefiniti come la selezione largest-first, insieme a un metodo di selezione separato focalizzato sui collateral. L'esempio sui collateral è stato presentato come un problema pratico perché gli sviluppatori generalmente non vogliono che un UTXO di alto valore venga selezionato come collateral per una transazione Plutus.
Il percorso verso v1.0 include API più pulite, test e miglioramento dell'esperienza per gli sviluppatori Cardano
Il percorso verso v1.0 per elm-cardano include lavori sulla struttura centrale del framework e sulle API destinate agli sviluppatori. Pizenberg ha affermato che alcune parti del progetto sono iniziate circa tre anni fa e che diverse decisioni di design iniziali ora necessitano di essere rivalutate prima di un rilascio più stabile.
Un'area discussa è il processo multi-round richiesto per costruire alcune transazioni Cardano. Poiché le tariffe delle transazioni dipendono dalla dimensione della transazione e questa può cambiare quando vengono aggiunti UTXO, redentori o valutazioni di script Plutus, il costruttore potrebbe avere bisogno di diversi round prima di raggiungere una transazione finale stabile.
Pizenberg ha affermato che l’implementazione attuale gestisce manualmente diversi round di costruzione, mentre una versione futura dovrebbe identificare più chiaramente un punto fisso stabile. Questo permetterebbe al framework di interrompere la ricostruzione una volta che lo stato della transazione non cambia più.
La sessione ha anche trattato l'indicizzazione dei redentori e il posizionamento degli output, che sono importanti per interazioni più avanzate con gli smart contract di Cardano. Alcuni script dipendono da indici specifici di input o output, e i costruttori di transazioni devono esporre abbastanza controllo per permettere agli sviluppatori di comporre interazioni complesse attraverso più protocolli.
La discussione si è ampliata fino a trattare l'esperienza degli sviluppatori Cardano in modo più ampio. Pizenberg ha affermato che molte delle capacità di Cardano sono ancora sottoutilizzate dalle dApp e dagli strumenti disponibili. Ha inoltre incoraggiato gli sviluppatori che costruiscono protocolli a contribuire con correzioni e miglioramenti alle librerie che utilizzano, piuttosto che risolvere problemi solo all'interno delle loro applicazioni.
Il linguaggio Elm è stato anche discusso nel contesto dello sviluppo assistito dall'AI. Pizenberg ha indicato il feedback del compilatore di Elm e i suoi messaggi di errore dettagliati come utili per lavorare con strumenti LLM, poiché errori precisi possono aiutare i modelli a identificare e correggere i problemi più rapidamente.
elm-cardano non è attualmente descritto come un framework di produzione ampiamente utilizzato tra i progetti Cardano. La sessione lo ha presentato come uno sforzo tecnico attivo, un'implementazione sperimentale e un punto di riferimento per come gli strumenti di transazione Cardano possono esporre più delle capacità già esistenti nel ledger. La fase successiva di elm-cardano si concentra su API più pulite, un comportamento migliorato del costruttore di transazioni e un framework più stabile per gli sviluppatori che testano flussi di transazioni avanzati su Cardano.