Как разработать приложение на 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) — его собственная база данных в блокчейне. Во-вторых, в нем должны быть функции (точки входа или entrypoints), которые и будут изменять состояние хранилища. Больше — в нашем курсе о разработке на 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

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

Starlords: новая ступень генеративных NFT из внешних миров

Starlords: новая ступень генеративных NFT из внешних миров

Разработка после акселератора: как податься на грант для запуска проекта

Разработка после акселератора: как податься на грант для запуска проекта

Приватность на Tezos: zk-SNARKS уже есть или нет?

Приватность на Tezos: zk-SNARKS уже есть или нет?

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

Сообщество