Вступ до стека Етеріуму
Як і будь-який стек програмного забезпечення, повний «стек Етеріуму» відрізнятиметься від проєкту до проєкту залежно від ваших цілей.
Однак існують основні компоненти Етеріуму, які допомагають створити ментальну модель того, як програмні застосунки взаємодіють із блокчейном Етеріуму. Розуміння рівнів стека допоможе вам зрозуміти різні способи інтеграції Етеріуму в програмні проєкти.
Рівень 1: Віртуальна машина Етеріуму
Віртуальна машина Етеріуму (EVM) — це середовище виконання для смарт-контрактів в Етеріумі. Усі смарт-контракти та зміни стану в блокчейні Етеріуму виконуються за допомогою транзакцій. EVM обробляє всі транзакції в мережі Етеріум.
Як і будь-яка віртуальна машина, EVM створює рівень абстракції між кодом, що виконується, та машиною, що його виконує (вузлом Етеріуму). Наразі EVM працює на тисячах вузлів, розподілених по всьому світу.
Зсередини EVM використовує набір інструкцій опкодів для виконання конкретних завдань. Ці (140 унікальних) опкодів дозволяють EVM бути повною за Тюрінгом (opens in a new tab), що означає, що EVM здатна обчислити майже будь-що за наявності достатніх ресурсів.
Як розробнику децентралізованих застосунків (dapp), вам не потрібно знати багато про EVM, окрім того, що вона існує і надійно забезпечує роботу всіх застосунків в Етеріумі без простоїв.
Рівень 2: Смарт-контракти
Смарт-контракти — це виконувані програми, які працюють у блокчейні Етеріуму.
Смарт-контракти пишуться за допомогою спеціальних мов програмування, які компілюються в байт-код EVM (низькорівневі машинні інструкції, що називаються опкодами).
Смарт-контракти не лише слугують бібліотеками з відкритим вихідним кодом, вони по суті є відкритими сервісами API, які завжди працюють і не можуть бути вимкнені. Смарт-контракти надають публічні функції, з якими користувачі та застосунки (децентралізовані застосунки (dapps)) можуть взаємодіяти без необхідності отримання дозволу. Будь-який застосунок може інтегруватися з розгорнутими смарт-контрактами для створення функціональності, наприклад, додавання каналів даних або підтримки обміну токенів. Крім того, будь-хто може розгорнути нові смарт-контракти в Етеріумі, щоб додати власну функціональність для задоволення потреб свого застосунку.
Як розробнику dapp, вам потрібно буде писати смарт-контракти лише в тому випадку, якщо ви хочете додати власну функціональність у блокчейн Етеріуму. Ви можете виявити, що здатні задовольнити більшість або всі потреби вашого проєкту, просто інтегруючись з наявними смарт-контрактами, наприклад, якщо ви хочете підтримувати платежі в стейблкоїнах або увімкнути децентралізований обмін токенів.
Рівень 3: Вузли Етеріуму
Щоб застосунок міг взаємодіяти з блокчейном Етеріуму, він повинен підключитися до вузла Етеріуму. Підключення до вузла дозволяє читати дані блокчейну та/або надсилати транзакції в мережу.
Вузли Етеріуму — це комп'ютери, на яких працює програмне забезпечення — клієнт Етеріуму. Клієнт — це реалізація Етеріуму, яка перевіряє всі транзакції в кожному блоці, зберігаючи мережу безпечною, а дані точними. Вузли Етеріуму — це і є блокчейн Етеріуму. Вони спільно зберігають стан блокчейну Етеріуму та досягають консенсусу щодо транзакцій для зміни стану блокчейну.
Підключивши свій застосунок до вузла Етеріуму (через JSON-RPC API), ваш застосунок зможе читати дані з блокчейну (наприклад, баланси акаунтів користувачів), а також транслювати нові транзакції в мережу (наприклад, переказ ETH між акаунтами користувачів або виконання функцій смарт-контрактів).
Рівень 4: API клієнтів Етеріуму
Багато зручних бібліотек (створених і підтримуваних спільнотою відкритого коду Етеріуму) дозволяють вашим застосункам підключатися до блокчейну Етеріуму та взаємодіяти з ним.
Якщо ваш застосунок, орієнтований на користувача, є вебзастосунком, ви можете вибрати npm install JavaScript API безпосередньо у вашому фронтенді. Або, можливо, ви вирішите реалізувати цю функціональність на стороні сервера, використовуючи API для Python або Java.
Хоча ці API не є обов'язковою частиною стека, вони абстрагують значну частину складності безпосередньої взаємодії з вузлом Етеріуму. Вони також надають допоміжні функції (наприклад, конвертацію ETH у Gwei), щоб ви як розробник могли витрачати менше часу на розв'язання складних питань клієнтів Етеріуму і більше часу зосереджуватися на функціональності, специфічній для вашого застосунку.
Рівень 5: Застосунки для кінцевих користувачів
На верхньому рівні стека знаходяться застосунки, орієнтовані на користувача. Це стандартні застосунки, які ви регулярно використовуєте та створюєте сьогодні: переважно веб- та мобільні застосунки.
Спосіб розробки цих користувацьких інтерфейсів залишається по суті незмінним. Часто користувачам не потрібно буде знати, що застосунок, який вони використовують, створений за допомогою блокчейну.
Готові вибрати свій стек?
Перегляньте наш посібник із налаштування локального середовища розробки для вашого застосунку на Етеріумі.
Подальше читання
- Архітектура застосунку Веб 3.0 (opens in a new tab) — Preethi Kasireddy
Знаєте ресурс спільноти, який вам допоміг? Відредагуйте цю сторінку та додайте його!