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

Компонованість смарт-контрактів

Короткий вступ

Смарт-контракти є загальнодоступними в Етеріумі, і їх можна розглядати як відкриті API. Вам не потрібно писати власний смарт-контракт, щоб стати розробником децентралізованих застосунків (dapp), достатньо лише знати, як з ними взаємодіяти. Наприклад, ви можете використовувати наявні смарт-контракти Юнісвоп (opens in a new tab), децентралізованої біржі, для обробки всієї логіки обміну токенів у вашому застосунку — вам не потрібно починати з нуля. Перегляньте деякі з їхніх контрактів v2 (opens in a new tab) та v3 (opens in a new tab).

Що таке компонованість?

Компонованість — це поєднання окремих компонентів для створення нових систем або результатів. У розробці програмного забезпечення компонованість означає, що розробники можуть повторно використовувати наявні програмні компоненти для створення нових застосунків. Хороший спосіб зрозуміти компонованість — уявити компоновані елементи як кубики Lego. Кожен кубик Lego можна поєднати з іншим, що дозволяє будувати складні структури, комбінуючи різні кубики.

В Етеріумі кожен смарт-контракт є своєрідним кубиком Lego — ви можете використовувати смарт-контракти з інших проєктів як будівельні блоки для свого проєкту. Це означає, що вам не потрібно витрачати час на винайдення велосипеда або створення з нуля.

Як працює компонованість?

Смарт-контракти Етеріуму схожі на відкриті API, тому будь-хто може взаємодіяти з контрактом або інтегрувати їх у dapp для отримання додаткових функцій. Компонованість смарт-контрактів зазвичай базується на трьох принципах: модульності, автономності та доступності для виявлення:

1. Модульність: це здатність окремих компонентів виконувати певне завдання. В Етеріумі кожен смарт-контракт має конкретний варіант використання (як показано на прикладі Юнісвоп).

2. Автономність: компоновані компоненти повинні мати здатність працювати незалежно. Кожен смарт-контракт в Етеріумі є самовиконуваним і може функціонувати, не покладаючись на інші частини системи.

3. Доступність для виявлення: розробники не можуть викликати зовнішні контракти або інтегрувати програмні бібліотеки в застосунки, якщо перші не є загальнодоступними. За своєю природою смарт-контракти мають відкритий вихідний код; будь-хто може викликати смарт-контракт або зробити форк кодової бази.

Переваги компонованості

Коротший цикл розробки

Компонованість зменшує обсяг роботи, яку розробники повинні виконати під час створення dapp. Як зазначає Навал Равікант: (opens in a new tab) «Відкритий вихідний код означає, що кожну проблему потрібно вирішити лише один раз».

Якщо існує смарт-контракт, який вирішує певну проблему, інші розробники можуть використати його повторно, щоб їм не довелося вирішувати ту саму проблему. Таким чином, розробники можуть брати наявні програмні бібліотеки та додавати додаткові функції для створення нових dapp.

Більше інновацій

Компонованість стимулює інновації та експерименти, оскільки розробники можуть вільно повторно використовувати, змінювати, дублювати або інтегрувати відкритий вихідний код для досягнення бажаних результатів. Як наслідок, команди розробників витрачають менше часу на базові функції та можуть приділяти більше часу експериментам з новими можливостями.

Кращий користувацький досвід

Інтероперабельність між компонентами екосистеми Етеріуму покращує користувацький досвід. Користувачі отримують доступ до ширшого функціоналу, коли dapp інтегрують зовнішні смарт-контракти, порівняно з фрагментованою екосистемою, де застосунки не можуть взаємодіяти між собою.

Ми використаємо приклад з арбітражної торгівлі, щоб проілюструвати переваги інтероперабельності:

Якщо токен торгується дорожче на exchange A, ніж на exchange B, ви можете скористатися різницею в ціні для отримання прибутку. Однак ви можете зробити це лише за умови, що у вас є достатньо капіталу для фінансування транзакції (тобто купівлі токена на exchange B та його продажу на exchange A).

У ситуації, коли у вас недостатньо коштів для покриття угоди, ідеальним рішенням може стати флеш-кредит. Флеш-кредити є дуже технічними, але основна ідея полягає в тому, що ви можете позичити активи (без застави) і повернути їх у межах однієї транзакції.

Повертаючись до нашого початкового прикладу, арбітражний трейдер може взяти великий флеш-кредит, купити токени на exchange B, продати їх на exchange A, повернути капітал + відсотки та залишити прибуток собі в межах однієї транзакції. Ця складна логіка вимагає поєднання викликів до кількох контрактів, що було б неможливо, якби смарт-контрактам бракувало інтероперабельності.

Приклади компонованості в Етеріумі

Обмін токенів

Якщо ви створюєте dapp, який вимагає оплати транзакцій в ETH, ви можете дозволити користувачам платити в інших токенах ERC-20, інтегрувавши логіку обміну токенів. Код автоматично конвертує токен користувача в ETH перед тим, як контракт виконає викликану функцію.

Управління

Створення індивідуальних систем управління для DAO може бути дорогим і трудомістким. Натомість ви можете використати набір інструментів для управління з відкритим вихідним кодом, наприклад Aragon Client (opens in a new tab), щоб запустити свою DAO для швидкого створення структури управління.

Управління ідентифікацією

Замість того, щоб створювати власну систему автентифікації або покладатися на централізованих провайдерів, ви можете інтегрувати інструменти децентралізованої ідентифікації (DID) для управління автентифікацією користувачів. Прикладом є SpruceID (opens in a new tab), набір інструментів з відкритим вихідним кодом, який пропонує функцію «Увійти за допомогою Етеріуму», що дозволяє користувачам підтверджувати свою особу за допомогою гаманця Етеріуму.

Додаткові матеріали

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