Návrhové vzory: App vs. Dapp

Rozhodli jsme se vytvořit jednoduchou aplikaci pro registraci jména na ethereum blockchain. Mysleli jsme si, že nastavení tohoto jednoduchého webu by bylo hračkou. Jeden se může naučit základní koncepty blockchainu za pár týdnů, velikost většiny aplikací blockchainu je nyní dostatečně malá na to, aby se o víkendu zaplavila, a aplikace, kterou jsme si naplánovali, byla vyzkoušená a skutečná aplikace elektronického obchodování - vyhledávání název domény a koupit. Nemůže být jednodušší než to. Ale tady je příběh ošklivý. Naše malá demo aplikace pro ethereum klesla 5krát za 5 týdnů. A my jsme neměli žádný provoz - myslím, že naše nejvyšší zatížení bylo, když můj nejlepší přítel a jeho kočka narazili na naše stránky současně. Problém? Ukázalo se, že jsme měli špatně naši infrastrukturu, databázi a model zákaznických dat.

Lekce jedna: Použijte hostovaného poskytovatele služeb uzlů místo hostování vlastních uzlů pro vytváření aplikací blockchainu. Když se dostanete do velké velikosti, můžete (a měli byste) provozovat vlastní flotilu uzlů a najmout někoho na plný úvazek, aby to udělal, ale pro začátek stačí použít koncový bod api. Mnohem jednodušší. Hodně páni.

Rád provozuji věci lokálně - je dobré být blízko vašim vlastním systémům a datům. Provozovali jsme vlastní uzel. To v podstatě znamenalo, že jsme museli na našem serveru utratit dalších 50 dolarů měsíčně, což byl obrovský paměťový prase, a neustále jsme museli aktualizovat software uzlů, který byl někdy trochu buggy (a to je v pořádku, je to špičková technologie). Ale pro vývoj aplikací blockchainu - alespoň v raných fázích - je to zbytečné. Pokud chcete trávit čas aplikací a ne vývojářem místního uzlu, použijte dobře spravovanou hostovanou službu ethereum-uzel, která se o vás postará všechny nuance.

Lekce 2: Zbavte se své databáze. Pokud ukládáte stav někde ve své aplikaci, pravděpodobně to děláte špatně. Decentralizovaná aplikace by měla žít na blockchainu (a IPFS atd., Budoucnost se blíží).

Naše databáze byla špatně promyšlená. Nakonec jsme v naší vlastní databázi skončili replikační stav. A protože vám to může kdokoli říct, až budete mít dva stavy státu (naše databáze a blockchain), je zaručeno, že budete mít špatný čas. Pokaždé, když náš uzel klesl nebo byl odpojen, přihlásili jsme se zpět k řadě chyb. Vytvořili jsme skripty, abychom to vyčistili. A pak se ručně vrátil ke kontrole. Nakonec se však na sebe podívali a řekli: „Co to děláme? proč se prostě nezbavíme databáze a nepoužíváme blockchainu pro stav a odtamtud? Proč ukládáme data? “Vytrhli jsme naši databázi. A připadalo mi to jako zjevení. Proč to trvalo tak dlouho přijít na to? Nemyslím si, že to budu vědět.

Lekce 3: Zavázat se k datům vlastněných uživatelem. Zde se účtují počáteční náklady, kdy se uživatelé musí naučit, jak správně ukládat a zabezpečovat svá data - v našem případě jejich soukromé klíče od ethereum - a budete je muset zapracovat, aby to pro vaše uživatele bylo co nejjednodušší. Ale stojí to za to.

Dále jsme měli tento otravný problém s vazbou - kupovali jsme jména jménem uživatelů. Budoucností blockchainových aplikací jsou uživatelé vlastnící svá vlastní data, což uživateli otevírá celou řadu úžasných možností. V našem případě to znamená, že uživatelé mají vyšší úroveň ochrany osobních údajů, nemusejí se starat o výchozí úschovu a mohou své podnikání podniknout jinde, kdykoli chtějí, neprobíhají jejich data (na rozdíl od běžných DNS, které mohou trvat týden) převést). Data vlastněná uživateli jsou pro uživatele atraktivní, protože se na vás nemusí spoléhat a jsou atraktivní pro podnikání, protože můžete zbavit své péče o zákazníka a soustředit se na svou aplikaci. Lepší stavět pro budoucnost než minulost.

Bojovali jsme s nastavením infrastruktury, pustili jsme se za správu našeho státu na lokální úrovni a zavázali se vlastnit data uživatelů. Cestou jsme udělali několik chyb, ale skončili jsme s dappem, na který jsme hrdí. A neukládáme žádná uživatelská data, nemáme interní databázi nebo flotilu vlastních hostovaných uzlů (zatím!). Hlavní příčinou nebyla obtížnost nové technologie, velikost úkolu nebo „novost“ technologie. Byla to „filozofie“ vývoje aplikace blockchain. Ale už ne. Všichni jsme s blockchainem jako jediným zdrojem nebo stavem, plnou kontrolou uživatele a uživatelskými daty. Nedíváme se zpět. Máme spoustu legrace a těšíme se, až budeme pokračovat v cestě dolů do kráterské díry.