Создание простых рабочих процессов для Web3 с использованием Flow и Cadence

Создание простых рабочих процессов для Web3 с использованием Flow и Cadence

20 октября 2022 г.

Разработка смарт-контрактов ничем не отличается от других видов разработки программного обеспечения. Код пишется для выполнения определенной задачи, и существуют инструменты, помогающие упростить этот процесс. Экосистема Ethereum содержит множество зрелых инструментов, помогающих создавать проекты Web3, но как насчет более новой экосистемы, такой как Flow?

Если вы до сих пор следили за этой серией, вы знаете, что блокчейн Flow оптимизирован для создания и управления цифровыми активами. Кроме того, его язык смарт-контрактов Cadence устраняет недостатки других языков благодаря подходу, основанному на ресурсах, и надежной статической системе типов.

В этой статье мы рассмотрим основные инструменты, которые разработчики смарт-контрактов могут использовать для упрощения создания Flow, — такие инструменты, как интерфейсы командной строки, расширения IDE, клиентские библиотеки, локальные сети и многое другое. Мы также сравним их с инструментами Ethereum, с которыми вы, возможно, уже знакомы, поэтому, если вы переходите на Flow, вы точно будете знать, чего ожидать.

Интерфейсы командной строки

Интерфейсы командной строки (CLI) – это основа разработки программного обеспечения. Они интуитивно понятны большинству разработчиков и легко интегрируются с другим программным обеспечением. п

Эта простая интеграция применима и к разработке смарт-контрактов. Например, если вам нужно быстро развернуть контракт, чтобы протестировать его или запустить с разными учетными записями, интерфейс командной строки может очень помочь. А позже, когда вы захотите добавить процесс развертывания в конвейер CI/CD, вы будете рады иметь простой инструмент командной строки, который можно автоматизировать с помощью сценариев оболочки.

В EVM-совместимых сетях, таких как Ethereum, Truffle и Hardhat, обе предлагают мощные инструменты для этих задач. Hardhat Runner используется почти для всех действий с Hardhat, а __Truffle Console__позволяет разработчикам быстро взаимодействовать со своими смарт-контрактами через JavaScript без необходимости писать файлы сценариев. п

CLI Flow – это основной инструмент для разработки, тестирования и развертывания. смарт-контракты, написанные в Cadence, в сеть Flow. Кроме того, это интерфейс, который вы используете при взаимодействии с блокчейном Flow, например при создании и проверке учетных записей, подписании транзакций или автоматизации задач с помощью скриптов.

В отличие от Ethereum, где вы должны создать адрес для взаимодействия с блокчейном, Flow требует, чтобы у вас была учетная запись. Эта учетная запись содержит ваши смарт-контракты, токены и ключи и необходима для взаимодействия с блокчейном. Вы можете легко создавать учетные записи с помощью интерфейса командной строки Flow.

Расширения IDE

Затем вы хотите написать код, и такие языки, как Cadence и Solidity, предлагают статическую проверку типов, которая дает вам полезную информацию о том, как ваш код будет вести себя в вашем редакторе.

n В то время как Solidity поставляется с фундаментальной системой типов, которая не позволяет вам смешивать различные типы чисел, Cadence идет на несколько шагов дальше и вводит концепцию владения. Возможно, вы знаете это из Rust, но основная идея заключается в том, что у Cadence есть ресурсы, такие как NFT, которые могут принадлежать только одному адресу. Расширение Cadence IDE уведомит вас о проблемах с вашими транзакциями NFT прямо в тот момент, когда вы пишете код, а также предложит подсветку синтаксиса, завершение кода и проверку типов.

Линтеры

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

То же самое верно и для Solhint, инструмента линтера для Solidity. Опять же, статическая система типов Solidity очень примитивна и не предотвращает многих ошибок при использовании языка. Solhint приходит на помощь и дает советы поверх системы типов, чтобы избежать неправильного использования.

Язык Cadence имеет гораздо более сложную систему типов и предоставляет больше возможностей, чем Solidity. Правильно составленный смарт-контракт Cadence более безопасен, чем правильно введенный контракт Solidity.

Типичная функциональность линтера встроена прямо в язык Cadence через его систему типов, но если вы хотите запускать проверки типов для нескольких файлов Cadence внутри конвейера CI/CD, Инструмент Cadence lint может помочь.

Локальные сети

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

При разработке на EVM вы, вероятно, знаете и используете для этой задачи Hardhat Network или Ganache. Оба инструмента имитируют среду блокчейна на вашем локальном компьютере и позволяют разветвить версию основной сети для взаимодействия с реальными учетными записями и контрактами.

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

n После установки Flow CLI все, что нужно сделать, Запустите эмулятор, введите эмулятор потока команд в своем терминале.

Сборщики тестовой сети

При разработке смарт-контрактов обычно требуются криптографические токены для развертывания кода и взаимодействия с ним. Иначе как вы будете тестировать транзакции?

n Flow, как и Ethereum, имеет __тестовую сеть, которая поставляется с

Кроме того, Blocto Swap — это универсальный инструмент, который упрощает создание учетной записи в Flow для пользователей. Все, что нужно сделать, это ввести адрес электронной почты. Blocto Swap позволяет пользователям легко обменивать свои токены на различные типы для использования в тестировании. Этот инструмент также является удобным способом получить FUSD, если эта коллекция еще не инициализирована в аккаунте.

Помните: токены в тестовой сети не имеют никакой ценности вне тестирования.

Автоматическое тестирование

И в Cadence, и в Solidity есть инструменты автоматизации тестирования, позволяющие писать тесты на JavaScript.

Инструменты разработки Hardhat используют средство запуска тестов Chai и предоставляют вам сопоставители смарт-контрактов и сетевые помощники для EVM.

У Cadence есть собственные инструменты, которые используют Jest в качестве основы, но они не зависят от фреймворка. Так что, если Jest вам не по душе, вы можете использовать другой инструмент запуска тестов.

Исследователи блокчейна

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

Для сети Ethereum вы можете знать Etherscan. Это веб-приложение, позволяющее просматривать транзакции и адреса в основной и тестовой сетях.

n Flow поставляется с гораздо более мощным инструментом, Flowser!

Flowser (Flow Browser) — это веб-приложение, но вы можете запускать его локально. Он позволяет просматривать как основную сеть Flow, так и любую локальную сеть, которую вы запускаете с помощью эмулятора Flow. Он даже поставляется с графическим интерфейсом для настройки и запуска эмулятора и управления вашими кошельками разработки.

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

Кроме того, инструмент flow-view-source позволяет пользователям проверять учетные записи и их различные атрибуты, такие как как балансы, ключи и любые контракты, которые они могут содержать.

п

Взаимодействие с JavaScript

Чтобы создать децентрализованное приложение (dapp) для вашего смарт-контракта, вам нужен мост между сетью блокчейнов и Интернетом. Flow и Ethereum поставляются с интеграцией Webpack для решения этой проблемы.

n Загрузчик Solidity автоматически перезагрузит ваше приложение при изменении Solidity кода, поэтому ваш интерфейс всегда работает с текущей версией вашего смарт-контракта во время разработки.

Cadence предлагает аналогичные функции через свой плагин Webpack и утилиты Cadence.

Кроме того, клиентская библиотека Flow (FCL) JS является одним из лучших способов для разработчика чтобы быстро приступить к созданию блокчейна Flow. Этот пакет делает взаимодействие с кошельками и смарт-контрактами простым и безопасным, а также предоставляет все инструменты, необходимые для создания полнофункциональных децентрализованных приложений.

Игровые площадки

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

Хотя у Ethereum нет таких проектов, как Flow Playground, есть несколько, которыми вы могли бы воспользоваться для создания аналогичного опыта. Онлайн-редактор кода Solidity, Remix, предоставляет среду для быстрого создания и тестирования смарт-контрактов. Кроме того, вы можете присоединиться к Академии DAO для разработчиков, чтобы быстрее освоить Solidity и Remix. .

Обзор

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

n Хотя у Flow более молодая экосистема по сравнению с Ethereum, доступные инструменты и библиотеки достаточно развиты, чтобы помочь ускорить процесс разработки. От интерфейсов командной строки и расширений IDE до локальных сетей и обозревателей блоков — в Flow есть все инструменты, которые может ожидать разработчик Ethereum, и даже больше.

Кроме того, система типов и встроенные функции языка смарт-контрактов Cadence предлагают элементы управления, которые Solidity не может предложить без дополнительных инструментов, таких как линтеры. Но даже в этом случае ценность этих инструментов Solidity уступает функциям, предоставляемым Cadence.

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

n Чтобы ознакомиться со списком других замечательных инструментов экосистемы Flow, ознакомьтесь с этим репозиторием Github. .

Хорошего дня!


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE