Astarter
September 26, 2022

Что обновление Vasil дает разработчикам Astarter?

Astarter

Обновления и модернизация программного обеспечения - обычное и рутинное явление в цифровом мире, поскольку они позволяют привнести новые функции, повысить производительность и безопасность в операционные системы и приложения, которые мы используем в повседневной жизни. Блокчейн не является исключением, в нем участвует множество разработчиков, валидаторов и экономических заинтересованных сторон, что делает необходимым планирование, подготовку, тестирование и консенсус, причем более децентрализованные требуют большего внимания в этих областях.

Предстоящий форк Vasil улучшает работу смарт-контрактов Cardano, повышая эффективность транзакций и снижая комиссионные сборы, позволяя создавать более сложные смарт-контракты и внося в основном изменения, совместимые с обратной стороной. Потенциал несовместимости все же существует, и поэтому Dapps требуют тестирования, модификации и оптимизации для продолжения оптимального функционирования.

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

Для смарт-контрактов основными дополнениями, которые разблокирует Vasil, являются;

CIP-31: Ссылочные входы облегчают хранение данных без необходимости тратить и заново создавать UTXO.

Преимущества

  • Улучшают параллельность и пропускную способность.
  • Позволяют расширить исходные ограничения TX

Недостаток

  • Может вызывать неопределенные сбои в цепи.
  • В настоящее время не существует хорошей основы для использования таких базовых интерфейсов, которые могут иметь риски безопасности при неправильном использовании

CIP-32: Данные Inline Datums прикрепляются к выходу вместо Hash

Преимущества

  • Более простое создание транзакции без соответствия заданному хэшу
  • В большинстве случаев данные являются простыми
  • Более децентрализованная

Недостатки

  • Данные состояния не могут быть скрыты, и при использовании приложений типа guess необходимо использовать оригинальные данные.
  • Контракт не делает различий между этими двумя понятиями, поэтому в случае децентрализации можно рассматривать только те данные, которые пользователи будут использовать в открытом виде
  • Внесены изменения в структуру данных на цепочке, что увеличивает сложность

CIP-33: Ссылочные сценарии, прикрепление сценария непосредственно к выходу

Преимущества

  • Уменьшить количество каждой транзакции
  • Создать вывод ссылочного скрипта, который будет более похож на поведение "установки контракта" в других цепочках

Примечание:

В отличие от других блокчейнов, вывод эталонного скрипта хранится только на цепочке, и пользователь, инициировавший вывод эталонного скрипта, не имеет над ним контроля и не может его перенести или обновить. Подобные транзакции могут быть инициированы и другими пользователями.

CIP-40: Collateral Output. Создание вывода для обеспечения

Преимущества

  • Установленные ставки платы за обеспечение позволяют избежать потерь пользователей
  • Дополняет чрезмерные потери, вызванные высокой вероятностью неудачных транзакций на цепочке при широком использовании CIP-31.

Недостаток

  • Дополнительная сложность
  • Увеличение количества транзакций и невозможность улучшить параллелизм

Как хардфорк Vasil повлияет на Astarter

Мы начали обновлять все аспекты сервисов, когда Vasil запустился в тестнете. Из-за отсутствия соответствующих тулчейнов в начале разработки, мы написали свои собственные базовые сервисы тулчейна.

Chain node service, нодовый сервис, работающий на K8S и предоставляющий интерфейс Ogmios. Регулярно обновляет образы и конфигурации.

Сервис синхронизации: аналогичен cardano-db-sync, но фокусируется на скорости и реальном времени. Изменения в структуре данных в цепочке требуют адаптации и добавления новых полей.

Библиотека построения транзакций: оборачивает Cardano cli для предоставления сервисов построения и балансировки транзакций, которые широко используются во фронт- и бэк-эндах. Необходимо перестроить и адаптировать к новой структуре транзакций и улучшить возможность повторного использования.

Backend Wallet: Предоставляет функции, аналогичные NAMI, но только для BOT в фоновом режиме. связанные библиотеки требуют обновления.

Для разных сервисов будут разные компоненты для обновления, как указано ниже:

Контракт: Контракт V1 может продолжать работать, но вновь добавленные функции не могут быть использованы. Если мы хотим использовать недавно добавленные функции Refence Script и inline datum, необходимо обновить контракт до V2.

BOT: Мониторинг контрактов и автоматическое выполнение транзакций. Необходимо заново адаптировать новый SDK.

Core Services: API, обеспечивающие основную деятельность. Необходимо заново адаптировать новый SDK.

UI и BFF: Предоставляют внешние данные, взаимодействие с пользовательским кошельком. Необходимо адаптировать к новому SDK, обновить сборку транзакций и полагаться на кошелек пользователя, если кошелек пользователя не обновлен, то транзакция не будет отправлена.

Что мы сделали

- Обновлена инфраструктура, обновлены узлы и Ogmigo, оптимизирован код IaC развертывания, что упрощает обновление и изменение конфигурации узлов.

- Обновление служб синхронизации, поддержка блоков транзакций Babbage, добавление поддержки встроенных точек отсчета и расширение миграции данных служб синхронизации.

- Обновление службы построения транзакций для замены оригинального кода, интегрированного в lib, на независимые микросервисы grpc и поддержки построения новых транзакций эпохи Babbage.

- Обновление SDK, предоставление базовых услуг для BFF и UI в качестве клиента grpc, изоляция изменений и облегчение последующих обновлений и модернизаций.

- Обновление клиента, интеграция новой транзакции SDK, обновление и модернизация front-end для построения кода транзакции.

- Обновление бота, интеграция новой транзакции и бэкенда WalletSDK, обновление бэкенда и сборка кода транзакции.

Заключение

Определенно, предстоящее обновление текущего смарт-контракта на цепочке может повлиять на весь наш проект. Помимо интерфейса UI, мы сделали некоторые адаптации для поддержки хардфорка Vasil.

Существует проблема, что обновление цепочки инструментов не является обратно совместимым. После адаптации к Vasil, он может работать только на цепочке Vasil, и наоборот. После разработки Vasil мы сможем выпустить его, как только заработает мейннет. Даже когда мы обновились, цепочки инструментов не обновились. Например, Dapp обновлен, но кошелек не обновлен, что приведет к тому, что пользователь не сможет подписать транзакцию, потому что залог в новой транзакции не будет распознан.

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

Но среди новых функций мы также видим, что смарт-контракты на Cardano преодолевают разрыв с другими смарт-контрактами. Эти новые функции Vasli привносят некоторые новые фантазии, которые могут улучшить возможности смарт-контрактов, особенно в нашем DEX, направление этого типа приложений требует высокочастотной торговли и перспективы целостной картины.


Спасибо, за уделенное время!

Ссылочки на Astarter:

Сайт

Дискорд

Твиттер

Ютуб

Медиум