Орталықтандырылмаған скутерді жалға алу үшін бағдарламалық жасақтаманы әзірлеу. Бұл оңай болады деп кім айтты?

Бұл мақалада мен ақылды келісімшарттар бойынша орталықтандырылмаған скутерді жалға алуды қалай құруға тырысқанымыз және неліктен бізге орталықтандырылған қызмет қажет екендігі туралы сөйлесемін.

Орталықтандырылмаған скутерді жалға алу үшін бағдарламалық жасақтаманы әзірлеу. Бұл оңай болады деп кім айтты?

Бұл қалай басталды

2018 жылдың қарашасында біз заттар интернеті мен блокчейнге арналған хакатонға қатыстық. Біздің команда идея ретінде скутермен бөлісуді таңдады, өйткені бізде осы хакатонның демеушісі скутер алды. Прототип NFC арқылы скутерді іске қосуға мүмкіндік беретін мобильді қосымшаға ұқсады. Маркетингтік тұрғыдан алғанда, бұл идеяны кез келген адам жалға алушы немесе жалға беруші бола алатын ашық экожүйесі бар «жарқын болашақ» туралы әңгіме қолдады, барлығы ақылды келісімшарттарға негізделген.

Біздің мүдделі тараптарымызға бұл идея қатты ұнады және олар оны көрмелерде көрсету үшін прототипке айналдыруды шешті. 2019 жылы Mobile World Congress және Bosch Connected World бірнеше сәтті демонстрацияларынан кейін скутерді жалға алуды нақты пайдаланушылармен, Deutsche Telekom қызметкерлерімен сынау туралы шешім қабылданды. Осылайша, біз толыққанды MVP әзірлеуді бастадық.

Балдаққа салынған блокчейн

Сахнада көрсетілетін жоба мен шынайы адамдар қолданатын жобаның айырмашылығы неде екенін түсіндірудің қажеті жоқ деп ойлаймын. Алты айдың ішінде біз шикі прототипті ұшқышқа қолайлы нәрсеге айналдыруымыз керек еді. Содан кейін біз «ауырсыну» дегеннің не екенін түсіндік.

Жүйемізді орталықтандырылмаған және ашық ету үшін біз Ethereum смарт келісімшарттарын пайдалануды шештік. Таңдау осы орталықтандырылмаған онлайн қызметтер платформасына түсті, себебі оның танымалдығы және серверсіз қосымшаны құру мүмкіндігі. Біз жобамызды келесідей жүзеге асыруды жоспарладық.

Орталықтандырылмаған скутерді жалға алу үшін бағдарламалық жасақтаманы әзірлеу. Бұл оңай болады деп кім айтты?

Бірақ, өкінішке орай, смарт келісімшарт транзакция кезінде виртуалды машинамен орындалатын код болып табылады және ол толыққанды серверді алмастыра алмайды. Мысалы, смарт келісімшарт күтудегі немесе жоспарланған әрекеттерді орындай алмайды. Біздің жобамызда бұл бізге қазіргі заманғы көлікті бөлісу қызметтерінің көпшілігі сияқты минутына жалға беру қызметін жүзеге асыруға мүмкіндік бермеді. Сондықтан, біз транзакцияны аяқтағаннан кейін оның ақшасы жеткілікті екеніне сенімді болмай, пайдаланушыдан криптовалютаны есептен шығардық. Бұл тәсіл тек ішкі пилот үшін қолайлы және, әрине, толыққанды өндірістік жобаны жобалау кезінде қиындықтарды қосады.

Жоғарыда айтылғандардың барлығына платформаның ылғалдылығы қосылады. Мысалы, ERC-20 таңбалауыштарынан өзгеше логикасы бар смарт келісім-шартты жазсаңыз, қателерді өңдеу мәселелеріне тап боласыз. Әдетте, енгізу дұрыс болмаса немесе әдістеріміз дұрыс жұмыс істемесе, жауап ретінде қате кодын аламыз. Ethereum жағдайында біз бұл функцияны орындау үшін жұмсалған газдың көлемінен басқа ештеңе ала алмаймыз. Газ - бұл транзакциялар мен есептеулер үшін төленетін валюта: кодыңыздағы операциялар неғұрлым көп болса, соғұрлым көп төлейсіз. Кодтың неліктен жұмыс істемейтінін түсіну үшін алдымен оны барлық ықтимал қателерді модельдеу және қате коды ретінде жұмсалған газды қатты кодтау арқылы сынап көріңіз. Бірақ кодты өзгертсеңіз, бұл қатені өңдеу бұзылады.

Сонымен қатар, бұлтта бір жерде сақталған кілтті пайдаланбай, блокчейнмен адал жұмыс істейтін мобильді қосымшаны жасау мүмкін емес. Адал әмияндар бар болса да, олар сыртқы транзакцияларға қол қою үшін интерфейстерді қамтамасыз етпейді. Бұл пайдаланушылар сенбейтін (мен оған сенбеймін) кірістірілген криптовалюта болмаса, жергілікті қолданбаны көрмейсіз дегенді білдіреді. Соның салдарынан біз де осы жерден бір бұрышты кесуге мәжбүр болдық. Ақылды келісімшарттар жеке Ethereum желісіне жеткізілді, ал әмиян бұлтқа негізделген. Бірақ соған қарамастан, біздің пайдаланушылар орталықтандырылмаған қызметтердің барлық «рахаттануын» жалға алу сессиясына бірнеше рет транзакцияларды ұзақ күту түріндегі бастан кешірді.

Осының бәрі бізді осы архитектураға жетелейді. Келісіңіз, бұл біз жоспарлағанымыздан мүлде басқаша.

Орталықтандырылмаған скутерді жалға алу үшін бағдарламалық жасақтаманы әзірлеу. Бұл оңай болады деп кім айтты?

Тесіктегі Эйс: өзін-өзі егемендік сәйкестендіру

Сіз орталықтандырылмаған сәйкестіксіз толығымен орталықтандырылмаған жүйені құра алмайсыз. Өзін-өзі егемендік сәйкестендіру (SSI) осы бөлікке жауап береді, оның мәні орталықтандырылған сәйкестендіру провайдерін (IDP) лақтырып, барлық деректер мен ол үшін жауапкершілікті адамдарға таратады. Енді пайдаланушы өзіне қандай деректер қажет екенін және оны кіммен бөлісетінін шешеді. Бұл ақпараттың барлығы пайдаланушының құрылғысында орналасқан. Бірақ алмасу үшін бізге криптографиялық дәлелдемелерді сақтауға арналған орталықтандырылмаған жүйе қажет болады. SSI тұжырымдамасының барлық заманауи енгізулері блокчейнді сақтау ретінде пайдаланады.

«Мұның шұңқырдағы эйске не қатысы бар?» - сен сұрадың. Біз Берлин мен Бонндағы өз қызметкерлерімізде ішкі тестілеу қызметін іске қостық және неміс кәсіподақтары түрінде қиындықтарға тап болдық. Германияда компанияларға қызметкерлердің қозғалысын бақылауға тыйым салынады, ал кәсіподақтар мұны бақылайды. Бұл шектеулер пайдаланушының жеке басын куәландыратын деректердің орталықтандырылған сақталуын тоқтатады, өйткені бұл жағдайда біз қызметкерлердің орналасқан жерін білетін болар едік. Сонымен бірге скутерлердің ұрлануы мүмкін болғандықтан, біз оларды тексермей тұра алмадық. Бірақ Self-Suveren Identity арқасында біздің пайдаланушылар жүйені жасырын түрде пайдаланды, ал скутердің өзі жалға алуды бастамас бұрын жүргізуші куәлігін тексерді. Нәтижесінде біз анонимді пайдаланушы көрсеткіштерін сақтадық, бізде ешқандай құжаттар немесе жеке деректер болмады: олардың барлығы драйверлердің құрылғыларында болды. Осылайша, SSI арқасында біздің жобадағы мәселенің шешімі ол пайда болғанға дейін дайын болды.

Құрылғы маған қиындықтар туғызды

Біз өзін-өзі егемендік сәйкестендіруді өзіміз жүзеге асырмадық, өйткені ол криптография саласындағы тәжірибені және көп уақытты қажет етеді. Оның орнына біз серіктестеріміздің Jolocom өнімін пайдаланып, олардың мобильді әмияндары мен қызметтерін платформамызға біріктірдік. Өкінішке орай, бұл өнімнің бір маңызды кемшілігі бар: негізгі әзірлеу тілі - Node.js.

Бұл технология скутері скутерге орнатылған жабдықты таңдауымызды айтарлықтай шектейді. Бақытымызға орай, жобаның ең басында біз Raspberry Pi Zero таңдадық және біз толыққанды микрокомпьютердің барлық артықшылықтарын пайдаландық. Бұл скутерде көлемді Node.js іске қосуға мүмкіндік берді. Сонымен қатар, біз дайын құралдарды пайдалана отырып, VPN арқылы бақылау және қашықтан қол жеткізуді алдық.

Қорытындылай келе

Барлық «ауыртпалықтар» мен қиындықтарға қарамастан, жоба іске қосылды. Барлығы біз ойлағандай болмады, бірақ скутерлерді жалға алу арқылы мінуге шынымен де мүмкін болды.

Иә, біз архитектураны жобалау кезінде сервисті толығымен орталықсыздандыруға мүмкіндік бермейтін бірқатар қателіктер жібердік, бірақ бұл қателер болмаса да, серверсіз платформаны жасай алмас едік. Басқа крипто-пирамиданы жазу бір нәрсе, ал қателерді өңдеу, шекаралық істерді шешу және күтпеген тапсырмаларды орындау қажет толыққанды қызметті жазу басқа. Жақында пайда болған жаңа платформалар икемді және функционалды болады деп үміттенейік.

Ақпарат көзі: www.habr.com

пікір қалдыру