• Rezultati Niso Bili Najdeni

Testiranje delovanja vozliˇsˇ ca

Za testiranje Tezosovega vozliˇsˇca na testnem omreˇzju smo sprva namenili mesec dni, vendar smo zaradi dobrih rezultatov obdobje podaljˇsali za nekaj tednov. Zahteve za strojno in programsko opremo smo uspeˇsno izpolnili v fazi nameˇsˇcanja in vzdrˇzevanja strojne in programske opreme, strojna oprema je namreˇc prenesla vse obremenitve obeh vozliˇsˇc. Tudi programska oprema v kombinaciji z operacijskim sistemom Ubuntu Server 20.04.2 LTS se je izkazala za zanesljiv pristop gostovanja, saj je v celotnem ob-dobju testiranja delovala brez prekinitve. Izbrana konfiguracija varnostne programske opreme je uspeˇsno prepreˇcila vse poskuse vdora.

Za glavni parameter, s katerim smo merili uspeˇsnost vozliˇsˇca, smo v fazi analize 5.1 doloˇcili cilj vsaj 98-odstotno zanesljivosti vozliˇsˇca. Vozliˇsˇce je za dosego cilja uspeˇsno izpolnilo zastavljen pogoj, da mora od 50 zaporedno dodeljenih blokov ustvariti vsaj

49 in medtem tudi od 1500 dodeljenih potrditvenih reˇz zapolniti vsaj 1470. V obdo-bju testiranja smo namreˇc od 100 zaporedno dodeljenih blokov uspeˇsno ustvarili vseh 100 in na enak naˇcin zapolnili tudi vseh 3000 dodeljenih potrditvenih reˇz. Vozliˇsˇce je tako v obdobju dveh mesecev izpolnilo vse dodeljene pravice. Ob tem obtoˇzevalec na vozliˇsˇcu ni v omreˇzje oddal nobene operacije obtoˇzbe, ki bi kazala na nepoˇsteno ali nepravilno delovanje drugih vozliˇsˇc v omreˇzju. Uspeˇsnost vozliˇsˇca smo tako na koncu izmeril s 100-odstotno zanesljivostjo. Tako visoko zanesljivost smo lahko dosegli, ker smo med vzdrˇzevanjem spremljali urnik dodeljenih pravic in zagotovili delovanje vo-zliˇsˇca za nagrado ob vsaki priloˇznosti. Primer urnika, ki je dosegljiv na spletnem mestu TzKT [18], vidimo na zaslonski sliki 5.9. Vrednost 100-odstotne zanesljivosti vozliˇsˇca bi verjetno padla, ˇce bi bil v obdobju testiranja na streˇzniku za daljˇsi ˇcas prekinjen dovod elektriˇcne energije ali interneta, vendar se to ni zgodilo. Po zakljuˇcenem ob-dobju testiranja smo vozliˇsˇce pustili priˇzgano z namenom, da ˇse naprej prispeva pri preizkuˇsanju novega protokola, vendar se je testno omreˇzje Florence kmalu zakljuˇcilo.

Nato smo testno vozliˇsˇce skupaj s prvo navidezno napravo ugasnili.

Diplomska naloga 37

Slika 5.9: Primer urnika dodeljenih pravic za ustvarjanje blokov in zapolnitev potrdi-tvenih reˇz.

Poglavje 6

Izvajanje pametnih pogodb

6.1 Analiza

Pred izvajanjem pametnih pogodb smo se morali v fazi analize poduˇciti o Tezosovih pa-metnih pogodbah. Da bi lahko doloˇcili zahteve za preizkus pametnih pogodb, moramo namreˇc najprej vedeti, kaj se lahko z njimi naredi. V poglavju 3.5 smo opisal glavne razlike med razliˇcnimi standardi finanˇcnih aplikacij na Tezosovi verigi blokov. Odloˇcili smo se, da bomo ustvarili, objavili in testirali dve pametni pogodbi. Za namen pame-tnih pogodb smo doloˇcili, da sluˇzita za primer uporabe v namiˇsljeni videoigri. Prva pametna pogodba bo ustrezala standardu FA1.2 in bo omogoˇcala kreacijo in poˇsiljanje deljivih ˇzetonov, ki lahko v igri predstavljajo glavno menjalno sredstvo. Glavno me-njalno sredstvo v namiˇsljeni videoigri bo zlato, zato bomo ta ˇzeton oznaˇcili s simbolom ZLT. Druga pametna pogodba pa bo ustrezala standardu FA2 in bo v igri predsta-vljala primer dragocenega predmeta, katerega lahko igralci na verigi blokov trgujejo kot unikaten nedeljiv ˇzeton (ang. NFT). Prva zahteva je torej, da ustvarimo dve pa-metni pogodbi, ki ustrezata glavnim standardom finanˇcnih aplikacij na Tezosovi verigi blokov. Ker lahko Tezosove pogodbe ustvarimo z razliˇcnimi pristopi, smo se odloˇcili, da za vsako pogodbo testiramo drugo orodje, ki bo doloˇceno v fazi naˇcrtovanja. Zadali smo si, da ustvarjene pogodbe uspeˇsno objavimo na glavnem omreˇzju ter testiramo ustvarjanje deljivih in nedeljivih ˇzetonov ter interakcije z njimi. Vsaka sprememba stanja na Tezosovem glavnem omreˇzju nekaj stane, zato bi radi zabeleˇzili tudi stroˇske vseh opravljenih operacij. Dodatna zahteva je, da celoten postopek podrobno doku-mentiramo.

39

6.2 Naˇ crtovanje

V fazi analize smo raziskali, kaj lahko naredimo s pametnimi pogodbami, v fazi naˇcrtovanja pa moramo odkriti, kako izbrane zahteve izpolniti. Doloˇcili smo, da bo prva glavna pogodba, ki ustreza standardu FA1.2, zasnovana v programskem jeziku PascaLIGO. PascaLIGO je namreˇc eden najstarejˇsih visokonivojskih jezikov za Tezo-sove pametne pogodbe, kar pomeni, da lahko na spletu v tem jeziku najdemo tudi veliko primerov uporabe z razlago. ˇZeleli smo odkriti dober pristop za tiste, ki imajo nekaj izkuˇsenj s programiranjem in bi radi tudi sami pregledali ali prilagodili izvorno kodo pametne pogodbe. Poleg glavne pogodbe, ki omogoˇca prenos deljivih ˇzetonov, smo v povezavi naˇcrtovali ˇse dve posredniˇski pogodbi. Prva posredniˇska pogodba nosi le metapodatke o ˇzetonu, ki vkljuˇcujejo kratico in ime ˇzetona, saj standard FA1.2 teh podatkov ne vkljuˇcuje v glavno pogodbo. Druga posredniˇska pogodba pa na verigi blokov sluˇzi kot skladiˇsˇce za vrednosti, ki jih vrnejo doloˇcene interakcije z glavno po-godbo. Primer tovrstne interakcije je poizvedba, ki zahteva maksimalno ˇstevilo izdanih ˇ

zetonov v pogodbi. Kadar uporabnik sproˇzi katero koli interakcijo, se njena funkci-onalnost ne izvede v resniˇcnem ˇcasu, temveˇc jo izvede vozliˇsˇce, ki operacijo vkljuˇci v blok. Rezultat poizvedbe se tako ne more takoj izpisati uporabniku, se pa lahko zapiˇse v skladiˇsˇce posredniˇske pametne pogodbe, ki je ustvarjena posebno v ta namen, ko vozliˇsˇce operacijo vkljuˇci v veljaven blok.

Za drugo glavno pogodbo smo izbrali laˇzji pristop z uporabo orodja FA2-SmartPy.

FA2-SmartPy za zaˇcetnike abstrahira testiranje FA2 standarda tako, da iz seznama petnajstih pametnih pogodb preprosto izberemo ustrezno pogodbo. Za vsako pogodbo na seznamu navaja njene lastnosti, da jih med seboj laˇzje primerjamo. Skupaj z izvorno kodo vseh pogodb v programskem jeziku Michelson tako omogoˇca objavo in testiranje razliˇcnih pametnih pogodb tudi uporabnikom brez znanja o programiranju. Za primer namiˇsljene videoigre smo iz seznama izbrali pametno pogodbo, ki omogoˇca tiskanje in prenos nedeljivih ˇzetonov, ki lahko v igri predstavljajo dragocene predmete. Dodatne pogodbe v naˇsem primeru uporabe FA2 standarda niso potrebne, saj metapodatke o ˇ

zetonih poleg drugih dodatnih funkcionalnosti vsebuje ˇze glavna pogodba.

Za objavo in testiranje pametnih pogodb smo naˇcrtoval tri nove uporabnike na glavnem omreˇzju. Vsi primeri uporabnikov, ki smo jih potrebovali za testiranje vo-zliˇsˇca, so bili namreˇc ustvarjeni na testnem omreˇzju.

Diplomska naloga 41