5.3.1 Nameˇ sˇ canje strojne opreme
Ko smo dobili streˇznik, smo se nanj najprej povezali z lokalnim zaslonom in tipkovnico, da smo pognali diagnozo glavnega pomnilnika in trdih diskov. Ker diagnoza ni vrnila napak, smo za hitrejˇse branje in pisanje dva 300 GB velika diska nastavili v naˇcin RAID 0. Streˇznik smo nato namestili v streˇzniˇsko omaro in povezali na omreˇzno stikalo. Omreˇzno stikalo je povezano na usmerjevalnik, ki upravlja zasebno omreˇzje in je naprej povezan direktno na modem ponudnika internetnih storitev.
5.3.2 Nameˇ sˇ canje in nastavljanje operacijskega sistema
Nadaljeval sem z nameˇsˇcanjem operacijskega sistem Ubuntu Server 20.04.2 LTS, ki je potekalo brez zapletov. Prvi cilj na novem operacijskem sistemu je bil, da na njem omogoˇcimo dostop na daljavo, zato smo streˇzniku nastavili statiˇcni IP. Preden smo
omogoˇcili SSH, smo spremenili privzeto ˇstevilko vrat in prepovedali vstop komur koli, ki ne ustreza paru kljuˇcev iz naˇsega raˇcunalnika. Za dodatno zaˇsˇcito pred vdorom smo vzpostavili tudi poˇzarni zid in namestili programsko opremo Fail2ban [3]. Od te toˇcke naprej je bil glavni operacijski sistem na streˇzniku zaˇsˇciten in do njega smo lahko dostopali preko statiˇcnega raˇcunalnika v lokalnem omreˇzju. V naslednjem koraku smo z uporabo orodja KVM [5] vzpostavili dve navidezni napravi. Za laˇzje upravljanje odprtih vrat na usmerjevalniku morata navidezni v omreˇzju delovati avtonomno, zato smo nastavili navidezni most, ki omogoˇca, da se v omreˇzje poveˇzeta z lastnimi IP naslovi. Zatem smo na obeh navideznih napravah namestili enak operacijski sistem kot na samem streˇzniku. Na enak naˇcin smo vzpostavili tudi statiˇcen IP in varen dostop na daljavo. Z ukazno vrstico smo nastavili, da se ob zagonu streˇznika samodejno priˇzgeta tudi obe navidezni napravi.
5.3.3 Nameˇ sˇ canje Tezosove programske opreme
Pred nameˇsˇcanjem Tezosove programske opreme smo posodobili operacijski sistem na streˇzniku in navideznih napravah ter jih ponovno zagnali. Zaˇceli smo s prvim vozliˇsˇcem, ki deluje na testnem omreˇzju Florence. Najprej smo poskusili programske komponente vozliˇsˇca zgraditi lokalno iz izvorne kode, vendar smo naleteli na teˇzave z manjkajoˇcimi knjiˇznicami. Ker vse potrebne knjiˇznice niso bile jasno navedene za grajenje testnih programskih komponent iz izvorne kode, smo se odloˇcili izbrati laˇzjo pot in jih namestiti z uporabo programske opreme APT [1]. Ukazi za samodejni prenos in namestitev programskih komponent so prikazani na sliki 5.1.
Slika 5.1: Ukazi za prenos in namestitev Tezosove programske opreme.
Prvi ukaz posodobi seznam APT paketov, da bo pravilno prepoznal ostale Tezosove pakete, ki sestavljajo programske komponente vozliˇsˇca. Verzijo nameˇsˇcenih paketov smo preverili tako, da smo v ukazni vrstici poklicali paket tezos-node z zastavo --version. Izpis ukaza smo nato primerjali z najnovejˇso verzijo, ki je navedena na spletnem mestu.
Diplomska naloga 31
5.3.4 Registracija vozliˇ sˇ ca
Preden se lahko vozliˇsˇce prikljuˇci v omreˇzje, moramo zanj ustvariti unikatno identiteto z registracijo. Ustvarjena je zgolj omreˇzna identiteta, ki sluˇzi pri povezovanju v P2P omreˇzju in ni povezana z naslovi raˇcunov v verigi blokov. Vsebino ustvarjene identitete lahko izpiˇsemo tako, da se v vmesniku z ukazno vrstico najprej premaknemo v skrito mapo tezos-node in z naslednjim ukazom izpiˇsemo datoteko identity.json. Vsi ukazi za registracijo in izpis identitete so vidni na sliki 5.2. Identiteta vsebuje par kriptografskih kljuˇcev, ki jih vozliˇsˇca uporabljajo za ˇsifriranje medsebojno poslanih sporoˇcil in ˇzig proti neˇzelenim sporoˇcilom, ki dokazuje, da je bilo ustvarjanju te identitete namenjeno dovolj raˇcunalniˇske moˇci. Dokaz o delu poskrbi, da zlonamerna vozliˇsˇca ne morejo prehitro menjati svojih identitet, saj je naˇs streˇznik za generiranje veljavne identitete porabil skoraj dve minuti.
Slika 5.2: Ukaz za generiranje in izpis identitete Tezosovega vozliˇsˇca.
5.3.5 Nastavitve vozliˇ sˇ ca
Ko prviˇc zaˇzenemo vozliˇsˇce, se bo v Tezosovem omreˇzju predstavilo z novo ustvarjeno identiteto. Zatem zaˇcne graditi lokalno stanje verige blokov, kar vkljuˇcuje vse podatke od izvirnega bloka do danes. Navaden naˇcin usklajevanja preko P2P omreˇzja lahko traja veˇc dni, vendar lahko vozliˇsˇce ugasnemo in ponovno zaˇzenemo z vsaj delno poso-dobljenim stanjem verige, kar je ˇcas usklajevanja v naˇsem primeru skrajˇsalo na dve uri.
Zajeto stanje verige blokov lahko prenesemo iz temu namenjenih spletnih strani ali ga ustvarimo sami na drugem, usklajenem vozliˇsˇcu. Ko prejmemo zajeto stanje, je ne-mogoˇce preveriti, ali so prejeti podatki dejansko del trenutne glavne verige Tezosovega omreˇzja. Zato moramo v primeru, da zajeto stanje pridobimo iz nezaupljivega vira obvezno preveriti rezultat zgoˇsˇcevalne funkcije zadnjega bloka. Vrednost zgoˇsˇcevalne funkcije lahko primerjamo s tisto, ki jo zagotovi drugo vozliˇsˇce pod nadzorom uporab-nika, ali pa jo potrdimo z veˇc vozliˇsˇci zaupanja vrednih uporabnikov. Ostale
more-bitne neskladnosti med bloki bo vozliˇsˇce ob zagonu preverilo samodejno s ponovnim izraˇcunom vrednosti zgoˇsˇcevalnih funkcij v glavah vseh blokov, ki so vkljuˇceni v zaje-tem stanju.
Ker smo ˇzeleli, da se vozliˇsˇce poveˇze na testno omreˇzje Florence, smo pognali ukaz, ki spremeni nastavitve vozliˇsˇca, ki so privzeto nastavljene za glavno omreˇzje. Nato smo prenesli zajeto stanje verige blokov iz spletnega mesta XTZ-Shots [25] in preverili veljavnost prenesenih podatkov. Izbrali smo srednje teˇzek arhiv, ki se je z velikostjo 20 GB prenaˇsal 40 minut. Nastavitve vozliˇsˇca in prenos zajetega stanja naredimo s prvim in drugim ukazom na sliki 5.3. Zadnji ukaz na sliki pa zajeto stanje verige blokov pravilno uvozi v mapo vozliˇsˇca in vsebuje tudi rezultat zgoˇsˇcevalne funkcije zadnjega bloka.
Slika 5.3: Ukazi za spremembo privzetih nastavitev in prenos zajetega stanja verige blokov.