Hardhat or Truffle: какой инструмент наиболее подходящий для начинающих
Если вы только начинаете свою карьеру в мире блокчейна и задаетесь вопросом, что выбрать: Hardhat или Truffle, то вы попали по адресу! В этой статье мы рассмотрели оба этих фреймворка и далее провели небольшое сравнение.
Hardhat Tools
Hardhat - это среда разработки Ethereum для разработчиков, которая позволяет выполнять частые задачи.
Помимо простого развертывания контрактов и запуска тестов, Hardhat предоставляет еще несколько функций, которые делают его более мощным и уникальным.
Давайте рассмотрим эти возможности по порядку.
Hardhat Network
Hardhat поставляется в комплекте с Hardhat Network — локальной нодой сети Ethereum для разработки, который предоставляет множество функций, таких как автоматические сообщения об ошибках, форкинг сети и режимы майнинга.
Поэтому если вы используете Hardhat, вы уже по умолчанию используете Hardhat Network. Она добывает блок с каждой полученной транзакцией, по порядку и без задержек.
Plugins
Плагины — это расширения, которые могут быть загружены в программу для улучшения ее функциональности.
В разработке Hardhat используется 30+ плагинов, поэтому они считаются основой Hardhat.
Ниже перечислили некоторые из популярных плагинов с указанием их функциональных возможностей:
- nomiclabs/hardhat-ethers: Позволяет разработчикам внедрять ethers.js в Hardhat Runtime Environment.
- nomiclabs/hardhat-waffle: Позволяет добавить провайдер, совместимый с Waffle, Hardhat Runtime Environment.
- nomiclabs/hardhat-etherscan: Автоматически проверяет контракты на Etherscan.
- hardhat-gas-reporter: Gas reporter помогает подтвердить использование газа на единичный тест и среднее использование газа на метод.
Тестирование
Hardhat обеспечивает очень простую процедуру тестирования, предоставляя разработчикам возможность писать автоматизированные тесты при создании смарт-контрактов.
Hardhat предоставляет отличную документацию для понимания методов тестирования с помощью Hardhat.
Truffle Tools
Как и Hardhat, Truffle — это среда разработки, относящаяся к блокчейну Эфируима.
Truffle очень популярный фреймворк и за ним стоит большое комьюнити разработчиков.
Для разработки dapps девсы используют Truffle Suite.
Truffle Suite — это экосистема Web 3 разработки, состоящая из 3х разных инструментов: Truffle, Ganache, и Drizzle:
- Truffle — это среда разработки, использующая EVM для разработки смарт-контрактов.
- Ganache — это инструмент, используемый для создания собственного локального блокчейна Ethereum, который можно использовать для развертывания и тестирования смарт-контрактов.
Кроме того, Ganache позволяет разработчикам избежать ненужных платежей за газ в процессе разработки. - Drizzle — это набор библиотек для фронтенда, основой которого является магазин Redux.Благодаря этому разработка фронтенда становится намного проще.
Truffle предлагает несколько различных функций, таких как:
Управление смарт-контрактами Truffle помогает управлять артефактами смарт-контрактов, чтобы вы могли сосредоточиться на других частях процесса разработки и тратить меньше времени на организацию файлов.
Миграция и развертывание с помощью скриптов
С помощью Truffle вы можете писать скрипты развертывания, которые позволяют учитывать тот факт, что ваши Dapps будут меняться со временем.
Truffle предоставляет 2 различные консоли, чтобы выбрать лучший инструмент для ваших нужд.
(A) Truffle Console: Базовая интерактивная консоль, подключаемая к любому клиенту Ethereum. Чтобы запустить консоль, используйте команду truffle console
. Когда вы загрузите консоль, вы сразу же увидите следующее приглашение:
Консоль Truffle позволит вам подключиться к контрактам, развернутым на клиенте EVM, и взаимодействовать с ними способом, аналогичным тому, который вы используете с помощью javascript.
(B) Truffle Develop: Интерактивная консоль, которая также запускает блокчейн разработки. Она служит той же цели, что и hardhat node
.
Вы можете легко запустить Truffle Develop, используя командуtruffle develop.
Truffle Dashboard
Недавно компания Truffle представила Truffle Dashboard, обеспечивающую более простой способ использования существующего кошелька Metamask для развертывания и транзакций. Вы также можете использовать Truffle Dashboard внутри любых проектов Hardhat. Truffle предоставил отличную документацию, чтобы следовать за ним и использовать Truffle Dashboard в своем проекте.
Какой инструмент наиболее полезный?
Исправление багов Solidity трудно отлаживать. Вы просто получаете сообщение об ошибке, когда что-то ломается, и чаще всего найти, что именно пошло не так, очень трудно.
К счастью, Hardhat ввел в Solidity так называемую функцию console.log.
Таким образом, вы можете просто импортировать плагин консоли и использовать его внутри своих функций.
Добавьтеconsole.log
внутрь функции
Лог будет отображаться при запуске тестов:
EVM, созданный hardhat, специально поддерживает эту функцию и, следовательно, является родным для Hardhat Node. Эта возможность сама по себе является большим плюсом для Hardhat.
С другой стороны, Truffle совершенствует свой дебаг-инструмент и имеет некоторые плагины для него, но Hardhat считается более простым и мощным инструментом, используемым для исправления багов.
Библиотеки (Ethersjs and Web3)
Hardhat использует ethersjs по умолчанию, но может быть легко апнут для использования Web3. В то время как Truffle использует Web3 в качестве плагина по умолчанию для разработки.
Вы также можете использовать Etherjs в Truffle, но это считается более сложным и трудно реализуемым.
Хотя ethers-js и web3-js похожи, большинство разработчиков используют ethers-js по умолчанию.
Local Ethereum Network Node
Hardhat comes inbuilt with Hardhat Node. However, it does not have a GUI for developers to see account info in real-time.
Truffle, on the other hand, uses Ganache which has to be set up separately. However, it comes with both a CLI and a GUI version allowing flexibility for the developer.
If you prefer the GUI you should choose Ganache.
Развертывание
Для развертывания контракта Hardhat использует базовые скрипты Js, поэтому с ним легче начать работу.
В то время как Truffle использует migration-based процедуру развертывания, которые сами по себе являются js-файлами, но имеют последовательный порядок выполнения, что немного сложнее для новичка, но может быть полезно в долгосрочной перспективе, учитывая, что ваши потребности в развертывании могут измениться в будущем.
Но за простоту начала работы с развертыванием hardhat определенно берет приз.
Тестирование
Для выполнения различных тестов и Truffle, и Hardhat используют библиотеку Chai и Mocha в качестве фреймворка для тестирования, но hardhat также включает waffle. Они оба сильны, когда дело доходит до тестирования.
Статистика
До появления Hardhat самым популярным фреймворком для тестирования смарт-контрактов был Web3.
Сейчас можно увидеть, что тенденция меняется со временем, и Hardhat приобрел большую популярность по сравнению с Truffle.
Согласно статистике NPMJS, Truffle имеет почти 30 тыс. еженедельных загрузок. В то время как у Hardhat около 86 тыс. еженедельных загрузок, что вдвое больше, чем у Truffle.
Помощь комьюнити
Сообщество Truffle на Github довольно активно и полезно, в то время как комьюнити Hardhat взаимодействует на сервере Discord. Следует отметить, что Truffle поддерживается компанией Consensys, поэтому вы можете рассчитывать на "службу поддержки". Hardhat также разрабатывается и управляется организацией Nomic Foundation и имеет удивительную и не менее хорошую систему поддержки через свой сервер Discord.
Заключение
Очень трудно сказать, что лучше. Выбор между Truffle и Hardhat сводится к собственным предпочтениям и юзкейсам, поскольку оба они являются мощными инструментами.
Если вы совсем новичок в обоих фреймворках, то вам определенно стоит изучить оба и решить, что вам больше подходит.
Тем не менее, мы надеемся, что эта статья дала вам представление о различиях между ними и помогла определиться с выбором.
Не забудьте подписаться на наш канал для разработчиков и хакатонщиков — Definition. Если вы еще не сделали этого:)