Lição 2

Основи Ethereum і Solidity

Ethereum — це платформа на основі блокчейну, яка підтримує смарт-контракти та децентралізовані програми (dApps).

Огляд Ethereum

Ethereum — це розподілена програмна платформа з відкритим вихідним кодом на основі блокчейну, яка стала головним конкурентом біткойну. Ethereum був вперше запропонований у 2013 році дослідником криптовалют Віталіком Бутеріним, який запропонував додати мову сценаріїв для програмування до Bitcoin. Він був запущений 30 липня 2015 року. Розробка Ethereum була спонсорована онлайн-краудсейлом, різновидом краудсорсингу, під час якого випускалися токени криптовалюти.

Докладніше: Що таке Ethereum?

Рідна криптовалюта Ethereum називається Ether (ETH), і вона має мову програмування, відому як Solidity. Блокчейн, базова технологія Ethereum, являє собою розподілену книгу, яка зберігає постійний, захищений від підробки список записів. Ця децентралізована архітектура дозволяє розробникам створювати широкий спектр децентралізованих програм (dApps), використовуючи переваги надійної екосистеми та універсальності платформи.

Однією з основних особливостей Ethereum є його підтримка смарт-контрактів, які є цифровими контрактами, які виконуються автоматично на основі попередньо визначених умов, як ми згадували в Уроці 1. Ці розумні контракти створюють надійне середовище, де транзакції можуть проводитися безпечно та прозоро без посередників. Майнери в мережі Ethereum виробляли токени Ether, які слугували не лише валютою, але й засобом оплати за використання платформи; після «The Merge» Ethereum перейшов на механізм Proof-of-Stake (PoS), де валідатори (не майнери) перевіряють транзакції та створюють нові блоки. Замість того, щоб створювати токени Ether, валідатори отримують комісію за транзакції та блокують винагороди в Ether за свою участь у мережі. Етер все ще служить засобом оплати за користування платформою, але його випуск і розповсюдження відрізняються від попереднього механізму підтвердження роботи (PoW).

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

Докладніше: Що таке злиття?

Докладніше: Що таке DApp?

Вступ до мови програмування Solidity

Solidity — це високорівнева статично типізована мова програмування, спеціально розроблена для написання смарт-контрактів у блокчейні Ethereum. На синтаксис Solidity, розроблений основною командою Ethereum, вплинув JavaScript, що робить його знайомим і доступним для широкого кола розробників. Мова є повною за Тьюрингом, що дозволяє розробникам створювати складну логіку та впроваджувати різні функції у своїх смарт-контрактах. Solidity компілюється в байт-код віртуальної машини Ethereum (EVM), який виконується в мережі Ethereum.

Серед інших функцій у Solidity розробники можуть визначати власні структури даних, створювати визначені користувачем функції та впроваджувати механізми контролю доступу. За допомогою Solidity можна створювати широкий спектр децентралізованих програм, включаючи платформи децентралізованого фінансування (DeFi), незамінні токени (NFT), децентралізовані автономні організації (DAO) тощо.

Структура контракту Solidity: приклад

Контракт Solidity — це самодостатній фрагмент коду, який складається зі змінних, функцій, подій і модифікаторів, серед інших елементів. Основна структура контракту Solidity така:

  1. Директива Pragma: цей рядок визначає сумісну версію компілятора Solidity для смарт-контракту. Наприклад:

    Solidity 
     прагма solidity ^0.8.0;
    
  2. Визначення контракту: цей рядок оголошує контракт і його назву. \
    Наприклад:

    Контракт Solidity 
     SimpleToken {
    
  3. Змінні стану: це змінні, які зберігають стан контракту в блокчейні. Наприклад, ви можете зберегти загальний запас токена:

    Solidity 
     uint256 public totalSupply;
    
  4. Функції: функції визначають поведінку контракту та можуть викликатися зовнішніми користувачами або іншими контрактами. Ось проста функція для передачі токенів:

    Передача функції Solidity 
     (одержувач адреси, сума uint256) загальнодоступна {
     // ... transfer logic ...
    }
    
  5. Події: події використовуються для реєстрації певних дій у контракті та можуть відстежуватися зовнішніми користувачами або контрактами. Наприклад, подія Transfer у маркерному контракті:

    Передача події Solidity 
     (адреса, індексована з, адреса, індексована до, значення uint256);
    
  6. Модифікатори: Модифікатори використовуються для зміни поведінки функцій, зазвичай для контролю доступу або перевірки попередніх умов. Наприклад, модифікатор, щоб перевірити, чи має відправник достатньо маркерів для передачі:

    Модифікатор JavaScript 
     hasEnoughTokens(кількість uint256) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. Конструктор: конструктор — це спеціальна функція, яка ініціалізує змінні стану контракту під час його розгортання. Наприклад, ініціалізація загального запасу маркера:

    Конструктор JavaScript 
     (uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

Зібравши все разом, простий контракт Solidity для токена може виглядати так:

TypeScript 
 pragma solidity ^0.8.0; 

 контракт SimpleToken { 
 uint256 public totalSupply; 
 відображення (адреса => uint256) public balanceOf; 

 подія Transfer(адреса, індексована з, адреса, індексована до, значення uint256); 

 модифікатор hasEnoughTokens(кількість uint256) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

Основні моменти
Ethereum — це платформа на основі блокчейну, яка підтримує смарт-контракти та децентралізовані програми (dApps).
Рідною криптовалютою Ethereum є ефір (ETH).
Solidity — це мова програмування високого рівня, яка використовується для написання смарт-контрактів на Ethereum.
Розумні контракти на Ethereum виконуються автоматично на основі попередньо визначених умов.
Ethereum перейшов на механізм Proof-of-Stake (PoS) для перевірки транзакцій і створення нових блоків.
Solidity дозволяє розробникам визначати структури даних, створювати функції, здійснювати контроль доступу тощо.
Екосистема Ethereum приваблює розробників та організації з різних галузей.
Контракти Solidity складаються з прагм, визначення контракту, змінних стану, функцій, подій, модифікаторів і конструкторів.
Контракти Solidity можна використовувати для створення платформ DeFi, NFT, DAO тощо.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.
Catálogo
Lição 2

Основи Ethereum і Solidity

Ethereum — це платформа на основі блокчейну, яка підтримує смарт-контракти та децентралізовані програми (dApps).

Огляд Ethereum

Ethereum — це розподілена програмна платформа з відкритим вихідним кодом на основі блокчейну, яка стала головним конкурентом біткойну. Ethereum був вперше запропонований у 2013 році дослідником криптовалют Віталіком Бутеріним, який запропонував додати мову сценаріїв для програмування до Bitcoin. Він був запущений 30 липня 2015 року. Розробка Ethereum була спонсорована онлайн-краудсейлом, різновидом краудсорсингу, під час якого випускалися токени криптовалюти.

Докладніше: Що таке Ethereum?

Рідна криптовалюта Ethereum називається Ether (ETH), і вона має мову програмування, відому як Solidity. Блокчейн, базова технологія Ethereum, являє собою розподілену книгу, яка зберігає постійний, захищений від підробки список записів. Ця децентралізована архітектура дозволяє розробникам створювати широкий спектр децентралізованих програм (dApps), використовуючи переваги надійної екосистеми та універсальності платформи.

Однією з основних особливостей Ethereum є його підтримка смарт-контрактів, які є цифровими контрактами, які виконуються автоматично на основі попередньо визначених умов, як ми згадували в Уроці 1. Ці розумні контракти створюють надійне середовище, де транзакції можуть проводитися безпечно та прозоро без посередників. Майнери в мережі Ethereum виробляли токени Ether, які слугували не лише валютою, але й засобом оплати за використання платформи; після «The Merge» Ethereum перейшов на механізм Proof-of-Stake (PoS), де валідатори (не майнери) перевіряють транзакції та створюють нові блоки. Замість того, щоб створювати токени Ether, валідатори отримують комісію за транзакції та блокують винагороди в Ether за свою участь у мережі. Етер все ще служить засобом оплати за користування платформою, але його випуск і розповсюдження відрізняються від попереднього механізму підтвердження роботи (PoW).

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

Докладніше: Що таке злиття?

Докладніше: Що таке DApp?

Вступ до мови програмування Solidity

Solidity — це високорівнева статично типізована мова програмування, спеціально розроблена для написання смарт-контрактів у блокчейні Ethereum. На синтаксис Solidity, розроблений основною командою Ethereum, вплинув JavaScript, що робить його знайомим і доступним для широкого кола розробників. Мова є повною за Тьюрингом, що дозволяє розробникам створювати складну логіку та впроваджувати різні функції у своїх смарт-контрактах. Solidity компілюється в байт-код віртуальної машини Ethereum (EVM), який виконується в мережі Ethereum.

Серед інших функцій у Solidity розробники можуть визначати власні структури даних, створювати визначені користувачем функції та впроваджувати механізми контролю доступу. За допомогою Solidity можна створювати широкий спектр децентралізованих програм, включаючи платформи децентралізованого фінансування (DeFi), незамінні токени (NFT), децентралізовані автономні організації (DAO) тощо.

Структура контракту Solidity: приклад

Контракт Solidity — це самодостатній фрагмент коду, який складається зі змінних, функцій, подій і модифікаторів, серед інших елементів. Основна структура контракту Solidity така:

  1. Директива Pragma: цей рядок визначає сумісну версію компілятора Solidity для смарт-контракту. Наприклад:

    Solidity 
     прагма solidity ^0.8.0;
    
  2. Визначення контракту: цей рядок оголошує контракт і його назву. \
    Наприклад:

    Контракт Solidity 
     SimpleToken {
    
  3. Змінні стану: це змінні, які зберігають стан контракту в блокчейні. Наприклад, ви можете зберегти загальний запас токена:

    Solidity 
     uint256 public totalSupply;
    
  4. Функції: функції визначають поведінку контракту та можуть викликатися зовнішніми користувачами або іншими контрактами. Ось проста функція для передачі токенів:

    Передача функції Solidity 
     (одержувач адреси, сума uint256) загальнодоступна {
     // ... transfer logic ...
    }
    
  5. Події: події використовуються для реєстрації певних дій у контракті та можуть відстежуватися зовнішніми користувачами або контрактами. Наприклад, подія Transfer у маркерному контракті:

    Передача події Solidity 
     (адреса, індексована з, адреса, індексована до, значення uint256);
    
  6. Модифікатори: Модифікатори використовуються для зміни поведінки функцій, зазвичай для контролю доступу або перевірки попередніх умов. Наприклад, модифікатор, щоб перевірити, чи має відправник достатньо маркерів для передачі:

    Модифікатор JavaScript 
     hasEnoughTokens(кількість uint256) {
     require(balanceOf[msg.sender] >= amount, "Insufficient balance");
     _;
    }
    
  7. Конструктор: конструктор — це спеціальна функція, яка ініціалізує змінні стану контракту під час його розгортання. Наприклад, ініціалізація загального запасу маркера:

    Конструктор JavaScript 
     (uint256 _totalSupply) {
     totalSupply = _totalSupply;
     balanceOf[msg.sender] = _totalSupply;
    }
    

Зібравши все разом, простий контракт Solidity для токена може виглядати так:

TypeScript 
 pragma solidity ^0.8.0; 

 контракт SimpleToken { 
 uint256 public totalSupply; 
 відображення (адреса => uint256) public balanceOf; 

 подія Transfer(адреса, індексована з, адреса, індексована до, значення uint256); 

 модифікатор hasEnoughTokens(кількість uint256) {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        _;
    }
}

Основні моменти
Ethereum — це платформа на основі блокчейну, яка підтримує смарт-контракти та децентралізовані програми (dApps).
Рідною криптовалютою Ethereum є ефір (ETH).
Solidity — це мова програмування високого рівня, яка використовується для написання смарт-контрактів на Ethereum.
Розумні контракти на Ethereum виконуються автоматично на основі попередньо визначених умов.
Ethereum перейшов на механізм Proof-of-Stake (PoS) для перевірки транзакцій і створення нових блоків.
Solidity дозволяє розробникам визначати структури даних, створювати функції, здійснювати контроль доступу тощо.
Екосистема Ethereum приваблює розробників та організації з різних галузей.
Контракти Solidity складаються з прагм, визначення контракту, змінних стану, функцій, подій, модифікаторів і конструкторів.
Контракти Solidity можна використовувати для створення платформ DeFi, NFT, DAO тощо.

Isenção de responsabilidade
* O investimento em criptomoedas envolve grandes riscos. Prossiga com cautela. O curso não se destina a servir de orientação para investimentos.
* O curso foi criado pelo autor que entrou para o Gate Learn. As opiniões compartilhadas pelo autor não representam o Gate Learn.