Å ajÄ rakstÄ es runÄÅ”u par to, kÄ mÄs mÄÄ£inÄjÄm izveidot decentralizÄtu motorolleru nomu, pamatojoties uz viedajiem lÄ«gumiem un kÄpÄc mums joprojÄm bija nepiecieÅ”ams centralizÄts pakalpojums.
KÄ tas viss sÄkÄs
2018. gada novembrÄ« mÄs piedalÄ«jÄmies hakatonÄ, kas bija veltÄ«ts lietu internetam un blokÄ·Ädei. MÅ«su komanda kÄ ideju izvÄlÄjÄs skrejriteÅu koplietoÅ”anu, jo mums bija skrejritenis no Ŕī hakatona sponsora. Prototips izskatÄ«jÄs kÄ mobilÄ lietojumprogramma, kas ļauj iedarbinÄt skrejriteni, izmantojot NFC. No mÄrketinga viedokļa ideju atbalstÄ«ja stÄsts par "gaiÅ”o nÄkotni" ar atvÄrtu ekosistÄmu, kurÄ ikviens var kļūt par Ä«rnieku vai saimnieku, un tas viss ir balstÄ«ts uz viedajiem lÄ«gumiem.
MÅ«su ieinteresÄtajÄm pusÄm Ŕī ideja ļoti patika, un viÅi nolÄma to pÄrvÄrst par prototipu izstÄdÄ«Å”anai izstÄdÄs. PÄc vairÄkÄm veiksmÄ«gÄm demonstrÄcijÄm Mobile World Congress un Bosch Connected World 2019. gadÄ tika nolemts pÄrbaudÄ«t skrejriteÅa nomu ar reÄliem lietotÄjiem, Deutsche Telekom darbiniekiem. TÄpÄc mÄs sÄkÄm izstrÄdÄt pilnvÄrtÄ«gu MVP.
Blockchain uz kruÄ·iem
NedomÄju, ka ir vÄrts skaidrot, kÄda ir atŔķirÄ«ba starp projektu, kas jÄrÄda uz skatuves, un tÄdu, ko izmantos Ä«sti cilvÄki. SeÅ”u mÄneÅ”u laikÄ mums bija jÄpÄrvÄrÅ” neapstrÄdÄts prototips par kaut ko piemÄrotu pilotam. Un tad mÄs sapratÄm, ko nozÄ«mÄ āsÄpesā.
Lai padarÄ«tu mÅ«su sistÄmu decentralizÄtu un atvÄrtu, mÄs nolÄmÄm izmantot Ethereum viedos lÄ«gumus. IzvÄle krita uz Å”o decentralizÄto tieÅ”saistes pakalpojumu platformu tÄs popularitÄtes un iespÄjas izveidot bezservera lietojumprogrammu dÄļ. Savu projektu plÄnojÄm realizÄt Å”Ädi.
Bet diemžÄl viedais lÄ«gums ir kods, ko darÄ«juma brÄ«dÄ« izpilda virtuÄlÄ maŔīna, un tas nevar aizstÄt pilnvÄrtÄ«gu serveri. PiemÄram, viedais lÄ«gums nevar veikt neapstiprinÄtas vai ieplÄnotas darbÄ«bas. MÅ«su projektÄ tas neļÄva ieviest minÅ«tes nomas pakalpojumu, kÄ to dara lielÄkÄ daļa mÅ«sdienu automaŔīnu koplietoÅ”anas pakalpojumu. TÄpÄc pÄc darÄ«juma pabeigÅ”anas no lietotÄja norakstÄ«jÄm kriptovalÅ«tu, nepÄrliecinoties, ka viÅam ir pietiekami daudz naudas. Å Äda pieeja ir pieÅemama tikai iekÅ”Äjam pilotam un, protams, rada problÄmas, izstrÄdÄjot pilnvÄrtÄ«gu ražoÅ”anas projektu.
Visam iepriekÅ”minÄtajam ir pievienots paÅ”as platformas mitrums. PiemÄram, ja rakstÄt viedo lÄ«gumu ar loÄ£iku, kas atŔķiras no ERC-20 marÄ·ieriem, jÅ«s saskarsities ar kļūdu apstrÄdes problÄmÄm. Parasti, ja ievade ir nepareiza vai mÅ«su metodes nedarbojas pareizi, mÄs saÅemam kļūdas kodu kÄ atbildi. Ethereum gadÄ«jumÄ mÄs nevaram iegÅ«t neko citu kÄ tikai gÄzes daudzumu, kas iztÄrÄts Ŕīs funkcijas veikÅ”anai. GÄze ir valÅ«ta, ar kuru jÄmaksÄ par darÄ«jumiem un aprÄÄ·iniem: jo vairÄk operÄciju kodÄ, jo vairÄk maksÄsiet. TÄpÄc, lai saprastu, kÄpÄc kods nedarbojas, vispirms pÄrbaudiet to, simulÄjot visas iespÄjamÄs kļūdas, un iekodÄjiet iztÄrÄto gÄzi kÄ kļūdas kodu. Bet, ja mainÄ«sit kodu, Ŕī kļūdu apstrÄde pÄrtrauks.
TurklÄt ir gandrÄ«z neiespÄjami izveidot mobilo aplikÄciju, kas godÄ«gi strÄdÄtu ar blokÄ·Ädi, neizmantojot kaut kur mÄkonÄ« saglabÄtu atslÄgu. Lai gan pastÄv godÄ«gi maki, tie nenodroÅ”ina saskarnes ÄrÄjo darÄ«jumu parakstÄ«Å”anai. Tas nozÄ«mÄ, ka jÅ«s neredzÄsit vietÄjo lietojumprogrammu, ja vien tajÄ nebÅ«s iebÅ«vÄts kriptogrÄfijas maciÅÅ”, kuram lietotÄji maz uzticÄsies (es tam neuzticos). RezultÄtÄ arÄ« Å”eit nÄcÄs nogriezt stÅ«ri. Viedie lÄ«gumi tika piegÄdÄti privÄtajam Ethereum tÄ«klam, un seifs bija mÄkoÅa bÄzes. TaÄu, neskatoties uz to, mÅ«su lietotÄji izjuta visus decentralizÄto pakalpojumu āpriekusā ā ilgas darÄ«jumu gaidÄ«Å”anas vairÄkas reizes vienÄ nomas sesijÄ.
Tas viss mÅ«s noved pie Ŕīs arhitektÅ«ras. PiekrÄ«tu, tas ļoti atŔķiras no tÄ, ko mÄs plÄnojÄm.
DÅ«zis caurumÄ: paÅ”suverÄnÄ identitÄte
JÅ«s nevarat izveidot pilnÄ«gi decentralizÄtu sistÄmu bez decentralizÄtas identitÄtes. Par Å”o daļu atbild Self-Sovereign Identity (SSI), kuras bÅ«tÄ«ba ir tÄda, ka jÅ«s izmetat centralizÄto identitÄtes nodroÅ”inÄtÄju (IDP) un izplatÄt visus datus un atbildÄ«bu par to cilvÄkiem. Tagad lietotÄjs izlemj, kÄdi dati viÅam ir nepiecieÅ”ami un ar ko viÅÅ” tos kopÄ«gos. Visa Ŕī informÄcija atrodas lietotÄja ierÄ«cÄ. Bet apmaiÅai mums bÅ«s nepiecieÅ”ama decentralizÄta sistÄma kriptogrÄfisko pierÄdÄ«jumu glabÄÅ”anai. Visas mÅ«sdienu SSI koncepcijas implementÄcijas kÄ krÄtuvi izmanto blokÄ·Ädi.
"KÄds tam sakars ar dÅ«zi caurumÄ?" - tu jautÄ. MÄs uzsÄkÄm pakalpojumu iekÅ”Äjo testu veikÅ”anai saviem darbiniekiem BerlÄ«nÄ un BonnÄ, un mÄs saskÄrÄmies ar grÅ«tÄ«bÄm VÄcijas arodbiedrÄ«bu veidÄ. VÄcijÄ uzÅÄmumiem ir aizliegts uzraudzÄ«t darbinieku pÄrvietoÅ”anos, un arodbiedrÄ«bas to kontrolÄ. Å ie ierobežojumi izbeidz centralizÄtu lietotÄju identitÄtes datu glabÄÅ”anu, jo tÄdÄ gadÄ«jumÄ mÄs zinÄtu darbinieku atraÅ”anÄs vietu. TajÄ paÅ”Ä laikÄ mÄs nevarÄjÄm tos nepÄrbaudÄ«t, jo pastÄv iespÄja, ka motorolleri var tikt nozagti. TaÄu, pateicoties Self-Sovereign Identity, mÅ«su lietotÄji sistÄmu izmantoja anonÄ«mi, un pats skrejritenis pirms nomas uzsÄkÅ”anas pÄrbaudÄ«ja viÅu autovadÄ«tÄja apliecÄ«bu. RezultÄtÄ mÄs saglabÄjÄm anonÄ«mus lietotÄju rÄdÄ«tÄjus, mums nebija nekÄdu dokumentu vai personas datu: tie visi atradÄs paÅ”u draiveru ierÄ«cÄs. TÄdÄjÄdi, pateicoties SSI, problÄmas risinÄjums mÅ«su projektÄ bija gatavs jau pirms tÄ parÄdÄ«Å”anÄs.
IerÄ«ce man radÄ«ja problÄmas
MÄs paÅ”i neieviesÄm Self-Suvereign Identity, jo tas prasa zinÄÅ”anas kriptogrÄfijÄ un daudz laika. TÄ vietÄ mÄs izmantojÄm mÅ«su partneru Jolocom produktu un integrÄjÄm viÅu mobilo maku un pakalpojumus mÅ«su platformÄ. DiemžÄl Å”im produktam ir viens bÅ«tisks trÅ«kums: galvenÄ izstrÄdes valoda ir Node.js.
Å is tehnoloÄ£iju komplekts ievÄrojami ierobežo mÅ«su skrejritenÄ« iebÅ«vÄtÄs aparatÅ«ras izvÄli. Par laimi, projekta paÅ”Ä sÄkumÄ mÄs izvÄlÄjÄmies Raspberry Pi Zero un izmantojÄm visas pilnvÄrtÄ«ga mikrodatora priekÅ”rocÄ«bas. Tas ļÄva mums uz motorollera palaist apjomÄ«gu Node.js. TurklÄt mÄs saÅÄmÄm uzraudzÄ«bu un attÄlo piekļuvi, izmantojot VPN, izmantojot gatavus rÄ«kus.
NoslÄgumÄ
Neskatoties uz visÄm āsÄpÄmā un problÄmÄm, projekts tika uzsÄkts. Ne viss izdevÄs tÄ, kÄ plÄnojÄm, bet ar skrejriteÅiem tieÅ”Äm bija iespÄja braukt, tos Ä«rÄjot.
JÄ, veidojot arhitektÅ«ru, mÄs pieļÄvÄm vairÄkas kļūdas, kas neļÄva padarÄ«t pakalpojumu pilnÄ«bÄ decentralizÄtu, taÄu pat bez Ŕīm kļūdÄm mÄs diez vai bÅ«tu varÄjuÅ”i izveidot bezserveru platformu. Viena lieta ir uzrakstÄ«t vÄl vienu kriptopiramÄ«du un pavisam cita - uzrakstÄ«t pilnvÄrtÄ«gu pakalpojumu, kurÄ jums jÄrisina kļūdas, jÄatrisina robežgadÄ«jumi un jÄveic nepabeigti uzdevumi. CerÄsim, ka nesen parÄdÄ«juÅ”Äs jaunÄs platformas bÅ«s elastÄ«gÄkas un funkcionÄlÄkas.
Avots: www.habr.com