Перейти до основного вмісту
Change page

Технічний вступ до децентралізованих застосунків (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 транзакцій на секунду; якщо транзакції надсилаються швидше, пул непідтверджених транзакцій може швидко розростися.
  • Користувацький досвід — може бути складніше розробити зручний для користувача інтерфейс, оскільки звичайному кінцевому користувачеві може бути занадто складно налаштувати стек інструментів, необхідний для дійсно безпечної взаємодії з блокчейном.
  • Централізація — зручні для користувачів і розробників рішення, створені поверх базового рівня Етеріуму, у будь-якому разі можуть виглядати як централізовані сервіси. Наприклад, такі сервіси можуть зберігати ключі або іншу конфіденційну інформацію на стороні сервера, обслуговувати фронтенд за допомогою централізованого сервера або виконувати важливу бізнес-логіку на централізованому сервері перед записом у блокчейн. Централізація усуває багато (якщо не всі) переваг блокчейну над традиційною моделю.

Краще сприймаєте візуально?

What is a dapp? Decentralized application on the blockchain

An introduction to decentralized applications (dapps) and how they differ from traditional apps.

Дивитися з транскриптом 

Інструменти для створення dapp

Scaffold-ETH — швидко експериментуйте з Solidity, використовуючи фронтенд, який адаптується до вашого смарт-контракту.

Create Eth App — створюйте застосунки на базі Етеріуму за допомогою однієї команди.

One Click Dapp — FOSS-інструмент для генерування фронтендів dapp з .

Etherflow — FOSS-інструмент для розробників Етеріуму для тестування свого вузла, а також створення та налагодження RPC-викликів із браузера.

thirdweb — SDK будь-якою мовою, смарт-контракти, інструменти та інфраструктура для розробки Web3.

Crossmint — платформа розробки Web3 корпоративного рівня для розгортання смарт-контрактів, увімкнення платежів кредитними картками та кросчейн-платежів, а також використання API для створення, розповсюдження, продажу, зберігання та редагування NFT.

Подальше читання

Знаєте ресурс спільноти, який вам допоміг? Відредагуйте цю сторінку та додайте його!

Посібники: створення застосунків і фронтендів в Етеріумі