Plutus PAB Update: поддержка разработки DApps на Cardano ADA

This post is also available in: English

Plutus (PAB) Update 30/11/21: поддержка разработки DApp на Cardano ADA

Plutus Application Backend (PAB)

Plutus (PAB) предоставляет компоненты и среду, чтобы помочь разработчикам создавать и тестировать DApps перед их развертыванием в реальной производственной среде. Обновление протокола Alonzo представило Plutus Application Backend (PAB) — платформу, которая предоставляет собственный язык смарт-контрактов, а также необходимую инфраструктуру и инструменты для поддержки смарт-контрактов на Cardano. Платформа Plutus позволяет разработчикам писать децентрализованные приложения (DApps) с возможностью написания сценариев, которые взаимодействуют с распределенными реестрами.

PAB помогает создавать транзакции UTXO двумя способами:

  • Путь чтения — то есть получение информации из цепочки и реакция на события, происходящие в цепочке блоков. Путь чтения в настоящее время работает в тестовой сети
  • Путь записи — здесь мы фактически создаем транзакции, которые запускают скрипты Plutus.

Роль Plutus Application Backend (PAB)

PAB — это ключевой компонент Plutus Application Framework (PAF), который позволяет разработчикам создавать и тестировать DApps локально перед их развертыванием в действующей производственной среде. Подобно тому, как Marlowe Playground предоставляет разработчикам песочницу для создания и тестирования финансовых смарт-контрактов, PAB предлагает аналогичную среду для разработчиков для создания и тестирования полных DApps.

PAB — это автономная серверная служба для управления и обработки требований экземпляра приложения на протяжении его жизненного цикла.  Это включает взаимодействие с внешними клиентами (такими как внешние интерфейсы кошелька) и выступает в качестве посредника между приложениями Plutus, узлом, серверной частью кошелька и конечными пользователями. Такое взаимодействие стало возможным благодаря командам PAB и фиктивным компонентам, которые обеспечивают удобное моделирование и интеграцию DApps.

Чтобы понять суть Plutus Application Backend (PAB), необходимо осознать три ее концепции:

  • Модель расширенного вывода неиспользованных транзакций (EUTXO).
  • Plutus Core — «внутрицепочечная» часть Plutus.
  • Plutus Application Framework (PAF) — контракты Plutus состоят из частей, которые выполняются на блокчейне (код на блокчейне), и частей, которые выполняются на машине пользователя (код вне блокчейна или клиентский код).
Plutus (PAB) Update 30/11/21: поддержка разработки DApp на Cardano ADA

Plutus Core

Для реализации модели EUTXO необходимо четко определить термины сценарий и данные. Сценарии требуют определенного, хорошо специфицированного языка сценариев, и также важно определить тип данных, которые прикрепляются к выходам и используются в качестве погасителей. Именно здесь на помощь приходит Plutus Core.

Plutus Core — это язык сценариев, используемый Cardano. Это простой функциональный язык, похожий на Haskell, и большое подмножество Haskell может быть использовано для написания скриптов Plutus Core. Как автор контракта вы не пишете никаких Plutus Core. Все программы Plutus Core генерируются плагином компилятора Haskell. Эти скрипты будут выполняться узлами во время проверки транзакций «вживую» на цепочке. Они будут либо блокировать UTXO в виде скриптов валидатора, либо в виде майнинговых политик, которые управляют майнингом и сжиганием нативных токенов.

Данные Redeemer — это простой (алгебраический) тип данных, который можно легко определить на языке Haskell, что является еще одной причиной, по которой Haskell является хорошим вариантом для написания скриптов Plutus Core. На практике разработчик смарт-контракта будет писать скрипты валидатора на языке Haskell, которые затем будут автоматически компилироваться в Plutus Core. Соответствующие библиотеки Haskell упрощают написание такой логики валидации, предоставляя основные типы данных для проверки транзакций во время валидации, а также предлагая множество вспомогательных функций и абстракций более высокого уровня, что позволяет авторам контрактов сосредоточиться на бизнес-логике и не беспокоиться о множестве низкоуровневых деталей.

The Plutus Application Framework (PAF)

Состояние скриптов валидатора на цепочке может быть изменено только транзакциями, которые расходуют и производят вывод скриптов. При написании приложения Plutus нам необходимо учитывать не только часть приложения на цепочке (скрипты Plutus Core), но и часть вне цепочки, которая создает и отправляет транзакции. Код вне цепочки пишется на языке Haskell, как и код на цепочке. Таким образом, нам нужно написать бизнес-логику только один раз. Затем мы можем использовать ее в скрипте валидатора и в коде, который создает транзакции, запускающие скрипт валидатора.

Многим приложениям необходимо отслеживать набор UTXO на предмет изменений определенных адресов, поэтому если мы напишем наш контракт в виде машины состояний, нам нужно будет отслеживать неизрасходованный выход, который представляет текущее состояние машины, и обновлять наше локальное состояние при изменении состояния на цепочке. Аналогичным образом, многим приложениям необходимо взаимодействовать с бэкендом кошелька для доступа к криптовалюте, которую они используют для транзакций. PAF обеспечивает легкий доступ к сервисам, которые часто используются приложениями Plutus.

Приложения, развернутые с использованием библиотек фреймворка, могут запускаться на бэкенде приложений Plutus, который обеспечивает поддержку во время выполнения для доступа к блокчейну и других проблем, таких как персистентность, ведение журналов и мониторинг. Приложения, написанные поверх PAF, автоматически предоставляют интерфейс HTTP и WebSocket, который можно использовать для взаимодействия с приложением из веб-браузера.

Что такое бэкенд приложений Plutus?

В модели UTXO у нас есть внецепочечная инфраструктура, которая создает транзакции, обеспечивающие работу приложений. Эта внецепочечная инфраструктура довольно сложна, потому что ей нужно посмотреть на состояние бухгалтерской книги, выбрать некоторую информацию из бухгалтерской книги и собрать все это вместе, чтобы создать транзакцию с нужными частями данных в нужном месте. PAB — это единая библиотека на языке Haskell, которая упрощает написание этой внецепочечной инфраструктуры и внутрицепочечных скриптов.

PAB помогает в построении транзакций UTXO двумя способами:

  • Путь чтения — то есть получение информации из цепочки и реагирование на события, происходящие на блокчейне. В настоящее время путь чтения работает в тестовой сети
  • Путь записи — здесь мы создаем транзакции, которые запускают скрипты Plutus

Заглядывая в будущее

PAB Это только начало. Как всегда, это будет итеративный процесс. По мере развития платформы Plutus мы будем предлагать сообществу разработчиков внедрять свои собственные инструменты и создавать внецепочечный код для своих DApp, работающих на Cardano. Мы уже наблюдаем бурную деятельность в этой области в рамках программы Alonzo testnet и Project Catalyst. Поэтому пока мы тестируем платформу с помощью наших инженеров/QA и сообщества разработчиков, мы будем постепенно улучшать ее и добавлять новые возможности и функциональность. Цель? После хардфорка Alonzo и появления смарт-контрактов Plutus быстрое расширение возможностей для разработчиков, с новыми инструментами, API и средами для поддержки уже растущей экосистемы талантов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Next Post

NBMiner v40.1: Скачать GPU-майнер ETH, CFX, RVN, GRIN, BEAM, AE

Пт Ноя 26 , 2021
This post is also available in: English NBMiner — AMD & NVIDIA GPU Miner NBMiner — это GPU-майнер ETH, CFX, RVN, GRIN, BEAM, AE с закрытым исходным кодом для Nvidia CUDA, а теперь и AMD, который доступен как для операционных систем Windows, так и для Linux. Имеет встроенную поддержку конфигурации […]