Шаблоны дызайну: App супраць Dapp

Мы пастанавілі стварыць простае прыкладанне для рэгістрацыі імя на блок-ланцугу ethereum. Мы думалі, што стварэнне гэтага простага сайта будзе простым. Можна даведацца асноўныя канцэпцыі blockchain за некалькі тыдняў, памер большасці прыкладанняў blockchain цяпер дастаткова малы, каб пайсці на выходныя, і дадатак, якое мы збіраліся стварыць, было выпрабаваным і сапраўдным дадаткам для электроннай камерцыі - пошук даменнае імя і купіце яго. Немагчыма зрабіць што-небудзь прасцейшае. Але тут гісторыя атрымліваецца непрыгожай. Наша маленькае дэманстрацыйнае прыкладанне ethereum знізілася 5 разоў за 5 тыдняў. І ў нас не было руху - я думаю, што наш пік быў тады, калі мой лепшы сябар і яго кошка адначасова трапілі на наш сайт. Праблема? Аказваецца, у нас была няправільная інфраструктура, база дадзеных і мадэль дадзеных аб кліентах.

Першы ўрок: выкарыстоўвайце пастаўшчыка паслуг размешчанага вузла замест размяшчэння ўласных вузлоў для стварэння прыкладанняў blockchain. Калі вы атрымаеце вялікую колькасць, вы можаце (і павінны) запусціць свой уласны парк вузлоў і наняць каго-небудзь поўны працоўны дзень для гэтага, але для пачатку проста выкарыстоўвайце канчатковую кропку API. Значна прасцей. Шмат нічога сабе.

Мне падабаецца кіраваць справамі на мясцовым узроўні - добра быць побач з уласнымі сістэмамі і дадзенымі. У нас быў уласны вузел. Гэта ў асноўным азначала, што прыходзіцца марнаваць больш 50 долараў у месяц на нашым серверы, які быў велізарнай парсюком памяці і ўвесь час даводзілася абнаўляць праграмнае забеспячэнне для вузлоў, якое часам было крыху багі (і гэта нармальна, гэта перадавыя тэхналогіі). Але для распрацоўкі прыкладанняў blockchain - прынамсі, на ранніх этапах - гэта залішняя праца. Калі вы хочаце марнаваць свой час на прыкладанне, а не на dev-ops для вашага лакальнага вузла, скарыстайцеся добра кіраванай службай размешчанага вузла ethereum, які зможа паклапаціцца пра ўсе нюансы для вас.

Урок другі: Пазбаўцеся ад вашай базы дадзеных. Калі вы захоўваеце стан дзе-небудзь у сваім дадатку, вы, верагодна, робіце гэта няправільна. Дэцэнтралізаванае прыкладанне павінна жыць на blockchain (і IPFS і г.д., будучыня).

Наша база дадзеных была дрэнна прадумана. Мы ў канчатковым выніку рэплікацыі стану ў нашай уласнай базе дадзеных. І як хто-небудзь можа сказаць вам, што ў вас ёсць два выпадкі стану (наша база дадзеных і blockchain), вы гарантавана правядзеце час. Кожны раз, калі наш вузел ішоў ці адключаўся, мы ўвайшлі ў сістэму памылак. Мы зрабілі сцэнарыі, каб ачысціць яго. А потым уручную вярнуўся, каб праверыць. Але ўрэшце пераглянуліся і сказалі: "Што мы робім? чаму мы проста не пазбаўляемся ад базы дадзеных і не выкарыстоўваем blockchain для state і ідзем адтуль? чаму мы захоўваем дадзеныя? "Мы сарвалі нашу базу дадзеных. І гэта здавалася адкрыццём. Чаму гэта заняло так шмат часу, каб высветліць? Я не думаю, што ніколі не ведаю

Трэці ўрок: Звязацца з дадзенымі, якія належаць карыстальнікам. Тут ёсць дадатковая плата, калі карыстальнікі павінны навучыцца правільна захоўваць і засцерагаць свае дадзеныя - у нашым выпадку прыватныя ключы ethereum - і вам трэба будзе паставіць працу, каб зрабіць гэта максімальна простым для вашых карыстальнікаў. Але гэта таго вартае

Далей у нас была гэтая надакучлівая праблема апекі - мы куплялі імёны ад імя карыстальнікаў. Будучыня blockchain - гэта карыстальнікі, якія валодаюць ўласнымі дадзенымі, і гэта адкрывае для карыстальнікаў цэлы шэраг дзіўных магчымасцей. У нашым выпадку гэта азначае, што карыстальнікі маюць больш высокі ўзровень канфідэнцыяльнасці, не трэба турбавацца пра захаванне па змаўчанні і могуць весці свой бізнес у іншым месцы, калі яны хочуць, каб мы не трымалі свае дадзеныя (у адрозненне ад звычайных DNS, якія могуць заняць тыдзень перавесці). Дадзеныя, якія належаць карыстальнікам, прывабныя для карыстальнікаў, таму што яны не павінны разлічваць на вас, і прывабныя для бізнесу, таму што вы можаце разгрузіць праблемы, звязаныя з апекай і засяродзіцца на сваім дадатку. Лепш будаваць на будучыню, чым на мінулым.

Мы змагаліся з наладай інфраструктуры, адмаўляючыся кіраваць нашымі штатамі на мясцовым узроўні і абавязваемся карыстацца дадзенымі карыстальнікаў. Мы зрабілі некалькі памылак на гэтым шляху, але ў канчатковым выніку з'явілася дзіва, якім мы ганарымся. І мы не захоўваем ніякіх дадзеных карыстальнікаў, не маем унутранай базы дадзеных, альбо аўтапарку ўласных вузлоў (пакуль!). Першапрычынай стала не складанасць новай тэхналогіі, не памер задачы, альбо "навізна" тэхналогіі. Гэта была "філасофія" распрацоўкі прыкладанняў blockchain. Але не больш. Мы ўсе ў супрацоўніцтве з blockchain як адзіная крыніца альбо стан, поўны кантроль над карыстальнікамі і дадзеныя, якія належаць карыстачу. Мы не азіраемся. Мы весела і чакаем працягу нашага шляху па дзірцы з труса.