Технічний вступ до децентралізованих застосунків (dapp)
Децентралізований застосунок (dapp) — це застосунок, створений у децентралізованій мережі, який поєднує смарт-контракт та інтерфейс користувача (фронтенд). В Етеріумі смарт-контракти є доступними та прозорими (як відкриті API), тому ваш dapp може навіть містити смарт-контракт, написаний кимось іншим.
Передумови
Перш ніж вивчати децентралізовані застосунки (dapp), вам слід ознайомитися з основами блокчейну та прочитати про мережу Етеріум і те, як вона децентралізована.
Визначення dapp
Бекенд-код dapp працює в децентралізованій одноранговій мережі. Порівняйте це зі звичайним застосунком, де бекенд-код працює на централізованих серверах.
Dapp може мати фронтенд-код та інтерфейси користувача, написані будь-якою мовою (як і звичайний застосунок), для здійснення викликів до свого бекенду. Крім того, його фронтенд може бути розміщений у децентралізованому сховищі, такому як IPFS (opens in a new tab).
- Децентралізований — dapp працюють в Етеріумі, відкритій публічній децентралізованій платформі, яку не контролює жодна особа чи група
- Детермінований — dapp виконують ту саму функцію незалежно від середовища, у якому вони виконуються
- Повний за Тюрінгом — dapp можуть виконувати будь-яку дію за наявності необхідних ресурсів
- Ізольований — dapp виконуються у віртуальному середовищі, відомому як Віртуальна машина Етеріуму (EVM), тому, якщо смарт-контракт має помилку, це не завадить нормальному функціонуванню блокчейн-мережі
Про смарт-контракти
Щоб представити dapp, нам потрібно представити смарт-контракти — бекенд dapp, якщо можна так сказати. Для детального огляду перейдіть до нашого розділу про смарт-контракти.
Смарт-контракт — це код, який знаходиться в блокчейні Етеріуму і виконується точно так, як запрограмовано. Після того, як смарт-контракти розгорнуто в мережі, ви не можете їх змінити. Dapp можуть бути децентралізованими, оскільки вони керуються логікою, прописаною в контракті, а не окремою особою чи компанією. Це також означає, що вам потрібно дуже ретельно проектувати свої контракти та ретельно їх тестувати.
Переваги розробки dapp
- Нульовий час простою — після того, як смарт-контракт розгорнуто в блокчейні, мережа в цілому завжди зможе обслуговувати клієнтів, які бажають взаємодіяти з контрактом. Тому зловмисники не можуть здійснювати атаки на відмову в обслуговуванні (DoS), спрямовані на окремі dapp.
- Приватність — вам не потрібно надавати реальні ідентифікаційні дані, щоб розгорнути dapp або взаємодіяти з ним.
- Стійкість до цензури — жодна організація в мережі не може заблокувати користувачам можливість надсилати транзакції, розгортати dapp або читати дані з блокчейну.
- Повна цілісність даних — дані, що зберігаються в блокчейні, є незмінними та незаперечними завдяки криптографічним примітивам. Зловмисники не можуть підробити транзакції або інші дані, які вже були оприлюднені.
- Бездовірчі обчислення/поведінка, що піддається перевірці — смарт-контракти можна проаналізувати, і вони гарантовано виконуватимуться передбачуваним чином без необхідності довіряти центральному органу. Це не так у традиційних моделях; наприклад, коли ми використовуємо системи онлайн-банкінгу, ми повинні довіряти фінансовим установам, що вони не будуть зловживати нашими фінансовими даними, підробляти записи або не будуть зламані.
Недоліки розробки dapp
- Обслуговування — dapp може бути важче підтримувати, оскільки код і дані, опубліковані в блокчейні, важче змінити. Розробникам важко оновлювати свої dapp (або базові дані, що зберігаються в dapp) після їх розгортання, навіть якщо в старій версії виявлено помилки або ризики для безпеки.
- Зниження продуктивності — існує величезне зниження продуктивності, і масштабування є дійсно складним. Щоб досягти рівня безпеки, цілісності, прозорості та надійності, до якого прагне Етеріум, кожен вузол виконує та зберігає кожну транзакцію. Крім того, консенсус доказу частки (PoS) також потребує часу.
- Перевантаження мережі — коли один dapp використовує занадто багато обчислювальних ресурсів, уся мережа починає гальмувати. Наразі мережа може обробляти лише близько 10-15 транзакцій на секунду; якщо транзакції надсилаються швидше, пул непідтверджених транзакцій може швидко розростися.
- Користувацький досвід — може бути складніше розробити зручний для користувача інтерфейс, оскільки звичайному кінцевому користувачеві може бути занадто складно налаштувати стек інструментів, необхідний для дійсно безпечної взаємодії з блокчейном.
- Централізація — зручні для користувачів і розробників рішення, створені поверх базового рівня Етеріуму, у будь-якому разі можуть виглядати як централізовані сервіси. Наприклад, такі сервіси можуть зберігати ключі або іншу конфіденційну інформацію на стороні сервера, обслуговувати фронтенд за допомогою централізованого сервера або виконувати важливу бізнес-логіку на централізованому сервері перед записом у блокчейн. Централізація усуває багато (якщо не всі) переваг блокчейну над традиційною моделю.
Краще сприймаєте візуально?
Інструменти для створення dapp
Scaffold-ETH — швидко експериментуйте з Solidity, використовуючи фронтенд, який адаптується до вашого смарт-контракту.
Create Eth App — створюйте застосунки на базі Етеріуму за допомогою однієї команди.
One Click Dapp — FOSS-інструмент для генерування фронтендів dapp з .
Etherflow — FOSS-інструмент для розробників Етеріуму для тестування свого вузла, а також створення та налагодження RPC-викликів із браузера.
thirdweb — SDK будь-якою мовою, смарт-контракти, інструменти та інфраструктура для розробки Web3.
Crossmint — платформа розробки Web3 корпоративного рівня для розгортання смарт-контрактів, увімкнення платежів кредитними картками та кросчейн-платежів, а також використання API для створення, розповсюдження, продажу, зберігання та редагування NFT.
Подальше читання
- Ознайомтеся з dapp
- Архітектура застосунку Веб 3.0 (opens in a new tab) — Пріті Касіредді (Preethi Kasireddy)
- Посібник із децентралізованих застосунків 2021 року (opens in a new tab) — LimeChain
- Що таке децентралізовані застосунки? (opens in a new tab) — Gemini
- Популярні dapp (opens in a new tab) — Alchemy
Знаєте ресурс спільноти, який вам допоміг? Відредагуйте цю сторінку та додайте його!
Пов'язані теми
Посібники: створення застосунків і фронтендів в Етеріумі
- Огляд контракту Юнісвоп v2 — анотоване керівництво з основних контрактів Юнісвоп v2, що пояснює, як працює автоматизований маркетмейкер (АММ).
- Створення інтерфейсу користувача для вашого контракту — як створити сучасний фронтенд на React + Wagmi, який підключається до вашого смарт-контракту.
- Смарт-контракт Hello World для початківців — Fullstack — наскрізний посібник: напишіть, розгорніть і створіть фронтенд для простого смарт-контракту.
- Серверні компоненти та агенти для застосунків Web3 — як писати серверні компоненти TypeScript, які прослуховують події блокчейну та відповідають транзакціями.
- IPFS для децентралізованих інтерфейсів користувача — як розмістити фронтенд вашого dapp в IPFS для стійкості до цензури.