Cardano predlaga odstranitev preverjanja obsega v Plutusu

CIP-0205 bi odstranil ločeno preverjanje, izvedeno pred izvajanjem skriptov, kar bi zmanjšalo delo pri validaciji s spremembo, ki zahteva novo različico jezika in trdo vilico.

By SongMarketCap

Updated:

Cardano News - Cardano predlaga odstranitev preverjanja obsega v Plutusu

Predlog Cardano CIP-0205 bi odpravil enega od korakov, ki se uporabljajo za pripravo Plutus skriptov za izvajanje. Avtor Jacco Krijnen predlaga obravnavo napak nevezanih spremenljivk med izvajanjem namesto predhodnega preverjanja celotnega programa. Predlog, predložen 25. septembra, je še vedno v pregledu.

Stroški priprave Plutus skriptov

Pred izvajanjem skripta vozlišče preveri, da so njegove spremenljivke pravilno definirane znotraj programa. To se imenuje preverjanje obsega in poteka v drugi fazi validacije transakcije.

Prejšnje meritve zmogljivosti, ki jih navaja predlog, so pokazale, da je to preverjanje predstavljalo približno 20 % časa priprave skripta, vključno z dekodiranjem in preverjanjem različice. V meritvah celotne validacije je predstavljalo približno 3 % celotnega časa validacije. Te številke merijo delež procesnega časa, ki ga to preverjanje zavzame v navedenih testnih delovnih obremenitvah.

Njegova odstranitev bi zmanjšala obdelovalno delo za ustrezne skripte. Kakršno koli posledično znižanje transakcijskih pristojbin bi bilo odvisno od kasnejših prilagoditev parametrov pristojbin, navaja predlog.

Kako bi Plutus obravnaval napake spremenljivk

Plutus Core je jezik, ki se uporablja za izvajanje skriptov pametnih pogodb v omrežju Cardano. Njegov izvršitveni stroj CEK že obravnava poskuse uporabe spremenljivk brez vezane vrednosti.

V razpravi ob pregledu predloga je razvijalec Seungheon Oh opozoril, da CEK ni odvisen od predhodnega preverjanja obsega. Poskus ovrednotenja nevezane spremenljivke povzroči običajen neuspeh izvajanja.

Po predlaganih pravilih bi lahko program uspel, če se nevezana spremenljivka pojavi le v kodi, ki se nikoli ne izvede. Programi s pravilno določenim obsegom spremenljivk bi ohranili enake rezultate izvajanja.

Razvojni jeziki, med njimi Aiken, Plinth in Plutarch, že uveljavljajo obseg spremenljivk prek svojih preverjalnikov tipov, še preden skripti dosežejo verigo blokov, navaja predlog.

Nova različica jezika in trda vilica

Osnutek spremembo veže na jezik Plutus Core različice 1.2.0, kar bi zahtevalo trdo vilico. Implementacija bi vključevala posodobitve specifikacije, izvršitvene kode, formalnega modela in preskusov skladnosti.

Predlog je 29. septembra prejel številko CIP-0205. Urednik CIP Robert Phair je zaprosil za širšo razpošiljanje med delovne skupine, preden se pregled nadaljuje, pri čemer se je skliceval na širino spremembe.

Po trenutnem osnutku bi obstoječi skripti, ki uporabljajo različici jezika 1.0.0 in 1.1.0, obdržali svoje vedenje. Po aktivaciji bi se novi skripti, ki navajajo različico 1.2.0, lahko izvajali brez ločenega predhodnega preverjanja obsega.