Mərkəzləşdirilməmiş skuter icarəsi üçün proqram təminatı hazırlayın. Kim dedi ki, asan olacaq?

Bu yazıda ağıllı müqavilələrdə mərkəzləşdirilməmiş skuter icarəsini necə qurmağa çalışdığımızdan və niyə hələ də mərkəzləşdirilmiş xidmətə ehtiyacımızdan danışacağam.

Mərkəzləşdirilməmiş skuter icarəsi üçün proqram təminatı hazırlayın. Kim dedi ki, asan olacaq?

Bütün necə başladı

2018-ci ilin noyabr ayında biz Əşyaların İnterneti və blokçeyninə həsr olunmuş hakatonda iştirak etdik. Komandamız ideya olaraq skuter paylaşımını seçdi, çünki bu hakatonun sponsorundan bir skuter aldıq. Prototip NFC vasitəsilə skuter işə salmağa imkan verən mobil proqrama bənzəyirdi. Marketinq nöqteyi-nəzərindən, ideya hər kəsin kirayəçi və ya ev sahibi ola biləcəyi açıq ekosistemi olan “parlaq gələcək” haqqında hekayə ilə dəstəklənir, hamısı ağıllı müqavilələrə əsaslanır.

Maraqlı tərəflərimiz bu ideyanı çox bəyəndilər və onlar bunu sərgilərdə nümayiş etdirmək üçün prototipə çevirmək qərarına gəldilər. 2019-cu ildə Mobile World Congress və Bosch Connected World-də bir neçə uğurlu nümayişdən sonra skuter icarəsini real istifadəçilər, Deutsche Telekom əməkdaşları ilə sınaqdan keçirmək qərara alındı. Beləliklə, biz tam hüquqlu MVP hazırlamağa başladıq.

Dəstəklərdə blokçeyn

Məncə, səhnədə nümayiş etdiriləcək layihə ilə real insanların istifadə edəcəyi layihə arasında nə fərq olduğunu izah etməyə dəyməz. Altı ay ərzində biz xam prototipi pilot üçün uyğun bir şeyə çevirməli olduq. Sonra “ağrı”nın nə demək olduğunu başa düşdük.

Sistemimizi mərkəzləşdirilməmiş və açıq etmək üçün Ethereum smart müqavilələrindən istifadə etmək qərarına gəldik. Seçim, populyarlığına və serversiz proqram qurmaq qabiliyyətinə görə mərkəzləşdirilməmiş onlayn xidmətlərin bu platformasına düşdü. Layihəmizi aşağıdakı kimi həyata keçirməyi planlaşdırdıq.

Mərkəzləşdirilməmiş skuter icarəsi üçün proqram təminatı hazırlayın. Kim dedi ki, asan olacaq?

Amma təəssüf ki, ağıllı müqavilə əməliyyat zamanı virtual maşın tərəfindən icra edilən koddur və o, tam hüquqlu serveri əvəz edə bilməz. Məsələn, ağıllı müqavilə gözlənilən və ya planlaşdırılan hərəkətləri yerinə yetirə bilməz. Layihəmizdə bu, əksər müasir avtomobil paylaşma xidmətləri kimi dəqiqəlik icarə xidmətini həyata keçirməyə imkan vermədi. Buna görə də, kifayət qədər pulunun olduğuna əmin olmadan əməliyyatı tamamladıqdan sonra istifadəçidən kriptovalyutanı debet etdik. Bu yanaşma yalnız daxili pilot üçün məqbuldur və təbii ki, tam hüquqlu istehsal layihəsini tərtib edərkən problemlər əlavə edir.

Yuxarıda göstərilənlərin hamısına platformanın özünün nəmliyi əlavə olunur. Məsələn, ERC-20 tokenlərindən fərqli məntiqlə ağıllı müqavilə yazsanız, səhvlərin idarə olunması problemi ilə qarşılaşacaqsınız. Adətən, daxiletmə səhv olarsa və ya üsullarımız düzgün işləmirsə, cavab olaraq səhv kodu alırıq. Ethereum vəziyyətində, bu funksiyanı yerinə yetirmək üçün sərf olunan qaz miqdarından başqa heç nə ala bilmərik. Qaz əməliyyatlar və hesablamalar üçün ödənilməli olan valyutadır: kodunuzda nə qədər çox əməliyyat varsa, bir o qədər çox ödəyəcəksiniz. Beləliklə, kodun niyə işləmədiyini başa düşmək üçün əvvəlcə bütün mümkün səhvləri simulyasiya edərək onu sınaqdan keçirəcəksiniz və xəta kodu kimi xərclənən qazı sərt kodlaşdıracaqsınız. Amma kodunuzu dəyişdirsəniz, bu xətanın idarə edilməsi pozulacaq.

Bundan əlavə, buludda bir yerdə saxlanılan açardan istifadə etmədən blokçeynlə vicdanla işləyən mobil proqram yaratmaq demək olar ki, mümkün deyil. Dürüst pul kisələri mövcud olsa da, xarici əməliyyatları imzalamaq üçün interfeyslər təmin etmir. Bu o deməkdir ki, istifadəçilərin az güvənəcəyi daxili kripto pul kisəsi olmasa, yerli tətbiqi görməyəcəksiniz (ona etibar etməzdim). Nəticədə biz də burada künc kəsmək məcburiyyətində qaldıq. Ağıllı müqavilələr özəl Ethereum şəbəkəsinə çatdırıldı və pul kisəsi bulud əsaslı idi. Ancaq buna baxmayaraq, istifadəçilərimiz hər icarə seansında bir neçə dəfə əməliyyatlar üçün uzun müddət gözləmə şəklində mərkəzləşdirilməmiş xidmətlərin bütün "ləzzətlərini" yaşadılar.

Bütün bunlar bizi bu memarlığa aparır. Razılaşın, planlaşdırdığımızdan çox fərqlidir.

Mərkəzləşdirilməmiş skuter icarəsi üçün proqram təminatı hazırlayın. Kim dedi ki, asan olacaq?

Çuxurdakı Ace: Self-Suveren Identity

Mərkəzləşdirilməmiş şəxsiyyət olmadan tamamilə mərkəzləşdirilməmiş bir sistem qura bilməzsiniz. Self-Suveren Identity (SSI) bu hissəyə cavabdehdir, onun mahiyyəti ondan ibarətdir ki, siz mərkəzləşdirilmiş şəxsiyyət təminatçısını (IDP) atırsınız və bütün məlumatları və bunun üçün məsuliyyəti insanlara paylasınız. İndi istifadəçi hansı məlumatlara ehtiyac duyduğuna və onu kiminlə paylaşacağına qərar verir. Bütün bu məlumatlar istifadəçinin cihazında yerləşir. Ancaq mübadilə üçün kriptoqrafik sübutların saxlanması üçün mərkəzləşdirilməmiş sistemə ehtiyacımız olacaq. SSI konsepsiyasının bütün müasir tətbiqləri blokçeyndən yaddaş kimi istifadə edir.

"Bunun çuxurdakı asla nə əlaqəsi var?" - soruşursan. Biz Berlin və Bonn şəhərlərində öz əməkdaşlarımız üçün daxili sınaq xidmətini işə saldıq və alman həmkarlar ittifaqları şəklində çətinliklərlə qarşılaşdıq. Almaniyada şirkətlərə işçilərin hərəkətini izləmək qadağandır və həmkarlar ittifaqları buna nəzarət edir. Bu məhdudiyyətlər istifadəçi identifikasiyası məlumatlarının mərkəzləşdirilmiş saxlanmasına son qoyur, çünki bu halda biz işçilərin yerini bilmiş olarıq. Eyni zamanda, skuterlərin oğurlanması ehtimalına görə onları yoxlamağa kömək edə bilmədik. Lakin Self-Suveren Identity sayəsində istifadəçilərimiz sistemdən anonim istifadə etdilər və skuterin özü icarəyə başlamazdan əvvəl onların sürücülük vəsiqəsini yoxladı. Nəticədə biz anonim istifadəçi ölçülərini saxladıq, heç bir sənədimiz və ya şəxsi məlumatımız yox idi: onların hamısı sürücülərin öz cihazlarında var idi. Beləliklə, SGK sayəsində layihəmizdəki problemin həlli hələ ortaya çıxmamış hazır idi.

Cihaz mənə problem yaratdı

Biz Self-Suveren Identity-ni özümüz həyata keçirmədik, çünki kriptoqrafiya sahəsində təcrübə və çox vaxt tələb olunur. Bunun əvəzinə biz tərəfdaşlarımız Jolocom-un məhsulundan istifadə etdik və onların mobil pul kisəsini və xidmətlərini platformamıza inteqrasiya etdik. Təəssüf ki, bu məhsulun bir əhəmiyyətli çatışmazlığı var: əsas inkişaf dili Node.js-dir.

Bu texnologiya yığını skuterdə quraşdırılmış avadanlıq seçimimizi xeyli məhdudlaşdırır. Xoşbəxtlikdən, layihənin lap əvvəlində biz Raspberry Pi Zero-nu seçdik və tam hüquqlu mikrokompüterin bütün üstünlüklərindən yararlandıq. Bu, skuterdə həcmli Node.js-i işlətməyə imkan verdi. Bundan əlavə, biz hazır alətlərdən istifadə edərək VPN vasitəsilə monitorinq və uzaqdan giriş əldə etdik.

Nəticədə

Bütün “ağrılara” və problemlərə baxmayaraq, layihəyə start verildi. Hər şey planlaşdırdığımız kimi olmadı, amma həqiqətən də skuterləri icarəyə götürərək sürmək mümkün idi.

Bəli, arxitekturanı tərtib edərkən bir sıra səhvlərə yol verdik ki, bu da bizə xidməti tam mərkəzsizləşdirməyə imkan vermədi, lakin bu səhvlər olmasa belə, çətin ki, serversiz platforma yarada bildik. Başqa bir kripto-piramida yazmaq bir şeydir, səhvləri idarə etməli, sərhəd işlərini həll etməli və gözlənilən tapşırıqları yerinə yetirməli olduğunuz tam hüquqlu bir xidmət yazmaq başqa şeydir. Ümid edək ki, bu yaxınlarda ortaya çıxan yeni platformalar daha çevik və funksional olacaq.

Mənbə: www.habr.com

Добавить комментарий