Урок 4

Смарт-контракт

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

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

Стислі неінтерактивні аргументи знань з нульовим розголошенням (zk-SNARKs) використовуються для перевірки правильності обчислень поза мережею. У zkSync zk-SNARK гарантують, що всі транзакції та виконання смарт-контрактів є дійсними без необхідності виконувати обчислення в основній мережі Ethereum. Це зменшує обчислювальне навантаження та пов'язану з цим плату за газ, що забезпечує більшу пропускну здатність.

zkSync Era, остання ітерація, повністю сумісна з віртуальною машиною Ethereum (EVM). Це означає, що більшість смарт-контрактів, написаних для Ethereum, можна розгорнути на zkSync практично без змін. Сумісність з EVM гарантує, що розробники можуть використовувати знайомі інструменти та мови (наприклад, Solidity) для написання та розгортання своїх контрактів.

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

Написання та розгортання смарт-контрактів

Смарт-контракти для zkSync написані на Solidity, тій самій мові, яка використовується для смарт-контрактів Ethereum. Розробники можуть використовувати ті ж синтаксис і логічні структури, до яких вони звикли, що робить перехід на zkSync дуже простим.

Розгортання Смарт-контрактів

1.Налаштування середовища розробки:

  • Встановіть Node.js та npm (Node Package Manager).
  • ВстановітьzkSync та hardhatпакети через npm.
  • Ініціалізуйте новий проект Hardhat і налаштуйте його для роботи з zkSync.

2.Конфігурація:

Змінитиhardhat.config.js файл, щоб включити специфічні для zkSync налаштування, такі як URL-адреси мережі zkSync та специфічні для zkSync параметри компілятора.

Приклад конфігурації може виглядати так:

3.Компілюйте Смарт-контракти:

За допомогою фреймворку Hardhat можна складати контракти Solidity. Плагін Hardhat zkSync забезпечує сумісність компіляції з мережею zkSync.

4.Розгортання Смарт-контрактів:

Процес розгортання передбачає підключення до провайдера zkSync, створення екземпляра гаманця та його використання для розгортання контракту. Приклад сценарію розгортання:

Доступні інструменти розробки

Hardhat

Hardhat - це середовище розробки та завдань для Ethereum, яке було розширено для підтримки zkSync. Це дозволяє розробникам компілювати, розгортати, тестувати та налагоджувати розумні контракти Solidity.

zkSync SDK

SDK zkSync надає засоби та бібліотеки для взаємодії з zkSync з оточення JavaScript. Він включає утиліти для налаштування гаманців, відправки транзакцій та взаємодії з розгорнутими у zkSync смарт-контрактами.

zkSync CLI

Інтерфейс командного рядка (CLI) zkSync надає можливості управління проектами zkSync, включаючи розгортання контрактів та управління обліковими записами.

Remix IDE

Remix - це відкритий веб-тастільний додаток з відкритим кодом, який допомагає писати угоди Solidity прямо з браузера. Він підтримує zkSync через плагіни та конфігурації, які з'єднують його з мережею zkSync.

Інтеграція

Інструменти розробки інтегруються для створення єдиної середи для розробки, тестування та розгортання смарт-контрактів на zkSync.

Шолом та SDK zkSync

Hardhat інтегрується з SDK zkSync, щоб забезпечити плавний робочий процес для розробників. Плагіни Hardhat для zkSync обробляють процеси компіляції та розгортання, тоді як SDK zkSync надає базовий функціонал для взаємодії з мережею zkSync. Ця комбінація дозволяє розробникам писати сценарії розгортання та тести, використовуючи знайомі конструкції Hardhat, використовуючи специфічні для zkSync функції.

Hardhat та Remix

Розробники можуть писати та тестувати смарт-контракти за допомогою Remix, а потім використовувати Hardhat для більш складних сценаріїв розгортання. Скомпільовані артефакти з Remix можуть бути легко імпортовані в проект Hardhat, що дозволяє гнучкі робочі процеси розробки.

zkSync CLI

zkSync CLI можна використовувати разом із Hardhat і zkSync SDK для керування розгортаннями та взаємодії з розгорнутими контрактами. Він надає інтерфейс командного рядка для типових завдань, таких як розгортання контрактів або керування ключами облікових записів, які можна інтегрувати в автоматизовані конвеєри розгортання.

Тестування та налагодження

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

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

Основні моменти

  • Написання та розгортання смарт-контрактів на zkSync включає в себе використання Solidity та Vyper, з компіляцією через власні компілятори zkSync.
  • CLI та SDK zkSync надають комплексні інструменти для налаштування проекту, компіляції контрактів, розгортання та взаємодії.
  • Інтеграція з інструментами розробки, такими як Hardhat, Foundry, Remix та Atlas, покращує досвід розробника.
  • Дотримання кращих практик забезпечує безпечну та ефективну розробку Смарт-контрактів на zkSync.
Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.
Каталог
Урок 4

Смарт-контракт

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

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

Стислі неінтерактивні аргументи знань з нульовим розголошенням (zk-SNARKs) використовуються для перевірки правильності обчислень поза мережею. У zkSync zk-SNARK гарантують, що всі транзакції та виконання смарт-контрактів є дійсними без необхідності виконувати обчислення в основній мережі Ethereum. Це зменшує обчислювальне навантаження та пов'язану з цим плату за газ, що забезпечує більшу пропускну здатність.

zkSync Era, остання ітерація, повністю сумісна з віртуальною машиною Ethereum (EVM). Це означає, що більшість смарт-контрактів, написаних для Ethereum, можна розгорнути на zkSync практично без змін. Сумісність з EVM гарантує, що розробники можуть використовувати знайомі інструменти та мови (наприклад, Solidity) для написання та розгортання своїх контрактів.

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

Написання та розгортання смарт-контрактів

Смарт-контракти для zkSync написані на Solidity, тій самій мові, яка використовується для смарт-контрактів Ethereum. Розробники можуть використовувати ті ж синтаксис і логічні структури, до яких вони звикли, що робить перехід на zkSync дуже простим.

Розгортання Смарт-контрактів

1.Налаштування середовища розробки:

  • Встановіть Node.js та npm (Node Package Manager).
  • ВстановітьzkSync та hardhatпакети через npm.
  • Ініціалізуйте новий проект Hardhat і налаштуйте його для роботи з zkSync.

2.Конфігурація:

Змінитиhardhat.config.js файл, щоб включити специфічні для zkSync налаштування, такі як URL-адреси мережі zkSync та специфічні для zkSync параметри компілятора.

Приклад конфігурації може виглядати так:

3.Компілюйте Смарт-контракти:

За допомогою фреймворку Hardhat можна складати контракти Solidity. Плагін Hardhat zkSync забезпечує сумісність компіляції з мережею zkSync.

4.Розгортання Смарт-контрактів:

Процес розгортання передбачає підключення до провайдера zkSync, створення екземпляра гаманця та його використання для розгортання контракту. Приклад сценарію розгортання:

Доступні інструменти розробки

Hardhat

Hardhat - це середовище розробки та завдань для Ethereum, яке було розширено для підтримки zkSync. Це дозволяє розробникам компілювати, розгортати, тестувати та налагоджувати розумні контракти Solidity.

zkSync SDK

SDK zkSync надає засоби та бібліотеки для взаємодії з zkSync з оточення JavaScript. Він включає утиліти для налаштування гаманців, відправки транзакцій та взаємодії з розгорнутими у zkSync смарт-контрактами.

zkSync CLI

Інтерфейс командного рядка (CLI) zkSync надає можливості управління проектами zkSync, включаючи розгортання контрактів та управління обліковими записами.

Remix IDE

Remix - це відкритий веб-тастільний додаток з відкритим кодом, який допомагає писати угоди Solidity прямо з браузера. Він підтримує zkSync через плагіни та конфігурації, які з'єднують його з мережею zkSync.

Інтеграція

Інструменти розробки інтегруються для створення єдиної середи для розробки, тестування та розгортання смарт-контрактів на zkSync.

Шолом та SDK zkSync

Hardhat інтегрується з SDK zkSync, щоб забезпечити плавний робочий процес для розробників. Плагіни Hardhat для zkSync обробляють процеси компіляції та розгортання, тоді як SDK zkSync надає базовий функціонал для взаємодії з мережею zkSync. Ця комбінація дозволяє розробникам писати сценарії розгортання та тести, використовуючи знайомі конструкції Hardhat, використовуючи специфічні для zkSync функції.

Hardhat та Remix

Розробники можуть писати та тестувати смарт-контракти за допомогою Remix, а потім використовувати Hardhat для більш складних сценаріїв розгортання. Скомпільовані артефакти з Remix можуть бути легко імпортовані в проект Hardhat, що дозволяє гнучкі робочі процеси розробки.

zkSync CLI

zkSync CLI можна використовувати разом із Hardhat і zkSync SDK для керування розгортаннями та взаємодії з розгорнутими контрактами. Він надає інтерфейс командного рядка для типових завдань, таких як розгортання контрактів або керування ключами облікових записів, які можна інтегрувати в автоматизовані конвеєри розгортання.

Тестування та налагодження

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

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

Основні моменти

  • Написання та розгортання смарт-контрактів на zkSync включає в себе використання Solidity та Vyper, з компіляцією через власні компілятори zkSync.
  • CLI та SDK zkSync надають комплексні інструменти для налаштування проекту, компіляції контрактів, розгортання та взаємодії.
  • Інтеграція з інструментами розробки, такими як Hardhat, Foundry, Remix та Atlas, покращує досвід розробника.
  • Дотримання кращих практик забезпечує безпечну та ефективну розробку Смарт-контрактів на zkSync.
Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.