Як розробити додаток на Tezos? Tezos для новачків

Як розробити додаток на Tezos? Tezos для новачків

Розробка блокчейн-додатків відрізняється від розробки звичайних додатків тим, що в бекенді використовуються смарт-контракти.

Це прості пояснення без коду та складних прикладів, щоб розповісти основи та підказати, в який бік копати. Розповідаємо про корисні інструменти і про те, що потрібно знати для розробки блокчейн-додатку на Tezos.

Теоретичні основи розробки блокчейн-додатків

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

Децентралізовані програми ж обробляють операції за допомогою смарт-контрактів і зберігають дані в блокчейні. Також вони можуть зберігати деякі дані поза блокчейном, наприклад, реплікувати історію операцій користувачів в окрему базу даних для відображення її на сайті або зберігати токенізовані цифрові об’єкти в IPFS (Interplanetary File System).

Хоча практично всі децентралізовані програми мають фронтенд з графічним інтерфейсом, досвідчені користувачі можуть безпосередньо працювати зі смарт-контрактами додатків. Простий спосіб зробити це — скористатися Better Call Dev, складний — самому викликати контракт у командному рядку за допомогою tezos client.

Якою мовою писати смарт-контракти на Tezos? Смарт-контракти виконує віртуальна машина. ВМ Tezos розуміє лише низькорівневу мову Michelson, яка дуже схожа на Assembler з Термінатора.

Для зручної розробки є високорівневі мови: об’єктно-орієнтований SmartPy та імперативний LIGO. SmartPy схожий на Python, а LIGO має кілька діалектів: PascaLIGO, JsLIGO, CameLIGO, ReasonLIGO.

Де писати смарт-контракти на Tezos? Найзручніший спосіб — встановити плагін для підсвічування синтаксису відповідної мови у ваше улюблене середовище розробки.

Однак спочатку можна скуштувати онлайн-IDE:

  • LIGO Playground для LIGO. Дозволяє перевірити компілювання, протестувати роботу функцій та згенерувати скрипт для деплою контракту на блокчейн. Також у ньому є кілька прикладів контрактів різних діалектах;
  • SmartPy IDE для SmartPy. Також є компіляція Michelson, тестування і дуже багато шаблонів — від калькулятора до простих ігор;
  • VisualTez — візуальне середовище розробки контрактів SmartPy. На нашу думку, ідеально, якщо ви ще не розібралися з синтаксисом.

Що має бути у смарт-контракті? По-перше, у будь-якому контракті має бути сховище (storage) — його власна база даних у блокчейні. По-друге, в ньому повинні бути функції (точки входу або пункти входу), які і будуть змінювати стан сховища. Більше — у нашому курсі про розробку на Tezos.

Як перевірити працездатність смарт-контракту? Спочатку його слід протестувати за допомогою «репетиції» (dry run). При репетиції розробник викликає потрібну точку входу, передає їй параметри для виконання та отримує результат — новий стан сховища.

Також контракти потрібно тестувати, щоби переконатися, що функції працюють як треба. Дивіться воркшоп із тестування.

Що робити з кодом смарт-контракту? Його потрібно задеплоїти до блокчейну, щоб він отримав власну адресу, і інші користувачі змогли до нього звертатися. Для цього потрібно згенерувати спеціальний скрипт і встановити початковий стан сховища, наприклад, емісію токенів або адресу адміністратора. Детальніше про деплой — в курсі.

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

Як працювати зі смарт-контрактом із фронтенду? Для цього є бібліотека Taquito та модуль Beacon.

Taquito — TypeScript-бібліотека з набором функцій на кшталт запиту ончейн-даних від ноди, взаємодії зі смарт-контрактами та підписання операцій приватним ключем користувача.

Beacon — модуль для підключення гаманця Tezos за стандартом TZIP-10. Працює з усіма гаманцями.

Звідки додаток братиме ончейн-дані? Складний спосіб — за допомогою Taquito запитувати потрібні дані прямо від ноди. Складний, тому що програма знадобиться час на отримання інформації.

Простий спосіб — скористатися індексерами. Це окремі оптимізовані під швидкий пошук бази даних, які зберігають дані про блокчейн Tezos. Можна запитувати потрібні дані через API, або запустити індексер на своїй машині. Найпопулярніші — індексер TzKT та фреймворк для створення індексерів DipDup.

Смарт-контракти можна писати як завгодно? Ні, краще дотримуватись стандартів. Наприклад, у Tezos є два стандарти токенів (Financial Assets) — FA1.2 та FA2. Імплементацію цих стандартів можна знайти у шаблонах онлайн-IDE або Github-репозиторіях команд Tezos.

Більше стандартів та пропозицій — на GitLab.

Де знайти відповіді на запитання? Можете запитувати розробників на Tezos Stack Exchange або у спільноті відповідного інструменту чи команди.

Також не соромтеся ставити запитання в наших спільнотах — ми відповімо або підкажемо, де знайти відповідь:

  1. Telegram-канал
  2. Facebook
  3. Twitter українською мовою
  4. Twitter російською мовою
  5. Twitter англійською мовою
  6. YouTube-канал
  7. Instagram
  8. LinkedIn
  9. hub ForkLog

наступний

Розробка та запуск власного проєкту: підсумки акселератора Tezos

Читайте схожі пости

Що таке мета-транзакції без транзакційних комісій?

Що таке мета-транзакції без транзакційних комісій?

Дорога до 1 000 000 TPS: історія оновлень Tezos

Дорога до 1 000 000 TPS: історія оновлень Tezos

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Бонусний урок для блокчейн-індексерів: робимо простий токен трекер

Читайте блог і не пропускайте новини про TezosЧитати блог

Спільнота