La proposta Plutus di Cardano mira a ridurre l’overhead di esecuzione degli script

CIP-0194 propone una nuova operazione Match per Untyped Plutus Core che potrebbe ridurre l’overhead di lettura di dati di script complessi. Una seconda proposta, CIP-0195, definisce il modello di codifica Data per la prossima API di ledger Plutus V4.

By SongMarketCap

Cardano News - La proposta Plutus di Cardano mira a ridurre l’overhead di esecuzione degli script

La pipeline di sviluppo di Plutus su Cardano ha aggiunto due proposte incentrate su come gli smart contract elaborano i dati del ledger. CIP-0194 introduce il pattern matching integrato per UPLC, mentre CIP-0195 specifica come i tipi Plutus V4 come ScriptContext e TxInfo dovrebbero essere codificati come Data. Entrambe sono ancora in revisione.

CIP-0194 ha già un prototipo funzionante, con primi benchmark locali che mostrano tempi di esecuzione CEK sostanzialmente inferiori per diversi pattern di accesso ai dati. Le misurazioni non sono calibrate sulle execution units on chain e i parametri di costo per la produzione non sono ancora stati finalizzati.

CIP-0194 aggiunge il pattern matching a Plutus Core

Gli smart contract su Cardano ispezionano spesso Data strutturati, compresi i dati di transazione all’interno di ScriptContext. I programmi UPLC esistenti possono decomporre queste strutture tramite funzioni come unConstrData, chooseData e operazioni sulle liste, con ogni passaggio che aggiunge lavoro all’interno del valutatore CEK.

CIP-0194 propone una nuova operazione Match che può ispezionare direttamente valori annidati e catturare solo i campi richiesti da uno script. Copre interi, stringhe di byte, liste, coppie e Data strutturati, mentre il meccanismo Case esistente rimane disponibile per operazioni più semplici.

La modifica è rivolta principalmente ai validator che ispezionano ripetutamente il contesto della transazione, compresa logica DeFi, di trading e di lending più complessa.

Un prototipo funzionante esiste già nel codebase di Plutus. L’uso in produzione richiederebbe comunque test di conformità, parametri di costo calibrati, supporto nel ledger e una release del nodo Cardano.

Primi benchmark mostrano tempi di esecuzione CEK più bassi

Il CIP include benchmark locali che confrontano Match con i metodi esistenti per scomporre Data.

Quando si recupera un singolo valore profondamente annidato, l’esecuzione CEK misurata è risultata tra 6.38 e 13.74 volte più rapida negli scenari testati. Un test che coinvolge 64 livelli Data annidati ha registrato 2.297 microsecondi con Match, rispetto a 31.068 microsecondi utilizzando l’approccio esistente.

Il divario di prestazioni si riduce quando gli script catturano più valori, con miglioramenti testati compresi approssimativamente tra 1.67 e 6.10 volte a seconda della struttura e del metodo di riferimento.

Queste cifre misurano le prestazioni locali del CEK in termini di wall clock piuttosto che le execution units finali di Cardano. Il modello di costo rimane non calibrato. I budget preliminari di CPU e memoria nella proposta sono migliorati dal 10% al 90% su diversi carichi di lavoro, con scenari tipici di contesto script che mostrano un miglioramento di circa il 40% al 60% sotto i parametri iniziali.

La proposta assegna Match alla versione 1.2.0 del linguaggio Plutus Core, che richiederebbe supporto nel ledger e attivazione tramite il processo di hard fork di Cardano prima che gli script possano usarlo su mainnet.

CIP-0195 definisce il modello Data di Plutus V4

CIP-0195 affronta l’altro lato dello stack Plutus specificando come i tipi dell’API di ledger Plutus V4 dovrebbero essere rappresentati come Data.

La proposta copre lo ScriptContext V4 e le strutture correlate, tra cui un TxInfo ampliato. Sostituisce l’approccio più informale utilizzato nelle versioni precedenti di Plutus, in cui gli sviluppatori e gli strumenti alternativi spesso dovevano derivare il comportamento di codifica dal codice di implementazione anziché da una specifica dedicata.

Il design V4 proposto continua a usare le liste per la codifica dei datatype. CIP-0195 sostiene che le nuove operazioni UPLC rendono efficiente l’accesso alle liste evitando i costruttori aggiuntivi e l’integrazione nel ledger richiesti da un modello più ampio basato su array.

CIP-0194 e CIP-0195 possono progredire in modo indipendente, ma insieme affrontano il modo in cui la prossima generazione di Plutus struttura e accede ai dati del ledger. Se adottato, CIP-0195 standardizzerebbe come Plutus V4 espone tali dati, mentre CIP-0194 fornirebbe ai validator un modo con overhead inferiore per ispezionarli. Entrambi richiedono ancora l’approvazione della specifica, modelli di costo calibrati e integrazione nel ledger prima di raggiungere la mainnet di Cardano.