Technický úvod do dapp
Decentralizovaná aplikace (dapp) je aplikace postavená na decentralizované síti, která kombinuje chytrý kontrakt a uživatelské rozhraní (frontend). Na Ethereu jsou chytré kontrakty přístupné a transparentní – podobně jako otevřená API – takže vaše dapp může dokonce obsahovat chytrý kontrakt, který napsal někdo jiný.
Předpoklady
Než se začnete učit o dapp, měli byste znát základy blockchainu a přečíst si o síti Ethereum a o tom, jak je decentralizovaná.
Definice dapp
Dapp má svůj backendový kód spuštěný na decentralizované peer-to-peer síti. V porovnání s tím má běžná aplikace backendový kód spuštěný na centralizovaných serverech.
Dapp může mít frontendový kód a uživatelská rozhraní napsaná v jakémkoli jazyce (stejně jako běžná aplikace), aby mohla volat svůj backend. Její frontend navíc může být hostován na decentralizovaném úložišti, jako je IPFS (opens in a new tab).
- Decentralizované – dapp fungují na Ethereu, otevřené veřejné decentralizované platformě, kterou neovládá žádný jednotlivec ani skupina.
- Deterministické – dapp vykonávají stejnou funkci bez ohledu na prostředí, ve kterém jsou spuštěny.
- Turingovsky úplné – dapp mohou provést jakoukoli akci, pokud mají k dispozici požadované zdroje.
- Izolované – dapp jsou spouštěny ve virtuálním prostředí známém jako Ethereum Virtual Machine (EVM), takže pokud má chytrý kontrakt chybu, nenaruší to normální fungování blockchainové sítě.
O chytrých kontraktech
Abychom mohli představit dapp, musíme si představit chytré kontrakty – backend dapp, pro nedostatek lepšího termínu. Pro podrobný přehled přejděte do naší sekce o chytrých kontraktech.
Chytrý kontrakt je kód, který žije na blockchainu Etherea a běží přesně tak, jak byl naprogramován. Jakmile jsou chytré kontrakty nasazeny do sítě, nemůžete je změnit. Dapp mohou být decentralizované, protože jsou řízeny logikou zapsanou v kontraktu, nikoli jednotlivcem nebo společností. To také znamená, že musíte své kontrakty navrhovat velmi pečlivě a důkladně je testovat.
Výhody vývoje dapp
- Nulové výpadky – Jakmile je chytrý kontrakt nasazen na blockchain, síť jako celek bude vždy schopna obsloužit klienty, kteří chtějí s kontraktem interagovat. Zlomyslní aktéři proto nemohou spouštět útoky odepření služby (DoS) zaměřené na jednotlivé dapp.
- Soukromí – K nasazení nebo interakci s dapp nemusíte poskytovat svou skutečnou identitu.
- Odolnost vůči cenzuře – Žádná jediná entita v síti nemůže uživatelům zablokovat odesílání transakcí, nasazování dapp nebo čtení dat z blockchainu.
- Úplná integrita dat – Data uložená na blockchainu jsou neměnná a nezpochybnitelná díky kryptografickým primitivům. Zlomyslní aktéři nemohou padělat transakce ani jiná data, která již byla zveřejněna.
- Výpočty nevyžadující důvěru / ověřitelné chování – Chytré kontrakty lze analyzovat a je zaručeno, že se budou provádět předvídatelným způsobem, aniž by bylo nutné důvěřovat centrální autoritě. To v tradičních modelech neplatí; například když používáme systémy online bankovnictví, musíme věřit, že finanční instituce nezneužijí naše finanční údaje, nebudou manipulovat se záznamy nebo nebudou hacknuty.
Nevýhody vývoje dapp
- Údržba – Dapp může být obtížnější udržovat, protože kód a data publikovaná na blockchainu je těžší upravit. Pro vývojáře je obtížné provádět aktualizace svých dapp (nebo podkladových dat uložených v dapp) po jejich nasazení, a to i v případě, že jsou ve staré verzi zjištěny chyby nebo bezpečnostní rizika.
- Výkonnostní režie – Existuje obrovská výkonnostní režie a škálování je opravdu těžké. K dosažení úrovně bezpečnosti, integrity, transparentnosti a spolehlivosti, o kterou Ethereum usiluje, každý uzel spouští a ukládá každou transakci. Navíc konsensus důkaz podílem (PoS) také zabere nějaký čas.
- Přetížení sítě – Když jedna dapp využívá příliš mnoho výpočetních zdrojů, celá síť se zpomalí. V současné době dokáže síť zpracovat pouze asi 10–15 transakcí za sekundu; pokud jsou transakce odesílány rychleji, fond nepotvrzených transakcí se může rychle nafouknout.
- Uživatelská zkušenost – Může být těžší navrhnout uživatelsky přívětivé prostředí, protože pro průměrného koncového uživatele může být příliš obtížné nastavit sadu nástrojů nezbytnou pro skutečně bezpečnou interakci s blockchainem.
- Centralizace – Uživatelsky a vývojářsky přívětivá řešení postavená na základní vrstvě Etherea mohou nakonec stejně vypadat jako centralizované služby. Takové služby mohou například ukládat klíče nebo jiné citlivé informace na straně serveru, poskytovat frontend pomocí centralizovaného serveru nebo spouštět důležitou obchodní logiku na centralizovaném serveru před zápisem na blockchain. Centralizace eliminuje mnoho (ne-li všechny) výhod blockchainu oproti tradičnímu modelu.
Učíte se raději vizuálně?
Nástroje pro tvorbu dapp
Scaffold-ETH – Rychle experimentujte se Solidity pomocí frontendu, který se přizpůsobí vašemu chytrému kontraktu.
Create Eth App – Vytvářejte aplikace poháněné Ethereem pomocí jednoho příkazu.
One Click Dapp – FOSS nástroj pro generování frontendů dapp z .
Etherflow – FOSS nástroj pro vývojáře na Ethereu k testování jejich uzlu a sestavování a ladění RPC volání z prohlížeče.
thirdweb – SDK v každém jazyce, chytré kontrakty, nástroje a infrastruktura pro vývoj ve Web3.
Crossmint – Podniková platforma pro vývoj ve Web3 k nasazování chytrých kontraktů, umožnění plateb kreditními kartami a cross-chain plateb a používání API k vytváření, distribuci, prodeji, ukládání a úpravám NFT.
Další čtení
- Prozkoumejte dapp
- Architektura aplikace Web 3.0 (opens in a new tab) – Preethi Kasireddy
- Průvodce decentralizovanými aplikacemi pro rok 2021 (opens in a new tab) – LimeChain
- Co jsou decentralizované aplikace? (opens in a new tab) – Gemini
- Populární dapp (opens in a new tab) – Alchemy
Víte o komunitním zdroji, který vám pomohl? Upravte tuto stránku a přidejte ho!
Související témata
Návody: Tvorba aplikací a frontendů na Ethereu
- Průvodce kontrakty Uniswap-v2 – Komentovaný průvodce hlavními kontrakty Uniswap v2 vysvětlující, jak funguje automatizovaný tvůrce trhu (AMM).
- Tvorba uživatelského rozhraní pro váš kontrakt – Jak vytvořit moderní frontend pomocí React + Wagmi, který se připojí k vašemu chytrému kontraktu.
- Chytrý kontrakt Hello World pro začátečníky – Fullstack – Komplexní návod: napište, nasaďte a vytvořte frontend pro jednoduchý chytrý kontrakt.
- Serverové komponenty a agenti pro aplikace Web3 – Jak psát serverové komponenty v TypeScriptu, které naslouchají událostem na blockchainu a reagují transakcemi.
- IPFS pro decentralizovaná uživatelská rozhraní – Jak hostovat frontend vaší dapp na IPFS pro odolnost vůči cenzuře.