Zhvilloni softuer për marrjen me qira të skuterëve të decentralizuar. Kush tha se do të ishte e lehtë?

Në këtë artikull do të flas për mënyrën se si u përpoqëm të ndërtonim skuter me qira të decentralizuar me kontrata inteligjente dhe pse ne kishim ende nevojë për një shërbim të centralizuar.

Zhvilloni softuer për marrjen me qira të skuterëve të decentralizuar. Kush tha se do të ishte e lehtë?

Si ajo filloi të gjithë

Në nëntor 2018, ne morëm pjesë në një hackathon kushtuar Internetit të Gjërave dhe blockchain. Ekipi ynë zgjodhi ndarjen e skuterit si ide pasi ne kishim një skuter nga sponsori i këtij hackathon. Prototipi dukej si një aplikacion celular që ju lejon të filloni një skuter përmes NFC. Nga pikëpamja e marketingut, ideja u mbështet nga një histori për një "të ardhme të ndritur" me një ekosistem të hapur, ku çdokush mund të bëhet qiramarrës ose qiradhënës, të gjitha të bazuara në kontrata inteligjente.

Palëve tona të interesuara u pëlqeu shumë kjo ide, dhe ata vendosën ta kthenin atë në një prototip për ekspozim në ekspozita. Pas disa demonstrimeve të suksesshme në Mobile World Congress dhe Bosch Connected World në 2019, u vendos që të testohej marrja me qira e skuterit me përdoruesit e vërtetë, punonjësit e Deutsche Telekom. Kështu që ne filluam të zhvillojmë një MVP të plotë.

Blockchain në paterica

Nuk mendoj se ia vlen të shpjegosh se cili është ndryshimi midis një projekti që do të shfaqet në skenë dhe atij që do të përdoret nga njerëz të vërtetë. Në gjashtë muaj na u desh ta kthenim prototipin e papërpunuar në diçka të përshtatshme për një pilot. Dhe pastaj kuptuam se çfarë do të thotë "dhimbje".

Për ta bërë sistemin tonë të decentralizuar dhe të hapur, vendosëm të përdorim kontratat inteligjente Ethereum. Zgjedhja ra në këtë platformë të shërbimeve të decentralizuara në internet për shkak të popullaritetit të saj dhe aftësisë për të ndërtuar një aplikacion pa server. Ne kemi planifikuar të zbatojmë projektin tonë si më poshtë.

Zhvilloni softuer për marrjen me qira të skuterëve të decentralizuar. Kush tha se do të ishte e lehtë?

Por, për fat të keq, një kontratë inteligjente është një kod i ekzekutuar nga një makinë virtuale në kohën e një transaksioni dhe nuk mund të zëvendësojë një server të plotë. Për shembull, një kontratë inteligjente nuk mund të kryejë veprime në pritje ose të planifikuar. Në projektin tonë, kjo nuk na lejoi të zbatonim një shërbim me qira për minutë, siç bëjnë shumica e shërbimeve moderne të ndarjes së makinave. Prandaj, ne debituam kriptomonedhën nga përdoruesi pas përfundimit të transaksionit pa qenë të sigurt se ai kishte para të mjaftueshme. Kjo qasje është e pranueshme vetëm për një pilot të brendshëm dhe, natyrisht, shton probleme gjatë hartimit të një projekti prodhimi të plotë.

Të gjitha sa më sipër i shtohet lagështia e vetë platformës. Për shembull, nëse shkruani një kontratë inteligjente me logjikë të ndryshme nga shenjat ERC-20, do të hasni probleme në trajtimin e gabimeve. Zakonisht, nëse hyrja është e pasaktë ose metodat tona nuk funksionojnë siç duhet, marrim një kod gabimi si përgjigje. Në rastin e Ethereum, ne nuk mund të marrim asgjë tjetër përveç sasisë së gazit të shpenzuar për të kryer këtë funksion. Gazi është një monedhë që duhet paguar për transaksionet dhe llogaritjet: sa më shumë operacione në kodin tuaj, aq më shumë do të paguani. Pra, për të kuptuar pse kodi nuk funksionon, së pari e testoni atë duke simuluar të gjitha gabimet e mundshme dhe kodoni gazin e shpenzuar si një kod gabimi. Por nëse ndryshoni kodin tuaj, ky trajtim i gabimit do të prishet.

Përveç kësaj, është pothuajse e pamundur të krijosh një aplikacion celular që funksionon me sinqeritet me blockchain, pa përdorur një çelës të ruajtur diku në re. Megjithëse kuletat e ndershme ekzistojnë, ato nuk ofrojnë ndërfaqe për nënshkrimin e transaksioneve të jashtme. Kjo do të thotë që ju nuk do të shihni një aplikacion vendas nëse nuk ka një portofol të integruar kripto, në të cilin përdoruesit do të kenë pak besim (nuk do t'i besoja). Si rezultat, ne gjithashtu duhej të prisnim një qoshe këtu. Kontratat inteligjente iu dorëzuan rrjetit privat Ethereum dhe portofoli ishte i bazuar në renë kompjuterike. Por pavarësisht kësaj, përdoruesit tanë përjetuan të gjitha "kënaqjet" e shërbimeve të decentralizuara në formën e pritjeve të gjata për transaksione disa herë në seancë me qira.

E gjithë kjo na çon në këtë arkitekturë. Dakord, është shumë ndryshe nga ajo që kemi planifikuar.

Zhvilloni softuer për marrjen me qira të skuterëve të decentralizuar. Kush tha se do të ishte e lehtë?

Asi në vrimë: Identiteti Vetë-Sovran

Ju nuk mund të ndërtoni një sistem plotësisht të decentralizuar pa identitet të decentralizuar. Identiteti Vetë-Sovran (SSI) është përgjegjës për këtë pjesë, thelbi i së cilës është që ju të hidhni jashtë ofruesin e centralizuar të identitetit (IDP) dhe të shpërndani të gjitha të dhënat dhe përgjegjësinë për të tek njerëzit. Tani përdoruesi vendos se cilat të dhëna i nevojiten dhe me kë do t'i ndajë ato. I gjithë ky informacion ndodhet në pajisjen e përdoruesit. Por për shkëmbimin do të na duhet një sistem i decentralizuar për ruajtjen e provave kriptografike. Të gjitha implementimet moderne të konceptit SSI përdorin blockchain si ruajtje.

"Çfarë lidhje ka kjo me asin në vrimë?" - ju pyesni. Ne lançuam shërbimin për testimin e brendshëm për punonjësit tanë në Berlin dhe Bon dhe hasëm vështirësi në formën e sindikatave gjermane. Në Gjermani, kompanive u ndalohet të monitorojnë lëvizjet e punonjësve dhe sindikatat e kontrollojnë këtë. Këto kufizime i japin fund ruajtjes së centralizuar të të dhënave të identitetit të përdoruesit, pasi në këtë rast do të dinim vendndodhjen e punonjësve. Në të njëjtën kohë, ne nuk mund të mos i kontrollonim për shkak të mundësisë së vjedhjes së skuterëve. Por falë Identitetit Vetë-Sovran, përdoruesit tanë e përdorën sistemin në mënyrë anonime dhe vetë skuteri kontrolloi patentën e shoferit të tyre përpara se të fillonte marrjen me qira. Si rezultat, ne ruajtëm metrikë anonimë të përdoruesve; ne nuk kishim asnjë dokument ose të dhëna personale: të gjitha ato ishin të përfshira në pajisjet e vetë drejtuesve. Kështu, falë SSI-së, zgjidhja e problemit në projektin tonë ishte gati ende pa u shfaqur.

Pajisja më dha probleme

Ne nuk e zbatuam vetë Identitetin Vetë-Sovran, pasi kërkon ekspertizë në kriptografi dhe shumë kohë. Në vend të kësaj, ne përfituam nga produkti i partnerëve tanë Jolocom dhe integruam portofolin dhe shërbimet e tyre celulare në platformën tonë. Fatkeqësisht, ky produkt ka një pengesë të rëndësishme: gjuha kryesore e zhvillimit është Node.js.

Kjo grumbull teknologjie kufizon shumë zgjedhjen tonë të pajisjeve të integruara në një skuter. Për fat të mirë, që në fillim të projektit, ne zgjodhëm Raspberry Pi Zero dhe përfituam nga të gjitha avantazhet e një mikrokompjuteri të plotë. Kjo na lejoi të përdornim Node.js të rëndë në skuter. Përveç kësaj, ne morëm monitorim dhe akses në distancë përmes VPN duke përdorur mjete të gatshme.

Në përfundim

Me gjithë “dhimbjet” dhe problemet, projekti u lançua. Jo gjithçka funksionoi siç kishim planifikuar, por ishte vërtet e mundur të hipnit skuter duke i marrë me qira.

Po, kemi bërë një sërë gabimesh gjatë projektimit të arkitekturës që nuk na lejuan ta bënim shërbimin plotësisht të decentralizuar, por edhe pa këto gabime vështirë se do të kishim mundur të krijonim një platformë pa server. Është një gjë të shkruash një kriptopiramidë tjetër dhe krejt tjetër të shkruash një shërbim të plotë në të cilin duhet të trajtosh gabimet, të zgjidhësh rastet kufitare dhe të kryesh detyra në pritje. Le të shpresojmë që platformat e reja që janë shfaqur së fundmi do të jenë më fleksibël dhe funksionale.

Burimi: www.habr.com

Shto një koment