Lição 3

Створення та керування смарт-контрактами у Vyper

Закінчивши цей курс, ви створили міцну основу для програмування блокчейну з Vyper. Тепер ви добре розумієте Ethereum, розумні контракти та те, як їх створювати в Remix IDE з Vyper. Таке розуміння відкриває цілий світ можливостей для розробки децентралізованих програм і участі в екосистемі блокчейну.

Вступ

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

SimpleStorage: Вступ до смарт-контрактів

Перший контракт, який ми розгорнемо, — SimpleStorage. Цей контракт, як випливає з назви, є простим контрактом на зберігання даних, який зберігає одне число. SimpleStorage складається із змінної storedData та двох функцій set і get. Функція set дозволяє користувачеві зберігати номер, а функція get дозволяє будь-кому отримати це число.

Розгортання та взаємодія з SimpleStorage

Ми розглянемо кроки для розгортання та взаємодії з контрактом SimpleStorage на блокчейні Ethereum. Розгортання контракту в блокчейні Ethereum — це процес передачі байт-коду контракту та ABI в мережу Ethereum, звідки його можна викликати та виконати. Після розгортання контракту він отримує унікальну адресу, за якою його можна отримати.

Ось код для SimpleStorage:

Python 
 # @title SimpleStorage 
 storedData: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

У цьому контракті ми визначаємо загальнодоступну цілочисельну змінну storedData, публічну функцію set(x: int128) для встановлення значення storedData та публічну постійну функцію get() -> int128 для отримання поточного значення storedData.

Ось покрокова інструкція щодо розгортання цього контракту за допомогою Remix:

  1. Відкрийте веб-браузер і перейдіть до Remix Ethereum IDE.

  2. Активуйте плагін Vyper

  3. Перемкніть середовище на Injected Web3 у розділі Deploy & Run Transactions . Це підключить Remix до вашого гаманця MetaMask.

  4. У розділі File Explorer клацніть піктограму + , щоб створити новий файл. Назвіть його SimpleStorage.vy.

  5. Вставте код контракту SimpleStorage у цей новий файл.

  6. Тепер перейдіть на вкладку VyperCompile і виберіть контракт SimpleStorage .

  7. Перейдіть на вкладку Deploy & Run Transactions , а потім натисніть кнопку Deploy .

  8. MetaMask відкриє спливаюче вікно підтвердження транзакції. Підтвердьте транзакцію.

  9. Після підтвердження транзакції ви побачите розгорнутий контракт SimpleStorage у розділі Deployed Contracts .

  10. Тепер ви можете взаємодіяти з контрактом. Наприклад, щоб зберегти номер, введіть його у функцію set і натисніть transact. Щоб отримати збережений номер, натисніть get.

SimpleVoting: більш складний контракт

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

Розгортання та взаємодія з SimpleVoting

Контракт SimpleVoting дещо складніший, ніж SimpleStorage. У SimpleVoting у нас буде список кандидатів, кожен представлений рядком.

Ось код для SimpleVoting:

Python 
 # Vyper Voting Contract 

 # Оголошення змінної стану `votes` як HashMap для зберігання голосів за кожного кандидата.
голоси: HashMap[bytes32, uint256] 

 @external 
 def vote(кандидат: bytes32): 
 """ 
 Проголосуйте за кандидата.

    Аргументи: 
 кандидат: bytes32 - Ідентифікатор кандидата, за якого потрібно проголосувати.
    """ 
 # Збільшити підрахунок голосів за вказаного кандидата.
    self.votes[кандидат] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Отримати загальну кількість голосів за кандидата.

    Аргументи: 
 кандидат: bytes32 - Ідентифікатор кандидата, за якого потрібно отримати голоси.

    Повертає: 
 uint256 – загальна кількість голосів, яку отримав кандидат.
    """ 
 повернення self.votes[кандидат]

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

Висновок і наступні кроки

Закінчивши цей курс, ви створили міцну основу для програмування блокчейну з Vyper. Тепер ви добре розумієте Ethereum, розумні контракти та те, як їх створювати в Remix IDE з Vyper. Таке розуміння відкриває цілий світ можливостей для розробки децентралізованих програм і участі в екосистемі блокчейну.

Щоб ще більше вдосконалити свої навички та знання, розгляньте такі сфери:

  1. Розширене програмування Solidity: Solidity — ще одна популярна мова програмування для смарт-контрактів Ethereum. Вивчення Solidity розширить вашу здатність працювати з існуючими контрактами та зробить внесок у спільноту Ethereum. Перегляньте наш курс тут: [вставте посилання на курс Solidity у режимі онлайн]

  2. Розробка децентралізованих програм (DApp): зануртеся глибше у створення повних децентралізованих програм, поєднуючи смарт-контракти з інтерфейсною розробкою за допомогою таких фреймворків, як Web3.js, React або Vue.js. Це дозволить вам створювати інтерактивні інтерфейси користувача, які взаємодіють із вашими смарт-контрактами.

  3. Безпека та аудит: ознайомтеся з найкращими методами захисту розумних контрактів і проведення ретельних перевірок коду. Розуміння потенційної вразливості та зменшення ризиків забезпечить надійність і безпеку ваших розумних контрактів.

  4. Взаємодія блокчейнів: досліджуйте інтеграцію різних мереж і протоколів блокчейнів. Дізнайтеся про міжланцюгову комунікацію та розробку сумісних смарт-контрактів, які можуть взаємодіяти з кількома блокчейнами.
    Пам’ятайте, що технологія блокчейн постійно розвивається, і дуже важливо бути в курсі останніх досягнень. Залучайтеся до блокчейн-спільноти, активно беріть участь в обговореннях і досліджуйте нові концепції та технології, щоб бути в курсі та бути в курсі подій.

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 3

Створення та керування смарт-контрактами у Vyper

Закінчивши цей курс, ви створили міцну основу для програмування блокчейну з Vyper. Тепер ви добре розумієте Ethereum, розумні контракти та те, як їх створювати в Remix IDE з Vyper. Таке розуміння відкриває цілий світ можливостей для розробки децентралізованих програм і участі в екосистемі блокчейну.

Вступ

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

SimpleStorage: Вступ до смарт-контрактів

Перший контракт, який ми розгорнемо, — SimpleStorage. Цей контракт, як випливає з назви, є простим контрактом на зберігання даних, який зберігає одне число. SimpleStorage складається із змінної storedData та двох функцій set і get. Функція set дозволяє користувачеві зберігати номер, а функція get дозволяє будь-кому отримати це число.

Розгортання та взаємодія з SimpleStorage

Ми розглянемо кроки для розгортання та взаємодії з контрактом SimpleStorage на блокчейні Ethereum. Розгортання контракту в блокчейні Ethereum — це процес передачі байт-коду контракту та ABI в мережу Ethereum, звідки його можна викликати та виконати. Після розгортання контракту він отримує унікальну адресу, за якою його можна отримати.

Ось код для SimpleStorage:

Python 
 # @title SimpleStorage 
 storedData: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

У цьому контракті ми визначаємо загальнодоступну цілочисельну змінну storedData, публічну функцію set(x: int128) для встановлення значення storedData та публічну постійну функцію get() -> int128 для отримання поточного значення storedData.

Ось покрокова інструкція щодо розгортання цього контракту за допомогою Remix:

  1. Відкрийте веб-браузер і перейдіть до Remix Ethereum IDE.

  2. Активуйте плагін Vyper

  3. Перемкніть середовище на Injected Web3 у розділі Deploy & Run Transactions . Це підключить Remix до вашого гаманця MetaMask.

  4. У розділі File Explorer клацніть піктограму + , щоб створити новий файл. Назвіть його SimpleStorage.vy.

  5. Вставте код контракту SimpleStorage у цей новий файл.

  6. Тепер перейдіть на вкладку VyperCompile і виберіть контракт SimpleStorage .

  7. Перейдіть на вкладку Deploy & Run Transactions , а потім натисніть кнопку Deploy .

  8. MetaMask відкриє спливаюче вікно підтвердження транзакції. Підтвердьте транзакцію.

  9. Після підтвердження транзакції ви побачите розгорнутий контракт SimpleStorage у розділі Deployed Contracts .

  10. Тепер ви можете взаємодіяти з контрактом. Наприклад, щоб зберегти номер, введіть його у функцію set і натисніть transact. Щоб отримати збережений номер, натисніть get.

SimpleVoting: більш складний контракт

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

Розгортання та взаємодія з SimpleVoting

Контракт SimpleVoting дещо складніший, ніж SimpleStorage. У SimpleVoting у нас буде список кандидатів, кожен представлений рядком.

Ось код для SimpleVoting:

Python 
 # Vyper Voting Contract 

 # Оголошення змінної стану `votes` як HashMap для зберігання голосів за кожного кандидата.
голоси: HashMap[bytes32, uint256] 

 @external 
 def vote(кандидат: bytes32): 
 """ 
 Проголосуйте за кандидата.

    Аргументи: 
 кандидат: bytes32 - Ідентифікатор кандидата, за якого потрібно проголосувати.
    """ 
 # Збільшити підрахунок голосів за вказаного кандидата.
    self.votes[кандидат] += 1 

 @external 
 @view 
 def get_votes(candidate: bytes32) -> uint256: 
 """ 
 Отримати загальну кількість голосів за кандидата.

    Аргументи: 
 кандидат: bytes32 - Ідентифікатор кандидата, за якого потрібно отримати голоси.

    Повертає: 
 uint256 – загальна кількість голосів, яку отримав кандидат.
    """ 
 повернення self.votes[кандидат]

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

Висновок і наступні кроки

Закінчивши цей курс, ви створили міцну основу для програмування блокчейну з Vyper. Тепер ви добре розумієте Ethereum, розумні контракти та те, як їх створювати в Remix IDE з Vyper. Таке розуміння відкриває цілий світ можливостей для розробки децентралізованих програм і участі в екосистемі блокчейну.

Щоб ще більше вдосконалити свої навички та знання, розгляньте такі сфери:

  1. Розширене програмування Solidity: Solidity — ще одна популярна мова програмування для смарт-контрактів Ethereum. Вивчення Solidity розширить вашу здатність працювати з існуючими контрактами та зробить внесок у спільноту Ethereum. Перегляньте наш курс тут: [вставте посилання на курс Solidity у режимі онлайн]

  2. Розробка децентралізованих програм (DApp): зануртеся глибше у створення повних децентралізованих програм, поєднуючи смарт-контракти з інтерфейсною розробкою за допомогою таких фреймворків, як Web3.js, React або Vue.js. Це дозволить вам створювати інтерактивні інтерфейси користувача, які взаємодіють із вашими смарт-контрактами.

  3. Безпека та аудит: ознайомтеся з найкращими методами захисту розумних контрактів і проведення ретельних перевірок коду. Розуміння потенційної вразливості та зменшення ризиків забезпечить надійність і безпеку ваших розумних контрактів.

  4. Взаємодія блокчейнів: досліджуйте інтеграцію різних мереж і протоколів блокчейнів. Дізнайтеся про міжланцюгову комунікацію та розробку сумісних смарт-контрактів, які можуть взаємодіяти з кількома блокчейнами.
    Пам’ятайте, що технологія блокчейн постійно розвивається, і дуже важливо бути в курсі останніх досягнень. Залучайтеся до блокчейн-спільноти, активно беріть участь в обговореннях і досліджуйте нові концепції та технології, щоб бути в курсі та бути в курсі подій.

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.