Të zhvillosh softuer për qiranë e decentralizuar të skuterëve. 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ërtojmë një shërbim të decentralizuar për qiranë e skuterëve mbi kontratat inteligjente dhe pse edhe na duhej një shërbim centralizuar.

Të zhvillosh softuer për qiranë e decentralizuar të skuterëve. Kush tha se do të ishte e lehtë?

Si filloi gjithçka

Në nëntor 2018, morëm pjesë në një hackathon të dedikuar internetit të gjërave dhe blockchain. Si idea, ekipi ynë zgjodhi skuterë ndarje, pasi kishim një skuter nga sponsori i këtij hackathoni. Prototipi dukej si një aplikacion mobil që lejonte aktivizimin e skuterit nëpërmjet NFC. Nga këndvështrimi i marketingut, ideja u mbështet nga tregimi mbi «të ardhmen e ndritshme» me një ekosistem të hapur, ku çdo njeri mund të bëhet qiramarres ose qiradhënës, dhe të gjitha këto mbi bazën e kontratave të mençura.

Kjo ide i pëlqeu shumë palëve tona, dhe ata vendosën ta kthenin në një prototip për të demonstruar në ekspozita. Pas disa shfaqjeve të suksesshme në Mobile World Congress dhe Bosch Connected World në vitin 2019, u mor vendimi për të testuar qiranë e skuterëve me përdorues të vërtetë, punonjës të Deutsche Telekom. Kështu, ne filluam të zhvillojmë një MVP të plotë.

Blockchain mbi ndihmën e krapave

Mendoj se nuk është e nevojshme të shpjegoj se cila është diferenca mes një projekti për të treguar në skenë dhe atij që do të përdoren nga njerëzit realë. Gjatë gjashtë muajve, kishim detyrën të transformonim një prototip të papërpunuar në diçka të përshtatshme për pilotimin. Dhe këtu kuptuam se çfarë do të thotë "dhimbje".

Për të bërë sistemin tonë të decentralizuar dhe të hapur, vendosëm të përdorim kontratat inteligjente të Ethereum. Zgjedhja ra në këtë platformë shërbimesh online të decentralizuara për shkak të popullaritetit të saj dhe mundësisë për të ndërtuar një aplikacion pa serverë. Planifikonim ta realizonim projektin tonë ashtu.

Të zhvillosh softuer për qiranë e decentralizuar të skuterëve. Kush tha se do të ishte e lehtë?

Por, fatkeqësisht, kontrata e mençur është kod, që ekzekutohet nga makina virtuale në momentin e transaksionit, dhe nuk mund të zëvendësojë një sistem të plotë. server. Për shembull, kontrata smart nuk mund të kryejë veprime të vonuara ose të planifikuara. Në projektin tonë, kjo nuk na lejojti të implementonim një shërbim me qira minute pas minute, ashtu siç bëjnë shumica e carsharing-eve moderne. Prandaj, ne e kemi shpenzuar kripton nga përdoruesi pas përfundimit të operacionit pa pasur siguri se ai ka mjaftueshëm para. Ky qasje është e pranueshme vetëm për një pilot të brendshëm dhe sigurisht që shton probleme në projektimin e një projekti të plotë prodhimi.

Sipas gjithçkaje të thënë më parë, shtohet edhe lagështia e vetë platformës. Për shembull, nëse shkruani një kontratë smart me logjikë të ndryshme nga tokenat ERC-20, do të përballeni me problemin e trajtimit të gabimeve. Zakonisht, kur ka një hyrje të pasaktë ose një funksionim të gabuar të metodave tona, ne marrim një kod gabimi si përgjigje. Në rastin e Ethereum, nuk mund të marrim asgjë përveç sasisë së gazit të harxhuar për të ekzekutuar këtë funksion. Gazi është valuta që duhet të paguani për transaksionet dhe llogaritjet: sa më shumë operacione të bëni në kodin tuaj, aq më shumë do të paguani. Prandaj, për të kuptuar pse kodi nuk funksionon, së pari e testoni atë, duke simuluar të gjitha mundësitë e gabimeve, dhe kodoni me dorë gazin e harxhuar si kod gabimi. Por nëse ndryshoni kodin tuaj, ky trajtim i gabimeve do të prishet.

PĂ«rveç kĂ«saj, pothuajse Ă«shtĂ« e pamundur tĂ« krijosh njĂ« aplikacion mobil qĂ« funksionon nĂ« blockchain nĂ« mĂ«nyrĂ« tĂ« ndershme, pa pĂ«rdorur njĂ« çelĂ«s qĂ« ruhet diku nĂ« cloud. Edhe pse portofolat e ndershĂ«m ekzistojnĂ«, ato nuk ofrojnĂ« interfazet pĂ«r nĂ«nshkrimin e transaksioneve tĂ« jashtme. Kjo do tĂ« thotĂ« se njĂ« aplikacion natyror nuk do tĂ« ketĂ« mundĂ«si, nĂ«se nuk pĂ«rmban njĂ« portofol kripto, tĂ« cilit pĂ«rdoruesit do t’u besojnĂ« pak (nuk do t'i besoja). Si rezultat, na u desh tĂ« kĂ«putim kĂ«ndin kĂ«tu. KontratĂ« smart u dĂ«rguan nĂ« rrjetin privat Ethereum, ndĂ«rsa portofoli ishte cloud. Por megjithatĂ«, pĂ«rdoruesit tanĂ« ndienin tĂ« gjitha “kĂ«naqĂ«sitĂ«â€ e shĂ«rbimeve tĂ« decentralizuara nĂ« formĂ«n e pritjes sĂ« gjatĂ« pĂ«r transaksione disa herĂ« gjatĂ« sesionit tĂ« qirasĂ«.

E gjitha kjo na çon në një arkitekturë të tillë. Pranoje, ajo është shumë ndryshe nga ajo që ne kishim planifikuar.

Të zhvillosh softuer për qiranë e decentralizuar të skuterëve. Kush tha se do të ishte e lehtë?

Asi në mëngë: Identiteti Self-Sovereign

Nuk mund të ndërtohet një sistem plotësisht të decentralizuar pa një identifikim të decentralizuar. Kjo pjesë përfaqësohet nga Identiteti i Vetë-Patundshëm (SSI), që do të thotë se ju hiqni ofruesin qendror të identitetit (IDP) dhe u jepni njerëzve të gjitha të dhënat dhe përgjegjësinë për to. Tani përdoruesi vendos vetë se cilat të dhëna i nevojiten dhe me kë do t'i ndajë ato. Të gjitha këto informacione ndodhen në pajisjen e përdoruesit. Por për shkëmbimin, na nevojitet një sistem decentralizuar i ruajtjes së provave kriptografike. Të gjitha implementimet moderne të konceptit SSI përdorin blockchain si një depotë.

“ÇfarĂ« ndjen tufa nĂ« mĂ«ngĂ«?” — do tĂ« pyesni. ShĂ«rbimin e filluam pĂ«r njĂ« test tĂ« brendshĂ«m me punonjĂ«sit tanĂ« nĂ« Berlin dhe Bonn, dhe para nesh u shfaqĂ«n vĂ«shtirĂ«si nĂ« formĂ«n e sindikatave gjermane. NĂ« Gjermani, kompanitĂ« ndalohen tĂ« ndjekin lĂ«vizjet e punonjĂ«sve, dhe sindikatat e kontrollojnĂ« kĂ«tĂ«. KĂ«to kufizime e bĂ«jnĂ« tĂ« pamundur ruajtjen qendrore tĂ« tĂ« dhĂ«nave tĂ« identifikimit tĂ« pĂ«rdoruesve, sepse nĂ« kĂ«tĂ« rast do tĂ« dinim vendndodhjen e punonjĂ«sve. MegjithatĂ«, ne nuk mund tĂ« mos i kontrollonim ata pĂ«r shkak tĂ« mundĂ«sisĂ« sĂ« vjedhjes sĂ« skuterve. Por falĂ« Identitetit tĂ« Pavarur, pĂ«rdoruesit tanĂ« e pĂ«rdornin sistemin nĂ« mĂ«nyrĂ« anonime, dhe skuterĂ«t kontrollonin nĂ«se kishin patentĂ« para se tĂ« fillonin marrĂ«veshjen e qirasĂ«. Si rezultat, ne ruanim metrikat e anonimizuara tĂ« pĂ«rdoruesve, nuk kishim dokumente dhe tĂ« dhĂ«na personale: tĂ« gjitha ato ruheshin nĂ« pajisjet e vetĂ« drejtuesve. KĂ«shtu, falĂ« SSI, zgjidhja e kĂ«saj problemi nĂ« projektin tonĂ« ishte gati edhe para se tĂ« shfaqej.

Pajisja solli probleme

Ne kemi ruajtur vetë identitetin e vetë-pavarur, pasi kjo kërkon ekspertizë në kriptografi dhe një sasi të madhe kohe. Në vend të kësaj, ne shfrytëzuam produktin e partnerëve tanë Jolocom dhe integrojmë portofolin e tyre mobil dhe shërbimet në platformën tonë. Fatkeqësisht, ky produkt ka një mangësi të madhe: gjuha kryesore e zhvillimit është Node.js.

Ky stak teknologjik na kufizon rëndë në zgjedhjen e harduerit që mund të integrojmë në skuterin. Me fat, që në fillim të projektit, kemi zgjedhur Raspberry Pi Zero dhe shfrytëzuam të gjitha avantazhet e një mikrokompjuteri të plotë. Kjo na lejoj që të përdorim Node.js në skuter. Përveç kësaj, morëm monitorim dhe akses në distancë përmes vpn, duke përdorur mjete të gatshme.

Në përfundim

PavarĂ«sisht tĂ« gjitha “dhimbjeve” dhe problemeve, projekti u lançua. Jo gjithçka funksionoi siç e kishim planifikuar, por nĂ« tĂ« vĂ«rtetĂ« ishte e mundur tĂ« bĂ«hej njĂ« ndalesĂ« skuterĂ«sh dukĂ« i marrĂ« ata me qira.

Po, kemi bĂ«rĂ« disa gabime gjatĂ« projektimit tĂ« arkitekturĂ«s, tĂ« cilat nuk na lejuan tĂ« krijonim njĂ« shĂ«rbim plotĂ«sisht tĂ« decentralizuar, por edhe pa kĂ«to gabime Ă«shtĂ« e vĂ«shtirĂ« tĂ« krijohet njĂ« platformĂ« pa server. ËshtĂ« njĂ« gjĂ« tĂ« shkruash njĂ« piramidĂ« kripto dhe njĂ« tjetĂ«r tĂ« kesh njĂ« shĂ«rbim tĂ« plotĂ«, nĂ« tĂ« cilin duhet tĂ« trajtosh gabimet, tĂ« zgjidhĂ«sh raste kufitare dhe tĂ« ekzekutosh detyra tĂ« vonuara. Le tĂ« shpresojmĂ« se platformat e reja qĂ« janĂ« shfaqur sĂ« fundmi do tĂ« jenĂ« mĂ« fleksibĂ«l dhe funksionale.

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster