ERK'2022, Portorož, 68-71 68 Prototipni IoT sistem s tehnologijo blokovnih verig Hyperledger Fabric Gaˇ sper Pirnat 1 , doc. dr. Matevˇ z Pustiˇ sek 1 1 Univerza v Ljubljani, Fakulteta za elektrotehniko, Trˇ zaˇ ska cesta 25, Ljubljana E-poˇ sta: gp5302@student.uni-lj.si Abstract Abstract.This paper presents a proof-of-concept IoT sys- tem based on the Hyperledger Fabric blockchain tech- nology. As IoT systems governed by different entities are becoming ever more interconnected and complex, a need arises for trusted interoperability, transaction integrity and automation between such systems. In some cases, the use of blockchain technology can improve trust, de- vice autonomy and ease automation and M2M commu- nications. We created a proof-of-concept IoT system by adding low-cost Wi-Fi microchips ESP8266 to simple air quality sensors to give them Wi-Fi connectivity. These sensors then transmit their readings over an IP network to an edge gateway that can submit the data to the block- chain network, where it is then stored in the name of their respective organization. We conclude that such a system would be feasible and meaningful if it were deployed on a much larger scale with many more features, for example in a smart city. 1 Uvod Digitalizacija delovnih procesov v modernih ˇ casih s sabo prinaˇ sa ˇ zeljo po ˇ cim veˇ cji interoperabilnosti in avtoma- tiziranosti med digitalnimi sistemi. Zaradi te ˇ zelje se je razvil sedaj ˇ ze dobro poznan koncept interneta stvari. Ker postajajo sistemi interneta stvari, ki jih upravljajo razliˇ cni subjekti vedno bolj medsebojno povezani in zapleteni, se pojavlja potreba po inherentno zaupanja vredni intero- perabilnosti med takimi sistemi. V nekaterih primerih lahko uporaba tehnologije veriˇ z- enja blokov to omogoˇ ci, saj izboljˇ sa zaupanje in avtono- mijo naprav ter poenostavi avtomatizacijo in komunika- cijo stroj-stroj (M2M) [1]. Kot predstavitev ene izmed tehnologij za ustvarjanje omreˇ zja ki uporablja veriˇ zenje blokov smo ustvarili konceptni sistem IoT tako, da smo naˇ sim senzorjem kakovosti zraka IKEA Vindriktning [2] dodali poceni mikroˇ cipe Wi-Fi ESP8266, da jim omogoˇ c- imo Wi-Fi povezljivost. Ti senzorji nato prenesejo svoje odˇ citke prek IP protokola do robnega prehoda, ki jih v imenu svoje organizacije shrani v blokovno verigo. Omreˇ zje blokovnih verig je zgrajeno z tehnologijo Hyperledger Fabric, ki nam omogoˇ ca kontrolo nad tem kdo se lahko omreˇ zju pridruˇ zi in tudi kaj lahko znotraj njega poˇ cne, kar nam da nekaj kljuˇ cnih prednosti pred javnimi decentraliziranimi omreˇ zji blokovnih verig, pred- vsem pa moˇ cno omili glavne slabosti decentraliziranih omreˇ zij v kontekstu IoT uporabe, ohrani pa pomembnejˇ se prednosti. Tak sistem je zelo skalabilen in zato primeren za upo- rabo v industriji, pametnih mestih, logistiki oz. transportu ter podobnih podroˇ cjih. V drugem poglavju je podrob- nejˇ sa predstavitev tehnologije Hyperledger Fabric v pri- merjavi z bolj znanimi tehnologijami blokovnih verig, v tretjem je pa predstavljena izvedba IoT reˇ sitve z Hyper- ledger Fabric tehnologijo. 2 Hyperledger Fabric Hyperledger Fabric je tehnologija za vzpostavitev decen- traliziranega konzorcijskega omreˇ zja z omejenim dostop- om[3]. Primarno je namenjeno uporabi, kjer si dve ali veˇ c organizacij ˇ zelijo transparentno sodelovanje brez med- sebojnega zaupanja. Podobno kot ostale tehnologije za decentralizirana omreˇ zja omogoˇ ca hranjene za nazaj ne- spremenljivih porazdeljenih evidenc, ki so rezultat po- ljubno definiranih transakcij sredstev med entitetami razli- ˇ cnih organizacij. Hyperledger Fabric se razlikuje od veˇ cine drugih teh- nologij blokovnih verig v tem da je omreˇ zje ki ga z njim postavimo javnosti nedostopno, v njem lahko sodelujejo samo tisti ki so del konzorcija organizacij, ki so omreˇ zje vzpostavile. ˇ Se veˇ c, vsak udeleˇ zenec ima tudi natanˇ cno predpisano vlogo v omreˇ zju, ki omejuje kaj lahko sploh poˇ cne. S tem je odpravljena zahteva za protokole, kot je dokaz o delu (ang. proof-of-work) za potrditev tran- sakcij, saj se ˇ clani takega omreˇ zja vˇ clanijo prek zaupanja vrednega ponudnika storitev ˇ clanstva (ang. membership service provider, MSP), njihova identiteta je znana, mo- rebitno ˇ skodoˇ zeljno delovanje pa je tako lahko kaznovano z izkljuˇ citvijo iz omreˇ zja in legalnimi posledicami. Znotraj Hyperledger Fabric omreˇ zja definiramo ka- nale, ki jih uporabljamo za logiˇ cno loˇ citev procesov v omreˇ zju. V omreˇ zju imamo lahko poljubno ˇ stevilo ka- nalov. So kljuˇ cni za delovanje omreˇ zja, saj se poraz- deljena evidenca ustvari znotraj kanala in je tako vidna samo udeleˇ zencem kanala. To je posebej pomembno za omreˇ zja, v katerih imamo konkurente, ki si ne ˇ zelijo, da bi bila vsaka njihova transakcija znana vsem v omreˇ zju. Prednost take strukture je tudi poveˇ cana varnost. 69 2.1 Hyperledger Fabric elementi Naslednje sekcije predstavljajo kljuˇ cne komponente za sestavo in delovanje Hyperledger Fabric omreˇ zja. 2.1.1 Sredstva Sredstva, s katerimi poslujemo, so lahko opredmetena (premiˇ cnine in nepremiˇ cnine) ali neopredmetena (inte- lektualna lastnina, pogodbe, ipd.). Hyperledger Fabric omogoˇ ca spreminjanje lastnikov ali pa lastnosti sredstev z uporabo pametnih pogodb. Sredstva so v Hyperledger Fabric predstavljena kot zbirka parov kljuˇ c-vrednost v bi- narni obliki ali obliki JSON, spremembe stanja pa so za- beleˇ zene kot transakcije v blokovni verigi. 2.1.2 Porazdeljene evidence V porazdeljeni evidenci je zaporedni zapis vseh prehodov stanj oziroma transakcij, ki je odporen proti spreminja- nju za nazaj. Prehodi med stanji so rezultat klicev pame- tnih pogodb. Rezultat vsakega klica je niz parov kljuˇ c- vrednost, ki se vnese v evidenco kot ustvaritev, posodo- bitev ali izbris nekega sredstva. Slika 1: Diagram porazdeljene evidence: [4] Porazdeljeno evidenco sestavlja blokovna veriga v ka- tero shranjujemo transakcije ter podatkovna zbirka v obliki relacijske baze, ki odraˇ za trenutno stanje sredstev, kot po- sledico vseh preteklih transakcij. Podatkovna zbirka nam omogoˇ ca, da na hiter in enostaven naˇ cin pridobimo vpo- gled v trenutno stanje nekega sredstva brez da bi morali po blokovni verigi iskati zadnjo transakcijo, ki vkljuˇ cuje to sredstvo. Na kanal je ena porazdeljena evidenca, vsak sodelujoˇ c pa vzdrˇ zuje kopijo za vsak kanal, katerega ˇ clan je. 2.1.3 Pametne pogodbe Pametne pogodbe so programska oprema, ki opredelju- jejo navodila transakcij za branje, spreminjanje ali ustvar- janje sredstev. Omogoˇ cajo deterministiˇ cno izvedbo po- slovne logike, ki se hkrati zapiˇ se tudi v blokovno verigo. Veriˇ zna koda uveljavlja pravila za branje ali spreminja- nje parov kljuˇ c-vrednost ali drugih informacij v podat- kovni zbirki stanja. Pametne pogodbe se izvajajo proti trenutnemu stanju porazdeljenih evidenc in se sproˇ zijo s predlogom transakcije. Rezultat izvajanja je niz zapisov kljuˇ c-vrednost, ki se poˇ slje v omreˇ zje in zapiˇ se v poraz- deljeno evidenco. 2.1.4 Kanali in zasebnost Kot ˇ ze omenjeno, Hyperledger Fabric uporablja poraz- deljene evidence po posameznih kanalih. ˇ Ce imamo v omreˇ zju samo en kanal, to pomeni da se porazdeljena evi- denca efektivno deli po celotnem omreˇ zju. Kanal je v nekem omreˇ zju ustvarjen tako, da se veˇ c organizacij med seboj domeni o konfiguraciji kanala. Kon- figuracija kanala doloˇ ca katere organizacije so ˇ clanice ka- nala, kdo so vozliˇ sˇ ca in kaj bo njihova vloga, pravila za dodajanje in izvajanje pametnih pogodb pa tudi pogoje za spremembe nastavitev kanala. Vsaka organizacija to kon- figuracijo digitalno podpiˇ se, nato pa se shrani v prvi blok verige. ˇ Ce posodobitev kanala odobri zadostno ˇ stevilo organizacij, oziroma ˇ ce je zadoˇ sˇ ceno pogojem za spre- membo konfiguracije, se nova konfiguracija doda v nov blok v verigi in od takrat naprej velja ta konfiguracija ka- nala. Upoˇ steva se torej konfiguracijo, ki je bila dodana zadnja v verigo. 2.1.5 Konsenz in vozliˇ sˇ ca Do sedaj so bile predstavljene funkcionalnosti Hyperled- ger Fabric omreˇ zja, niso pa bili ˇ se predstavljeni meha- nizmi in strukture za doseganje teh funkcionalnosti. Za obstoj porazdeljenih evidenc moramo seveda imeti neke osebke katerim te evidence sploh porazdelimo, prav tako potrebujemo osebke, ki bodo izvajali pametne pogodbe. Tej osebki pa morejo tudi nujno imeti nek mehanizem za doseganje konsenza o posodobitvah porazdeljene listine z transakcijami in v kakˇ snem vrstnem redu se bodo tran- sakcije oz. spremembe zapisovale. Za dosego teh ciljev se uporabljajo dve vrsti vozliˇ sˇ c. Na sploˇ sno so vozliˇ sˇ ca entitete, ki imajo pooblastilo svo- jih organizacij, da v njihovem imenu sprejemajo konsenz za posodobitev porazdeljenih listin, izvajajo pametne po- godbe ter doloˇ cajo vrstni red posodobitev. Odgovornost za sprejem konsenza za posodobitev li- stin in izvajanje pametnih pogodb prevzamejo vrstniˇ ska vozliˇ sˇ ca. Da lahko opravlja to delo mora hraniti kopijo porazdeljene listine ter kodo pametnih pogodb. Ker pa je gostitelj teh storitev morajo vse aplikacije in skrbniki omreˇ zja za dejansko interakcijo z omreˇ zjem uporabljati vrstniˇ ska vozliˇ sˇ ca. Druga vrsta vozliˇ sˇ c so urejevalna vozliˇ sˇ ce. Naloga teh vozliˇ sˇ c je, da sprejemajo v obdelavo transakcije, ki jih prejemajo od udeleˇ zencev v omreˇ zju. Preveriti mo- rajo ali imajo zadostno ˇ stevilo podpisov vrstniˇ skih vo- zliˇ sˇ c ter doloˇ citi v kakˇ snem vrstnem redu bodo zapisane v blokovno verigo. Nato veˇ c obdelanih transakcij zapiˇ se v blok, ki ga porazdeli med vsa vrstniˇ ska vozliˇ sˇ ca v omreˇ zju. Tako imajo vsa vrstniˇ ska vozliˇ sˇ ca v svojih porazdeljenih listinah zapisane ne le vse transakcije, vendar so tudi v enakem vrstnem redu. Poleg ˇ stevilnih preverjanj veljavnosti transakcij ki se izvajajo, se v vseh smereh toka transakcij izvajajo tudi stalna preverjanja identitete. Vsako vozliˇ sˇ ce ki prejme neko transakcijo v pregled za odobritev preveri identitete vseh ostalih vozliˇ sˇ c ki so transakcijo ˇ ze odobrile. 70 2.1.6 Identifikacija in preverjanje istovetnosti Za varno delovanje vseh do sedaj opisanih elementov mo- ramo nujno imeti mehanizme, ki omogoˇ cajo identifika- cijo akterjev v omreˇ zju in preverjanje njihove istovetno- sti. V nasprotnem primeru bi lahko priˇ slo do nelegiti- mnih dogodkov v omreˇ zju kot so ponarejanje identitete, onemogoˇ canje storitev, sprejemanja laˇ znih podatkov in podobno. Ker je Hyperledger Fabric po naravi zaprt sistem in je anonimnost nezaˇ zelena za razliko od javnih decentra- liziranih tehnologij, je ta problematika reˇ sena na preprost naˇ cin z uporabo organov za overjanje certifikatov (ang. certificate authority, CA). Vsaka organizacija ima svojo identiteto registrirano pri izbranem organu za overjanje. Z uporabo te identitete lahko potem izdaja dodatne iden- titete osebkom, ki v omreˇ zju delujejo v imenu organiza- cije. Pomembno je omeniti tudi, da je v sklopu identitete ki je izdana osebkom doloˇ cena tudi vloga, ki jo bo ose- bek imel v omreˇ zju. Te vloge so zapisane v konfiguracij- skem bloku kanala in natanˇ cno doloˇ cajo kaj lahko osebek v omreˇ zju poˇ cne. 3 Prototipni IoT sistem Prototipni IoT sistem je bil sestavljen z namenom preiz- kusa Hyperledger Fabric tehnologije. Kljuˇ cno je bilo, da koristi veˇ cino funkcionalnosti Hyperledger Fabric tehno- logije, saj lahko le tako naredimo sistem, ki je reprezen- tativen produkcijski uporabi. V ta namen smo vzpostavili omreˇ zje v katerem sodeluje veˇ c organizacij, vsaka s svo- jimi IoT napravami. Tako smo lahko preizkusili posta- vljanje omreˇ zja, ustvarjanje kanalov in doloˇ canje vlog, izvajanje pametnih pogodb, doseganje konsenza ter po- sodabljanje porazdeljene listine. V ta namen smo predelali veˇ c komercialnih izdelkov za merjenje kvalitete zraka IKEA Vindriktning tako, da smo jim dodali mikroˇ cip, ki omogoˇ ca brezˇ ziˇ cno povezlji- vost. Vsak senzor pripada eni izmed organizacij in je vir informacij, ki se zapisujejo v porazdeljeno listino. 3.1 Izdelava IoT naprav Uporabljen izdelek s senzorjem za kvaliteto zraka je IKEA Vindriktning. Sestavljen je iz Cubic PM1006 senzorja za trde delce PM2.5, ventilatorja in mikrokontrolerja Ea- stsoft ES7P001FGS, ki kontrolira ventilator in odˇ citava vrednosti s senzorja. Na sliki 2 lahko vidimo oznaˇ ceno vezje izdelka, ki omogoˇ ca direktno branje senzorskih odˇ citkov preko te- stne toˇ cke. Na to toˇ cko smo povezali Wemos D1 mini mikroˇ cip, prav tako smo ga povezali na GND in 5V pri- kljuˇ cke, da smo omogoˇ cili napajanje in prenos podatkov. Na Wemos D1 mini smo naloˇ zili preprosto kodo, ki bere senzorske podatke ter jih preko lokalnega Wi-Fi omreˇ zja preko UDP protokola dostavi na robni prehod, ki je po- vezan v Hyperledger fabric omreˇ zje. 3.2 Vzpostavitev IoT sistema s Hyperledger Fabric tehnologijo/orodji Za vzpostavitev sistema nam Hyperledger Fabric nudi na voljo binarne programe, ki izvajajo vlogo vozliˇ sˇ c, na vo- Slika 2: 1: Wemos D1 mini, 2: Testna toˇ cka, 3: Vezje izdelka ljo pa so tudi binarni programi, ki ob izvajanju lahko de- lujejo kot organi za izdajanje identitet. Priporoˇ ceno je, da jih izvajamo v Docker zabojnikih, saj nam to omogoˇ ci, da jih na preprost naˇ cin konfiguriramo in vzpostavimo pove- zave le teh preko razliˇ cnih gostiteljev in omreˇ zij. Takˇ snega pristopa smo se posluˇ zili tudi mi, saj nam je omogoˇ cil preprosto testiranje komunikacije med vozliˇ sˇ ci ki so de- lovala v razliˇ cnih omreˇ zjih in na razliˇ cnih raˇ cunalnikih. Prvi korak pri vzpostavljanju delujoˇ cega sistema je bil generiranje identitet za vsako od organizacij in njenih predstavnikov, ki bodo delovali v sistemu. To smo storili z orodjem Cryptogen, ki je priloˇ zeno v nabor Hyperled- ger Fabric orodij in je namenjeno za uporabo v testnih okoljih. Omogoˇ ca nam generiranje asimetriˇ cnih parov kljuˇ cev, ki jih lahko uporabimo za identiteto osebkov ali pa za enkripcijo medsebojne komunikacije preko TLS protokola. V naˇ sem primeru smo ustvarili tri organiza- cije, od tega sta dve v omreˇ zje dodajali podatke iz IoT senzorjev, vsaka preko svojega vrstniˇ skega vozliˇ sˇ ca, tre- tja pa je prevzela odgovornost za urejevalno vozliˇ sˇ ce, ki je koordiniralo konsenz med prvima dvema. Za organiza- ciji, ki v omreˇ zje dodajata podatke smo ustvarili identiteti katerim smo pripisali vlogo vrstniˇ skih vozliˇ sˇ c. Prav tako smo ustvarili ˇ se identiteto z vlogo urejevalnega vozliˇ sˇ ca, ki je pripadalo tretji organizaciji. V logiˇ cnem smislu sedaj obstajajo vsi potrebni ak- terji za vzpostavitev sistema, med seboj se lahko tudi za- nesljivo identificirajo, saj organizacije izmenjajo javne kljuˇ ce svojih identitet izven sistema, ki ga ˇ zelijo vzpo- stavit, prav tako pa je komunikacija v sistemu ˇ sifrirana z uporabo TLS protokola. Naslednji korak je bil zagon vozliˇ sˇ c v Docker zaboj- nikih, ki bodo izvajala naloge svojih organizacij v omreˇ zju. Vsakemu smo morali podati primerne certifikate s kate- rimi se je lahko v omreˇ zju identificiral in overjal identi- tete ostalih vozliˇ sˇ c.V produkcijskih sistemih ta pristop ne 71 bi bil primeren, saj zmanjˇ suje varnost in oteˇ zuje razvelja- vljanje identitet. V takih sistemih bi morali obvezno upo- rabiti organe za certificiranje identitet, katere bi vozliˇ sˇ ca uporabljala za periodiˇ cno preverjanje identitet osebkov s katerimi komunicira. Dodajamo ˇ se, da Hyperledger Fa- bric ponuja orodje za ustvarjanje organov za certificiranje identitet, lahko pa bi uporabljali tudi komercialne reˇ sitve. Ko smo postavili vozliˇ sˇ ca in je komunikacija med njimi bila zavarovana in verificirana smo lahko priˇ celi z genezo decentraliziranega omreˇ zja za naˇ s sistem. Pri tem je prvi korak bil ustvarjanje konfiguracijske datoteke, ki je doloˇ cila vloge in pravila delovanja na kanalu. O vse- bini te datoteke se organizacije pomenijo preden sploh pride do tehnoloˇ ske izvedbe, zato jo naˇ celoma lahko ima vsako vozliˇ sˇ ce ˇ ze ob sami vzpostavitvi. Vsako vozliˇ sˇ ce je to datoteko digitalno podpisalo, za dodajanje v poraz- deljeno listino pa je poskrbelo urejevalno vozliˇ sˇ ce, ki je z uporabo RAFT protokola[5] zapisalo konfiguracijo v blo- kovno verigo in poskrbelo, da je vsem porazdeljena enaka verzija. V tem trenutku je bil kanal logiˇ cno ustvarjen, prav tako porazdeljena evidenca saj so imeli vsi enako konfiguracijsko datoteko iz katere so lahko ustvarili prvi blok v blokovni verigi. 3.3 Uvedba IoT naprav v omreˇ zje preko pametnih pogodb Za uvedbo IoT naprav v omreˇ zje smo morali najprej na- mestiti naˇ so pametno pogodbo na vsa vrstniˇ ska vozliˇ sˇ ca, saj smo tako doloˇ cili v konfiguraciji kanala. Lahko bi se tudi odloˇ cili za pristop kjer je potrebno da ima pametno pogodbo samo polovica vozliˇ sˇ c, v naˇ sem primeru bi to bilo samo 1 vozliˇ sˇ ce, vendar bi to pomenilo da za sprejem transakcij ne bi potrebovali potrditev ˇ se drugega vozliˇ sˇ ca. V pametni pogodbi so bile funkcije, ki so doloˇ cale kako se bo izpis iz senzorjev zapisoval v porazdeljeno listino. Zapisovale so se identifikacijske ˇ stevilke IoT naprav sku- paj s trenutnim odˇ citkom vrednosti na senzorju v obliki kljuˇ c-vrednost. Nato smo v JavaScript-u napisali ˇ se aplikacijo, ki je delovala kot posrednik med IoT senzorjem in vrstniˇ skim vozliˇ sˇ cem. Aplikaciji smo morali ustvariti identiteto, ki je pripadala eni izmed organizacij, saj je to pogoj, da vozliˇ sˇ ca sprejmejo predloge transakcij v obdelavo. Na omreˇ zju kjer je delovala IoT naprava je posluˇ sala za UDP promet na doloˇ cenih vratih nato pa je iz vsebine sporoˇ cil ustvarjala predloge transakcij, ki jih je poslala v podpis obema vrstniˇ skima vozliˇ sˇ cema nato pa ˇ se urejevalnemu vozliˇ sˇ cu, ki je poskrbel da se je transakcija zapisala v po- razdeljeno listino. Sistem je v tej toˇ cki bil vzpostavljen in delujoˇ c. Po- datke ki so prihajali s senzorjev je sistem obdeloval in zapisoval v porazdeljene listine, pri tem pa uporabljal vse mehanizme, ki bi se uporabljali v produkcijskem sistemu. 4 Zakljuˇ cek Pri vzpostavitvi IoT sistema s Hyperledger Fabric tehno- logijo smo preverili sestavne dele in njihovo uˇ cinkovitost. Ugotovili smo, da je sistem v smislu obdelovanja transak- cij zelo uˇ cinkovit, saj za doseganje konsenza uporablja v osnovi digitalno podpisovanje transakcij, za distribu- cijo podatkov pa etcd[6], ki uporablja uˇ cinkovit RAFT algoritem. Sam sistem ne doda raˇ cunskega bremena na IoT naprave, razen ˇ ce se za to odloˇ cimo, zato je prime- ren za uporabo tudi v primeru nizko zmogljivih baterij- skih IoT naprav. Sama postavitev omreˇ zja je odvisna od ˇ zelene uporabe in je zelo prilagodljiva. Celotno omreˇ zje je lahko postavljeno in deluje v megli (ang. fog compu- ting) na nizkocenovnih napravah kot so Raspberry Pi, kar nam omogoˇ ca lokalizirane sisteme, ki ne zahtevajo ko- munikacije z oddaljenimi streˇ zniki v oblaku. Mehanizmi, ki sistemu postavljenim s Hyperledger Fabric tehnologijo dajejo prednosti pa istoˇ casno povzroˇ cajo tudi slabosti. Tak sistem ni zelo odporen na zlonamerno delovanje udeleˇ zencev, saj mehanizmi sistema tega ne omogoˇ cajo. ˇ Skodoˇ zeljen udeleˇ zenec lahko zavira spre- jemanje konsenza, ustvarja neveljavne transakcije in one- mogoˇ ca storitve. Ob takih primerih morajo ostali udeleˇ zenci identificirati in izloˇ citi take udeleˇ zence iz sistema. Ker pa je namenjena uporaba Hyperledger Fabric tehnologije v sistemih, kjer imamo moˇ znost in ponavadi tudi zahte- vamo, da se vsak udeleˇ zenec pravno identificira, njegova identiteta pa je vezana na njegovo delovanje v sistemu to pomeni da za razliko od javnih decentraliziranih omreˇ zij lahko take udeleˇ zence veliko enostavneje pravno kaznu- jemo. Literatura [1] Andrej Kos, Natasa Zivic, Matevz Pustisek: Blockchain: Technology and Applications for Industry 4.0, Smart Energy, and Smart Cities [2] IKEA Vindriktning, https://www.ikea.com/si/sl/p/vindriktning- senzor-kakovosti-zraka-80515910/ [3] Androulaki, Elli and Barger, Artem and Bortnikov, Vita and Cachin, Christian and Christidis, Konstantinos and De Caro, Angelo and Enyeart, David and Ferris, Christopher and Laventman, Gennady and Manevich, Yacov and Mu- ralidharan, Srinivasan and Murthy, Chet and Nguyen, Binh and Sethi, Manish and Singh, Gari and Smith, Keith and Sorniotti, Alessandro and Stathakopoulou, Chrysoula and Vukoli´ c, Marko and Cocco, Sharon Weed and Yellick, Ja- son:Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains, 2018, Association for Com- puting Machinery [4] https://hyperledger-fabric.readthedocs.io/en/latest/ledger/ledger.html [5] RAFT, https://raft.github.io/ [6] etcd, https://etcd.io/