Techniczne wprowadzenie do dappów
Zdecentralizowana aplikacja (dapp) to aplikacja zbudowana w zdecentralizowanej sieci, która łączy inteligentny kontrakt z interfejsem użytkownika (frontend). W sieci Ethereum inteligentne kontrakty są dostępne i przejrzyste – podobnie jak otwarte API – więc Twoja zdecentralizowana aplikacja (dapp) może nawet zawierać inteligentny kontrakt napisany przez kogoś innego.
Wymagania wstępne
Przed rozpoczęciem nauki o dappach, powinieneś opanować podstawy blockchaina oraz przeczytać o sieci Ethereum i o tym, jak jest zdecentralizowana.
Definicja dappa
Zdecentralizowana aplikacja (dapp) ma swój kod backendowy uruchomiony w zdecentralizowanej sieci peer-to-peer. Stanowi to przeciwieństwo tradycyjnej aplikacji, w której kod backendowy działa na scentralizowanych serwerach.
Dapp może mieć kod frontendowy i interfejsy użytkownika napisane w dowolnym języku (podobnie jak zwykła aplikacja), aby wywoływać swój backend. Co więcej, jej frontend może być hostowany w zdecentralizowanym magazynie danych, takim jak IPFS (opens in a new tab).
- Zdecentralizowany – dappy działają na Ethereum, otwartej, publicznej i zdecentralizowanej platformie, nad którą żadna pojedyncza osoba ani grupa nie ma kontroli.
- Deterministyczny – dappy wykonują tę samą funkcję niezależnie od środowiska, w którym są uruchamiane.
- Kompletny w sensie Turinga – dappy mogą wykonać dowolną akcję, jeśli dysponują wymaganymi zasobami.
- Izolowany – dappy są wykonywane w wirtualnym środowisku znanym jako Maszyna Wirtualna Ethereum (EVM), dzięki czemu, jeśli inteligentny kontrakt zawiera błąd, nie zakłóci to normalnego funkcjonowania sieci blockchain.
O inteligentnych kontraktach
Aby przedstawić dappy, musimy wprowadzić pojęcie inteligentnych kontraktów – z braku lepszego określenia, backendu dappa. Aby uzyskać szczegółowe informacje, przejdź do naszej sekcji o inteligentnych kontraktach.
Inteligentny kontrakt to kod, który istnieje na blockchainie Ethereum i działa dokładnie tak, jak został zaprogramowany. Po wdrożeniu inteligentnych kontraktów w sieci nie można ich zmienić. Dappy mogą być zdecentralizowane, ponieważ są kontrolowane przez logikę zapisaną w kontrakcie, a nie przez osobę fizyczną lub firmę. Oznacza to również, że musisz bardzo starannie projektować swoje kontrakty i dokładnie je testować.
Korzyści z tworzenia dappów
- Brak przestojów – po wdrożeniu inteligentnego kontraktu na blockchainie, sieć jako całość zawsze będzie w stanie obsługiwać klientów chcących wejść w interakcję z kontraktem. Złośliwi aktorzy nie mogą zatem przeprowadzać ataków typu odmowa usługi (DoS) wymierzonych w poszczególne dappy.
- Prywatność – nie musisz podawać swojej prawdziwej tożsamości, aby wdrożyć dappa lub wejść z nim w interakcję.
- Odporność na cenzurę – żaden pojedynczy podmiot w sieci nie może zablokować użytkownikom możliwości wysyłania transakcji, wdrażania dappów ani odczytywania danych z blockchaina.
- Pełna integralność danych – dane przechowywane na blockchainie są niezmienne i bezsporne dzięki prymitywom kryptograficznym. Złośliwi aktorzy nie mogą fałszować transakcji ani innych danych, które zostały już upublicznione.
- Niewymagające zaufania obliczenia/weryfikowalne zachowanie – inteligentne kontrakty mogą być analizowane i gwarantują wykonanie w przewidywalny sposób, bez konieczności ufania centralnemu organowi. Nie jest to prawdą w tradycyjnych modelach; na przykład, gdy korzystamy z systemów bankowości internetowej, musimy ufać, że instytucje finansowe nie nadużyją naszych danych finansowych, nie sfałszują rejestrów ani nie zostaną zhakowane.
Wady tworzenia dappów
- Utrzymanie – dappy mogą być trudniejsze w utrzymaniu, ponieważ kod i dane opublikowane na blockchainie są trudniejsze do modyfikacji. Programistom trudno jest aktualizować swoje dappy (lub podstawowe dane przechowywane przez dappa) po ich wdrożeniu, nawet jeśli w starej wersji zostaną zidentyfikowane błędy lub zagrożenia bezpieczeństwa.
- Narzut wydajnościowy – istnieje ogromny narzut wydajnościowy, a skalowanie jest naprawdę trudne. Aby osiągnąć poziom bezpieczeństwa, integralności, przejrzystości i niezawodności, do którego dąży Ethereum, każdy węzeł uruchamia i przechowuje każdą transakcję. Ponadto konsensus oparty na dowodzie stawki (PoS) również wymaga czasu.
- Zatory w sieci – gdy jeden dapp zużywa zbyt wiele zasobów obliczeniowych, cała sieć ulega spowolnieniu. Obecnie sieć może przetwarzać tylko około 10-15 transakcji na sekundę; jeśli transakcje są wysyłane szybciej, pula niepotwierdzonych transakcji może szybko wzrosnąć.
- Doświadczenie użytkownika (UX) – zaprojektowanie przyjaznego dla użytkownika doświadczenia może być trudniejsze, ponieważ przeciętny użytkownik końcowy może uznać za zbyt trudne skonfigurowanie stosu narzędzi niezbędnych do interakcji z blockchainem w naprawdę bezpieczny sposób.
- Centralizacja – przyjazne dla użytkowników i programistów rozwiązania zbudowane na warstwie bazowej Ethereum mogą i tak ostatecznie przypominać scentralizowane usługi. Na przykład takie usługi mogą przechowywać klucze lub inne poufne informacje po stronie serwera, obsługiwać frontend za pomocą scentralizowanego serwera lub uruchamiać ważną logikę biznesową na scentralizowanym serwerze przed zapisaniem danych na blockchainie. Centralizacja eliminuje wiele (jeśli nie wszystkie) zalet blockchaina w porównaniu z tradycyjnym modelem.
Wolisz uczyć się wzrokowo?
Narzędzia do tworzenia dappów
Scaffold-ETH – Szybko eksperymentuj z Solidity, używając frontendu, który dostosowuje się do Twojego inteligentnego kontraktu.
Create Eth App – Twórz aplikacje oparte na Ethereum za pomocą jednego polecenia.
One Click Dapp – Narzędzie FOSS do generowania frontendów dappów z .
Etherflow – Narzędzie FOSS dla programistów Ethereum do testowania ich węzła oraz tworzenia i debugowania wywołań RPC z poziomu przeglądarki.
thirdweb – SDK w każdym języku, inteligentne kontrakty, narzędzia i infrastruktura do tworzenia w Web3.
Crossmint – Platforma programistyczna Web3 klasy korporacyjnej do wdrażania inteligentnych kontraktów, obsługi płatności kartą kredytową i płatności międzyłańcuchowych oraz korzystania z API do tworzenia, dystrybucji, sprzedaży, przechowywania i edycji NFT.
Dalsza lektura
- Odkrywaj dappy
- Architektura aplikacji Web 3.0 (opens in a new tab) – Preethi Kasireddy
- Przewodnik po zdecentralizowanych aplikacjach z 2021 r. (opens in a new tab) – LimeChain
- Czym są zdecentralizowane aplikacje? (opens in a new tab) – Gemini
- Popularne dappy (opens in a new tab) – Alchemy
Znasz zasób społeczności, który Ci pomógł? Edytuj tę stronę i dodaj go!
Powiązane tematy
Samouczki: Tworzenie aplikacji i frontendów na Ethereum
- Przewodnik po kontraktach Uniswap-v2 – Przewodnik z adnotacjami po głównych kontraktach Uniswap v2 wyjaśniający, jak działa zautomatyzowany animator rynku (AMM).
- Budowanie interfejsu użytkownika dla Twojego kontraktu – Jak zbudować nowoczesny frontend w React + Wagmi, który łączy się z Twoim inteligentnym kontraktem.
- Inteligentny kontrakt Hello World dla początkujących – Fullstack – Kompleksowy samouczek: napisz, wdróż i zbuduj frontend dla prostego inteligentnego kontraktu.
- Komponenty serwerowe i agenci dla aplikacji Web3 – Jak pisać komponenty serwerowe w TypeScript, które nasłuchują zdarzeń na blockchainie i odpowiadają transakcjami.
- IPFS dla zdecentralizowanych interfejsów użytkownika – Jak hostować frontend swojego dappa w IPFS, aby zapewnić odporność na cenzurę.