Tengeneza programu ya kukodisha skuta iliyogatuliwa. Nani alisema itakuwa rahisi?

Katika nakala hii nitazungumza juu ya jinsi tulivyojaribu kujenga ukodishaji wa pikipiki uliogatuliwa kwenye mikataba mahiri na kwa nini bado tulihitaji huduma kuu.

Tengeneza programu ya kukodisha skuta iliyogatuliwa. Nani alisema itakuwa rahisi?

Jinsi wote wakaanza

Mnamo Novemba 2018, tulishiriki katika hackathon iliyotolewa kwa Mtandao wa Mambo na blockchain. Timu yetu ilichagua kushiriki skuta kama wazo kwa kuwa tulikuwa na skuta kutoka kwa mfadhili wa hackathon hii. Mfano huo ulionekana kama programu ya rununu inayokuruhusu kuanzisha skuta kupitia NFC. Kwa mtazamo wa uuzaji, wazo hilo liliungwa mkono na hadithi kuhusu "baadaye angavu" yenye mfumo wazi wa ikolojia ambapo mtu yeyote anaweza kuwa mpangaji au mwenye nyumba, yote yakitegemea kandarasi mahiri.

Wadau wetu walilipenda sana wazo hili, na waliamua kuligeuza kuwa mfano wa maonyesho kwenye maonyesho. Baada ya maandamano kadhaa yaliyofaulu kwenye Mobile World Congress na Bosch Connected World mnamo 2019, iliamuliwa kujaribu kukodisha pikipiki na watumiaji halisi, wafanyikazi wa Deutsche Telekom. Kwa hivyo tulianza kutengeneza MVP kamili.

Blockchain kwenye mikongojo

Sidhani kama inafaa kueleza tofauti ni nini kati ya mradi utakaoonyeshwa jukwaani na ule utakaotumiwa na watu halisi. Katika miezi sita ilitubidi kugeuza mfano huo mbichi kuwa kitu kinachofaa kwa rubani. Na kisha tulielewa maana ya "maumivu".

Ili kufanya mfumo wetu kugatuliwa na kuwa wazi, tuliamua kutumia mikataba mahiri ya Ethereum. Chaguo liliangukia kwenye jukwaa hili la huduma za mtandaoni zilizogatuliwa kwa sababu ya umaarufu wake na uwezo wa kuunda programu isiyo na seva. Tulipanga kutekeleza mradi wetu kama ifuatavyo.

Tengeneza programu ya kukodisha skuta iliyogatuliwa. Nani alisema itakuwa rahisi?

Lakini, kwa bahati mbaya, mkataba wa smart ni msimbo unaotekelezwa na mashine ya mtandaoni wakati wa shughuli, na hauwezi kuchukua nafasi ya seva kamili. Kwa mfano, mkataba mahiri hauwezi kufanya vitendo vinavyosubiri au vilivyoratibiwa. Katika mradi wetu, hii haikuturuhusu kutekeleza huduma ya kukodisha kwa kila dakika, kama huduma nyingi za kisasa za kushiriki gari hufanya. Kwa hivyo, tulitoa pesa za siri kutoka kwa mtumiaji baada ya kukamilisha muamala bila kuwa na uhakika kwamba alikuwa na pesa za kutosha. Njia hii inakubalika tu kwa majaribio ya ndani na, bila shaka, huongeza matatizo wakati wa kubuni mradi wa uzalishaji kamili.

Imeongezwa kwa yote hapo juu ni unyevu wa jukwaa lenyewe. Kwa mfano, ukiandika mkataba mzuri wenye mantiki tofauti na tokeni za ERC-20, utakumbana na matatizo ya kushughulikia makosa. Kwa kawaida, ikiwa ingizo si sahihi au mbinu zetu hazifanyi kazi ipasavyo, tunapokea msimbo wa hitilafu kwa kujibu. Kwa upande wa Ethereum, hatuwezi kupata chochote isipokuwa kiasi cha gesi iliyotumiwa kufanya kazi hii. Gesi ni sarafu ambayo lazima ilipwe kwa miamala na hesabu: kadri utendakazi unavyoongezeka katika msimbo wako, ndivyo utakavyolipa zaidi. Kwa hivyo ili kuelewa ni kwa nini msimbo haufanyi kazi, kwanza unaijaribu kwa kuiga makosa yote yanayowezekana na msimbo ngumu wa gesi inayotumika kama msimbo wa makosa. Lakini ukibadilisha nambari yako, ushughulikiaji huu wa makosa utavunjika.

Kwa kuongeza, ni vigumu kuunda programu ya simu ambayo inafanya kazi na blockchain kwa uaminifu, bila kutumia ufunguo uliohifadhiwa mahali fulani kwenye wingu. Ingawa pochi za uaminifu zipo, hazitoi violesura vya kusaini shughuli za nje. Hii ina maana kwamba hutaona programu ya asili isipokuwa ikiwa na mkoba wa crypto uliojengwa, ambao watumiaji hawatakuwa na imani kidogo (singeamini). Kama matokeo, tulilazimika pia kukata kona hapa. Mikataba ya Smart ilitolewa kwa mtandao wa kibinafsi wa Ethereum, na mkoba ulikuwa msingi wa wingu. Lakini licha ya hili, watumiaji wetu walikumbana na "furaha" zote za huduma zilizogatuliwa kwa njia ya kusubiri kwa muda mrefu kwa miamala mara kadhaa kwa kila kipindi cha ukodishaji.

Yote hii inatuongoza kwenye usanifu huu. Kukubaliana, ni tofauti sana na tulivyopanga.

Tengeneza programu ya kukodisha skuta iliyogatuliwa. Nani alisema itakuwa rahisi?

Ace kwenye shimo: Utambulisho wa Kujitawala

Huwezi kujenga mfumo wa madaraka kabisa bila utambulisho wa madaraka. Utambulisho wa Kujitawala (SSI) unawajibika kwa sehemu hii, ambayo kiini chake ni kwamba unatupa mtoaji wa utambulisho wa kati (IDP) na kusambaza data na jukumu lake kwa watu. Sasa mtumiaji anaamua ni data gani anayohitaji na atashiriki na nani. Habari hii yote iko kwenye kifaa cha mtumiaji. Lakini kwa kubadilishana tutahitaji mfumo wa madaraka kwa kuhifadhi ushahidi wa siri. Utekelezaji wote wa kisasa wa dhana ya SSI hutumia blockchain kama hifadhi.

"Hii ina uhusiano gani na ace kwenye shimo?" - unauliza. Tulizindua huduma ya majaribio ya ndani kwa wafanyakazi wetu wenyewe huko Berlin na Bonn, na tulikumbana na matatizo katika mfumo wa vyama vya wafanyakazi vya Ujerumani. Nchini Ujerumani, makampuni yamepigwa marufuku kufuatilia mienendo ya wafanyakazi, na vyama vya wafanyakazi vinadhibiti hili. Vizuizi hivi vilikomesha uhifadhi wa kati wa data ya utambulisho wa mtumiaji, kwani katika kesi hii tutajua eneo la wafanyikazi. Wakati huo huo, hatukuweza kujizuia kuziangalia kwa sababu ya uwezekano wa pikipiki kuibiwa. Lakini kutokana na Utambulisho wa Kujitawala, watumiaji wetu walitumia mfumo bila kukutambulisha, na skuta yenyewe ilikagua leseni yao ya udereva kabla ya kuanza kukodisha. Kwa hivyo, tulihifadhi vipimo vya watumiaji bila majina; hatukuwa na hati yoyote au data ya kibinafsi: zote ziliwekwa kwenye vifaa vya viendeshi wenyewe. Kwa hivyo, shukrani kwa SSI, suluhisho la shida katika mradi wetu lilikuwa tayari hata kabla ya kuonekana.

Kifaa kilinipa matatizo

Hatukutekeleza Utambulisho wa Kujitawala wenyewe, kwa kuwa inahitaji utaalam katika cryptography na muda mwingi. Badala yake, tulichukua fursa ya bidhaa ya washirika wetu Jolocom na kuunganisha pochi na huduma zao za simu kwenye jukwaa letu. Kwa bahati mbaya, bidhaa hii ina shida moja muhimu: lugha kuu ya maendeleo ni Node.js.

Mrundikano huu wa teknolojia hupunguza sana uchaguzi wetu wa maunzi yaliyojengwa ndani ya skuta. Kwa bahati nzuri, mwanzoni mwa mradi huo, tulichagua Raspberry Pi Zero, na tulichukua faida ya faida zote za kompyuta ndogo iliyojaa. Hii ilituruhusu kuendesha Node.js nyingi kwenye skuta. Kwa kuongezea, tulipokea ufuatiliaji na ufikiaji wa mbali kupitia VPN kwa kutumia zana zilizotengenezwa tayari.

Kwa kumalizia

Licha ya "maumivu" yote na matatizo, mradi ulizinduliwa. Sio kila kitu kilifanya kazi kama tulivyopanga, lakini iliwezekana sana kupanda pikipiki kwa kukodisha.

Ndio, tulifanya makosa kadhaa wakati wa kubuni usanifu ambao haukuruhusu kufanya huduma kugawanywa kabisa, lakini hata bila makosa haya hatungeweza kuunda jukwaa lisilo na seva. Ni jambo moja kuandika piramidi nyingine ya crypto, na nyingine kabisa kuandika huduma kamili ambayo unahitaji kushughulikia makosa, kutatua kesi za mpaka na kufanya kazi zinazosubiri. Wacha tutegemee kuwa majukwaa mapya ambayo yameibuka hivi majuzi yatakuwa rahisi na ya kufanya kazi zaidi.

Chanzo: mapenzi.com

Kuongeza maoni