Cardano predlaže uklanjanje provjere dosega za Plutus

CIP-0205 bi uklonio zasebnu provjeru koja se obavlja prije izvršavanja skripte, smanjujući rad na validaciji promjenom koja zahtijeva novu verziju jezika i hard fork.

By SongMarketCap

Updated:

Cardano News - Cardano predlaže uklanjanje provjere dosega za Plutus

Prijedlog CIP-0205 za Cardano eliminirao bi jedan od koraka koji se koriste za pripremu skripti za Plutus prije izvršavanja. Autor Jacco Krijnen predlaže rukovanje pogreškama nevezanih varijabli tijekom izvršavanja umjesto provjere cijelog programa unaprijed. Podnesen 25. rujna, prijedlog je i dalje u pregledu.

Trošak pripreme Plutus skripti

Prije izvršavanja skripte, čvor provjerava jesu li njezine varijable ispravno definirane unutar programa. To je poznato kao provjera dosega i odvija se tijekom druge faze validacije transakcije.

Raniji benchmarkovi navedeni u prijedlogu utvrdili su da je ta provjera činila otprilike 20% vremena pripreme skripte, uključujući dekodiranje i provjeru verzije. U potpunim benchmarkovima validacije predstavljala je približno 3% ukupnog vremena validacije. Te brojke mjere udio procesnog vremena koji otpada na provjeru u tim testnim opterećenjima.

Uklanjanje bi smanjilo procesni rad za prihvatljive skripte. Svako posljedično smanjenje naknada za transakcije ovisilo bi o naknadnim prilagodbama parametara naknada, navodi prijedlog.

Kako bi Plutus rukovao pogreškama varijabli

Plutus Core je jezik koji se koristi za izvođenje skripti pametnih ugovora na Cardano. Njegov stroj za izvršavanje, CEK stroj, već obrađuje pokušaje korištenja varijabli bez pridružene vrijednosti.

U raspravi tijekom pregleda prijedloga, razvojni programer Seungheon Oh napomenuo je da CEK ne ovisi o preliminarnoj provjeri dosega. Pokušaj evaluacije nevezane varijable rezultira uobičajenim neuspjehom pri izvršavanju.

Prema predloženim pravilima, program bi mogao uspjeti ako se nevezana varijabla pojavljuje samo u kodu koji se nikada ne izvršava. Programi s ispravno određenim dosegom zadržali bi iste rezultate izvršavanja.

Razvojni jezici uključujući Aiken, Plinth i Plutarch već provode ograničavanje dosega varijabli putem svojih provjeravatelja tipova prije nego skripte dospiju na blockchain, navodi prijedlog.

Nova verzija jezika i hard fork

Nacrt povezuje promjenu s jezikom Plutus Core verzije 1.2.0, što bi zahtijevalo hard fork. Implementacija bi uključivala ažuriranja specifikacije, izvršnog koda, formalnog modela i testova sukladnosti.

Prijedlog je 29. rujna dobio broj CIP-0205. Urednik CIP Robert Phair zatražio je širu cirkulaciju među radnim skupinama prije nego što pregled nastavi, pozivajući se na širinu promjene.

Prema trenutačnom nacrtu, postojeće skripte koje koriste verzije jezika 1.0.0 i 1.1.0 zadržale bi svoje ponašanje. Nakon aktivacije, nove skripte koje deklariraju verziju 1.2.0 mogle bi se izvršavati bez zasebne preliminarne provjere dosega.