🇸🇮 Višanje pretočnosti Cardana skozi referenciranje skript

Višanje pretočnosti Cardana skozi referenciranje skript

V pričujočem prispevku si bomo ogledali nekaj izboljšav sistema Cardano, ki so načrtovane za junij.

V razvojni fazi Basho je knjiga prodaj še naprej podvržena optimizaciji in pa tudi širjenju zaradi rasti zanimanja za projekt. Zmogljivost platforme Plutus se še naprej nadgrajuje, saj so se prilagodili uporabljeni parametri platforme in tudi nadgradila vozlišča.

Plutus je živ programski jezik, ki se vedno naprej razvija, uporablja se pa za razvijanje pametnih pogodb. Predlogi za izboljšavo Cardana — katerim se sicer tudi reče “CIP” (tj. “Cardano improvement proposals”) — igrajo pomembno vlogo v tem procesu razvoja. Skozi delovanje sistema CIP lahko kdorkoli poda predloge za izboljšave. Tak sistem vzpodbuja angažiranost skupnosti, predvsem pa njeno recenziranje predlogov, ki se jih hrani in vzdržuje v GitHub repozitoriju organizacije Cardano.

Oglejmo si dva predloga s platforme CIP. Prvi je predlog za referenciranje vnosov (CIP-31), drugi pa predlog za referenciranje skript (CIP-33). Oba bosta implementirana v sistem Cardano v sklopu razcepa Vasil, ki se bo pripetil v juniju. Omenjeni razcep bo služil kot izboljšava platforme Plutus, ki bo skupaj z drugimi izboljšavami za rast povečal pretočnost za decentralizirane aplikacije (DApp), RealFi sisteme, izdelke, pametne pogodbe in tudi za grajenje in delovanje menjalnic znotraj sistema Cardano.

V pričujočem prispevku si bomo pobližje ogledali kaj ta predloga sta, kako optimizirata rast sistema Cardano in sta mu tudi sicer koristna.


Referenciranje vnosov

Izpis transakcije nosi podatkovne enote , ki omogočajo hranjenje podatkov in dostop do njih na blockchain verigi. Toda omenjene enote so podvržene številnim omejitvam. Če bi npr. želeli dostopati do podatkov v dani enoti, bi morali porabiti izpis, na katerega je podatkovna enota vezana. Takšno dostopanje do podatkov v enoti zahteva ponovno kreacijo izpisa, ki je bil že porabljen. To pomeni, da bi moral uporabnik, ki želi dostopati do omenjenih podatkov, porabiti izpis, ki več ne obstaja. Druga možnost je, da uporabnik poskusi porabiti novi izpis, ki mu bo pa dostopen šele v drugem bloku verige. V praksi to za nekatere aplikacije pomeni, da je možno izvesti le eno “operacijo” na blok, kar občutno zmanjša zmogljivost sistema.

Izboljšava CIP-31 bo uvedla nov mehanizem za dostopanje podatkov v podatkovnih enotah — referenciran vnos. Referencirani vnosi omogočajo dostopanje do izpisa transakcije brez, da bi bilo potrebno imenovani izpis tudi porabiti. To bo omogočilo dostop do podatkov, ki so shranjeni v blockchain verigi, brez potrebe po ponovni kreaciji in porabljanju že porabljenega izpisa (kar so t.i. “UTXO”).

Referenciranje vnosov uvede še eno ključno izboljšavo — referenciranje skript.


Referenciranje skript

Ko se porabi izpis transakcije, ki je zaklenjen s skripto platforme Plutus, je potrebno dodati takšno skripto v dano transakcijo. Velikost skripte vpliva na velikost transakcije, kar pa neposredno vpliva na pretočnost Cardana.

Večje skripte predstavljajo težave za uporabnike, ker:

  1. Večje transakcije terjajo višje stroške prenosa.
  2. Imajo transakcije omejitve na velikost. Obsežne skripte pa znajo preseči takšne omejitve. Tudi če je ena skripta dovolj majhna za dano transakcijo, bo še vedno verjetno nemogoče uporabiti več skript hkrati. To pa preprečuje uspešno obravnavanje kompleksnih transakcij, ki zahtevajo rabo večih skript naenkrat.

Kot rešitev opisanega problema ponuja predlog CIP-33 referenciranje skript. Slednje omogoča zapisovanje reference skripte v samo transakcijo. Preko takšne reference je nato je možno dostopati do skripte brez, da bi se samo skripto dodalo v transakcijo, kar pa drastično zmanjša doprinost skripte k velikosti transakcije. Takšen način referenciranja skript v večih transakcijah občutno zmanjša velikosti samih transakcij, izboljša pretočnost omrežja in tudi zmanjša stroške, ki nastanejo z izvajanjem skripte.


Kako poteka referenciranje skript?

Za postopek referenciranja skript se uporabijo vnosi in izpisi, ki vsebujejo dejanske skripte (ki se jih nato lahko referencira). S takšno izboljšavo ne bo kar naprej potrebno po omrežju pošiljati pogosto uporabljenih skript, saj same transakcije ne bodo rabile vsebovati same skripte, ampak le referencirati nek izpis, ki skripto že vsebuje.

Takšen pristop sledi predlogu, ki je bil podan v sklopu CIP-31, čigar glavna naloga je omogočiti prenos podatkov na verigi in refrenciranje UTXO-izpisa je najbolj primeren način za doseganje tega cilja.

Za vzpostavitev referenciranja skript je potrebno v izpise dodate novo neobvezno polje, v katerega se bo lahko dodala skripta. Minimalna vrednost v okviru “UTXO” za takšne izpise bo pa odvisna od velikosti skripte, ki je vezana na protokolni parameter coinsPerUTxOWord .


Angažiranje skupnosti je ključnega pomena

Ker so CIP predlogi bili že podani in tudi implementirani, se pričakuje, da bo refrenciranje skript in vnosov na platformi Plutus že vključeno v razcepu Vasil , ki načrtovan za junij. Proces podajanja predlogov skozi CIP-platformo daje skupnosti možnost, da sodeluje pri razvoju sisema Cardano skozi svoje predloge, diskusije in recenzije že obstoječih predlogov. Razvijalce zatorej vabimo, da se pridružijo diskusijam v sklopu CIP in tudi obiščejo repozitorij Cardanove CIP-platforme, kjer lahko dobijo še več informacij o tej temi.