Izstrādāt programmatÅ«ru decentralizētai motorolleru nomai. KurÅ” teica, ka tas bÅ«s viegli?

Å 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.

Izstrādāt programmatÅ«ru decentralizētai motorolleru nomai. KurÅ” teica, ka tas bÅ«s viegli?

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.

Izstrādāt programmatÅ«ru decentralizētai motorolleru nomai. KurÅ” teica, ka tas bÅ«s viegli?

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.

Izstrādāt programmatÅ«ru decentralizētai motorolleru nomai. KurÅ” teica, ka tas bÅ«s viegli?

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

Pievieno komentāru