Lesson 1

Вступ до децентралізованого голосування та IDE реміксів

Ласкаво просимо на перший урок нашого курсу з побудови децентралізованої системи голосування. У цьому уроці ми розглянемо концепцію децентралізованого голосування та зрозуміємо переваги, які воно приносить процесу голосування. Ми також познайомимо вас з Remix IDE, потужним інструментом, який використовується для розробки та розгортання смарт-контрактів Ethereum.

Децентралізоване голосування

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

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

Знайомство з Remix IDE

Remix IDE (інтегроване середовище розробки) — це потужний інструмент із відкритим кодом, розроблений спеціально для розробки смарт-контрактів Ethereum. Він працює безпосередньо у вашому веб-браузері, тому вам не потрібно нічого встановлювати на комп’ютері.

Ви можете отримати доступ до Remix IDE за адресою https://remix.ethereum.org. Коли ви відкриєте Remix у своєму браузері, ви побачите три панелі:

  1. Ліва панель: тут ви можете створювати, імпортувати та керувати файлами Solidity. Він також містить різні плагіни для компіляції, тестування, налагодження та розгортання ваших контрактів.

  2. Центральна панель: це ваш редактор коду. Тут ви будете писати та редагувати свій код Solidity.

  3. Права панель: Ця панель містить різноманітні інструменти для компіляції ваших контрактів, розгортання їх у мережі Ethereum (у реальній мережі Ethereum або симуляції віртуальної машини JavaScript) і взаємодії з вашими розгорнутими контрактами.

Ваш перший смарт-контракт

Почнемо з простого контракту «Виборець». Цей контракт дозволить вести облік виборців у нашій системі.

У Remix IDE перейдіть до «Провідника файлів» і натисніть значок «+», щоб створити новий файл. Назвіть його Voter.sol.

Тепер давайте почнемо писати наш договір:

Solidity 
 // SPDX-License-Identifier: GPL-3.0 
 pragma solidity >=0.7.0 <0.9.0; 

 contract Voter { 
 // Структура для представлення особи 
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Відображення для відстеження всіх виборців 
 mapping(address => Person) public voters; 

 // Функція для реєстрації виборця 
 функція registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Ідентифікатор ліцензії SPDX: Рядок // SPDX-License-Identifier: GPL-3.0 вказує на те, що наш контракт використовує Загальну публічну ліцензію GNU v3.0. Це широко використовувана ліцензія на безкоштовне програмне забезпечення, яка гарантує кінцевим користувачам свободу запускати, вивчати, ділитися та змінювати програмне забезпечення.

  2. Прагматична директива: pragma solidity >=0.7.0 &lt;0.9.0; твердження вказує, що договір складено у версії Solidity, яка є більшою або дорівнює 0.7.0 і меншою за 0.9.0. Це допомагає запобігти компіляції контракту за допомогою нової, несумісної версії компілятора.

  3. Визначення контракту: блок contract Voter {...} визначає новий контракт під назвою Voter. Тут ми вказуємо змінні стану та функції контракту.

  4. Визначення структури: у контракті ми визначаємо структурну Person , яка представляє особу в нашій системі голосування. Кожна Person має логічне значення voted , яке вказує, чи вона вже проголосувала, і ціле число vote , яке відстежує пропозицію, за яку вона проголосувала.

  5. Змінна стану: mapping(address => Person) public voters; Інструкція оголошує змінну стану voters , яка створює зв’язок між адресою Ethereum і структурою Person . Це дозволить нам відстежувати, хто має право голосу в системі та який їхній голос. Ключове слово public автоматично створює функцію отримання для voters.

  6. Визначення функції: function registerVoter() public {...} визначає публічну функцію, яка дозволяє користувачам реєструватися як виборці в системі. The voters[msg.sender].voted = false; оператор встановлює статус voted нового виборця на false.
    Ось і все для цього контракту! У міру проходження курсу ми розширюємо цей контракт, додаючи більше функцій для процесу голосування. Не забувайте регулярно компілювати та тестувати свій код, щоб переконатися, що все працює належним чином. У Remix IDE ви можете скомпілювати свій контракт, натиснувши значок компілятора Solidity на лівій бічній панелі (третій зверху), а потім натиснувши кнопку «Компілювати».

У наступному уроці ми дізнаємося, як дозволити зареєстрованим виборцям голосувати та реалізувати логіку системи голосування. Але поки пограйте з контрактом і ознайомтеся з середовищем Remix. Ви щойно зробили свій перший крок у світ розробки смарт-контрактів!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 1

Вступ до децентралізованого голосування та IDE реміксів

Ласкаво просимо на перший урок нашого курсу з побудови децентралізованої системи голосування. У цьому уроці ми розглянемо концепцію децентралізованого голосування та зрозуміємо переваги, які воно приносить процесу голосування. Ми також познайомимо вас з Remix IDE, потужним інструментом, який використовується для розробки та розгортання смарт-контрактів Ethereum.

Децентралізоване голосування

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

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

Знайомство з Remix IDE

Remix IDE (інтегроване середовище розробки) — це потужний інструмент із відкритим кодом, розроблений спеціально для розробки смарт-контрактів Ethereum. Він працює безпосередньо у вашому веб-браузері, тому вам не потрібно нічого встановлювати на комп’ютері.

Ви можете отримати доступ до Remix IDE за адресою https://remix.ethereum.org. Коли ви відкриєте Remix у своєму браузері, ви побачите три панелі:

  1. Ліва панель: тут ви можете створювати, імпортувати та керувати файлами Solidity. Він також містить різні плагіни для компіляції, тестування, налагодження та розгортання ваших контрактів.

  2. Центральна панель: це ваш редактор коду. Тут ви будете писати та редагувати свій код Solidity.

  3. Права панель: Ця панель містить різноманітні інструменти для компіляції ваших контрактів, розгортання їх у мережі Ethereum (у реальній мережі Ethereum або симуляції віртуальної машини JavaScript) і взаємодії з вашими розгорнутими контрактами.

Ваш перший смарт-контракт

Почнемо з простого контракту «Виборець». Цей контракт дозволить вести облік виборців у нашій системі.

У Remix IDE перейдіть до «Провідника файлів» і натисніть значок «+», щоб створити новий файл. Назвіть його Voter.sol.

Тепер давайте почнемо писати наш договір:

Solidity 
 // SPDX-License-Identifier: GPL-3.0 
 pragma solidity >=0.7.0 <0.9.0; 

 contract Voter { 
 // Структура для представлення особи 
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Відображення для відстеження всіх виборців 
 mapping(address => Person) public voters; 

 // Функція для реєстрації виборця 
 функція registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Ідентифікатор ліцензії SPDX: Рядок // SPDX-License-Identifier: GPL-3.0 вказує на те, що наш контракт використовує Загальну публічну ліцензію GNU v3.0. Це широко використовувана ліцензія на безкоштовне програмне забезпечення, яка гарантує кінцевим користувачам свободу запускати, вивчати, ділитися та змінювати програмне забезпечення.

  2. Прагматична директива: pragma solidity >=0.7.0 &lt;0.9.0; твердження вказує, що договір складено у версії Solidity, яка є більшою або дорівнює 0.7.0 і меншою за 0.9.0. Це допомагає запобігти компіляції контракту за допомогою нової, несумісної версії компілятора.

  3. Визначення контракту: блок contract Voter {...} визначає новий контракт під назвою Voter. Тут ми вказуємо змінні стану та функції контракту.

  4. Визначення структури: у контракті ми визначаємо структурну Person , яка представляє особу в нашій системі голосування. Кожна Person має логічне значення voted , яке вказує, чи вона вже проголосувала, і ціле число vote , яке відстежує пропозицію, за яку вона проголосувала.

  5. Змінна стану: mapping(address => Person) public voters; Інструкція оголошує змінну стану voters , яка створює зв’язок між адресою Ethereum і структурою Person . Це дозволить нам відстежувати, хто має право голосу в системі та який їхній голос. Ключове слово public автоматично створює функцію отримання для voters.

  6. Визначення функції: function registerVoter() public {...} визначає публічну функцію, яка дозволяє користувачам реєструватися як виборці в системі. The voters[msg.sender].voted = false; оператор встановлює статус voted нового виборця на false.
    Ось і все для цього контракту! У міру проходження курсу ми розширюємо цей контракт, додаючи більше функцій для процесу голосування. Не забувайте регулярно компілювати та тестувати свій код, щоб переконатися, що все працює належним чином. У Remix IDE ви можете скомпілювати свій контракт, натиснувши значок компілятора Solidity на лівій бічній панелі (третій зверху), а потім натиснувши кнопку «Компілювати».

У наступному уроці ми дізнаємося, як дозволити зареєстрованим виборцям голосувати та реалізувати логіку системи голосування. Але поки пограйте з контрактом і ознайомтеся з середовищем Remix. Ви щойно зробили свій перший крок у світ розробки смарт-контрактів!

Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.