Что такое Truffle


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

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

Что такое Truffle?



Truffle - это передовая технология, которая была выпущена по лицензии MIT. В репозитории сообщества Github говорится: "Truffle-это среда разработки, платформа тестирования и конвейер активов для Ethereum, призванная облегчить жизнь разработчика Ethereum". Таким образом, Truffle - это среда разработки, которая позволяет легко переносить смарт-контракты на блокчейн Ethereum. Мы скоро обсудим, что это значит, но давайте быстро взглянем на простую настройку трюфеля. Сначала откройте командную строку. Во-вторых, введите следующие четыре команды.

mkdir truffleFolder
cd truffleFolder
npm install -g truffle
truffle init
Первая команда создает каталог с именем truffleFolder. Вторая команда изменяет рабочий каталог на нашу новую папку. Наконец, последние две команды устанавливают и инициализируют Truffle. Теперь все готово. Если мы заглянем в нашу папку, мы увидим три другие папки, то есть contracts, migrations и test. Прежде чем перейти к техническим деталям этих папок, возможно, стоит обсудить смарт-контракты и Truffle в целом.

Смарт-контракты

Смарт-контракт был идеей, которая приобрела популярность благодаря оригинальным документам, описывающим узел Ethereum. Смарт-контракты обычно пишутся на языке программирования, называемом Solidity. Solidity - это объектно-ориентированный язык. В Solidity у вас могут быть свои классы, объекты, функции и так далее. Давайте взглянем на пример, взятый из репозитория Solidity GitHub:

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

contract HelloWorld {
    function helloWorld() external pure returns (string memory) {
        return "Hello, World!";
    }
}
Мы видим здесь, что смарт-контракт Helloworld содержит в себе чистую функцию, возвращающую “Привет, Мир!”. Поэтому в данном случае смарт-контракт - это просто кусок кода, написанный в Solidity. Этот код можно перенести в блокчейн Ethereum с помощью Solidity. Давайте теперь вернемся к нашим баранам и посмотрим, что эти четыре команды создали для нас в нашей папке.

Папка проекта

В папке проекта мы найдем три папки и файл конфигурации под названием truffle-config.js. Папки - это contracts, migrations и test.. Эти три папки являются ключевыми для создания приложений dApps. Truffle настраивает все это всего несколькими командами. Эти три папки помогают автоматизировать многие процессы, связанные с созданием приложений dApps, такие как миграция, компиляция и т.д. Давайте рассмотрим эти три папки немного подробнеe.

Контракты

Предполагается, что папка contracts должна содержать все смарт-контракты. Мы видим, что имена файлов заканчиваются расширением .sol, что означает, что они являются смарт-контрактами Solidity. Как обсуждалось ранее, Solidity - это название языка программирования, который помогает в создании смарт-контрактов.

Миграции

Миграции могут изменить состояние DApp. Отсюда и Migrations.sol помогает отслеживать эти изменения. Миграции помогают переносить смарт-контракты на блокчейн. Миграции могут быть выполнены с помощью команды Truffle migrate. Эта команда также может переносить смарт-контракты в псевдо-Эфир, такой как блокчейн под названием Ganache. Мы вернемся к тому, что такое Ганаш, немного ниже в этой статье.

Тесты

После компиляции и переноса наших смарт-контрактов мы можем их протестировать. Тестовая папка содержит различные файлы, подлежащие тестированию. Запустить тест так же просто, как ввести команду Truffle test. В настоящее время Truffle выполняет тесты только со следующими типами файлов - js,. ts,. es,. es6,. jsx и .sol.

Конфигурация

Файл truffle-config.js это конфигурация проекта по умолчанию. Первые строки файла гласят: “Используйте этот файл для настройки вашего проекта Truffle. Он заполнен некоторыми общими настройками для различных сетей и функций, таких как миграция, компиляция и тестирование. Раскомментируйте те, которые вам нужны, или измените их в соответствии с вашим проектом по мере необходимости”.

Truffle консоль

Уникальной и интересной особенностью Truffle является его инструмент командной строки. Чтобы запустить инструмент командной строки, просто введите Truffle console. После чего вы должны увидеть Truffle(development). Таким образом, мы можем запускать различные важные команды, такие как компиляция, миграция, отладка и т.д. Консоль также является быстрым и простым способом взаимодействия с блокчейном.

Основные характеристики

Есть несколько ключевых функций, которые Truffle стремится оптимизировать:

  • Управление жизненным циклом, это включает в себя такие процессы, как связывание библиотек для управления большими приложениями, созданными для блокчейна Ethereum.
  • Автоматизированное тестирование контрактов позволяет разработчикам DApp писать код как в JavaScrip, так и в Solidity для тестирования
  • Развертывание по сценарию, эти автоматизированные скрипты помогают переносить смарт - контракты в далекое и непредсказуемое будущее.
  • Простая миграция, ранее мы видели, как легко было перейти на блокчейн с помощью команды Truffle migrate.
  • Управление сетью, Truffle управляет сетью за вас.
  • Консоль позволяет разработчикам сосредоточиться на работе в пространстве, в котором им наиболее комфортно, т. е. в командной строке.
  • Запуск сценариев, это позволяет разработчикам загружать свои смарт-контракты, чтобы они могли запускать сценарии с поддержкой сети.
Другие технологии

Web3.js

Web3.js это API с большой библиотекой JavaScript, которая предоставляет разработчикам доступ к их смарт-контрактам. Установка Web3.js это так же просто, как ввести npm install web3 в командной строке. После этого просто включите Web3.js укажите атрибут в исходном коде вашего скрипта в интерфейсе, и вы готовы к работе.

В зависимости от сложности вашего приложения DApp разработчик может создавать сложные бэкэнды с помощью инженерных программ, написанных на Java, или разработчик может даже машинно изучать свои данные DApp с помощью программ, связанных с ИИ, закодированных на Python. Все это подключается к вашему DApp в блокчейне через протокол JSON RPC. Вы можете легко взаимодействовать со всем прямо из командной строки, просто создав экземпляр Web3.

Ganache

Ганаш - это псевдо-Эфириум, подобный блокчейну. Разработчики Ganache называют это персональным блокчейном. Это, вероятно, лучшее описание Ганаша. Ganache позволяет разработчикам приблизиться и лично познакомиться с блокчейном. Обычно взаимодействие с реальным блокчейном Ethereum связано с деньгами.

Итак, Ganache помогает протестировать и опробовать ваш код, прежде чем вы потратите какие-либо деньги. Ganache также поставляется с гладким, легко читаемым графическим пользовательским интерфейсом (GUI). Разработчики, покидающие свою среду трюфелей, могут немного изменить обстановку, легко перемещаясь по адресам блокчейна, комиссиям за транзакции и т. д.

MetaMask

MetaMask - это легкий крипто-кошелек. MetaMask может помочь разработчикам в тестировании и анализе транзакций DApp. MetaMask легко подключается к локальному блокчейну, запущенному на компьютере разработчика. Внутри консоли Truffle просто скопируйте порт локального хоста и вставьте его в пользовательский RPC, доступный в расширении браузера. Затем учетные записи можно легко импортировать из Truffle в MetaMask.

MetaMask стал мощным и популярным вкладом в экосистему Ethereum. Разработчики могут легко переключаться между блокчейнами. Когда пользователь посещает DApp, MetaMask действует как посредник блокчейна. Графический интерфейс MetaMask также очень удобен для пользователя. Он легко подключает пользователя к блокчейну. MetaMask предлагает пользователю утвердить транзакцию. Эта транзакция иногда является просто платой, которую пользователь может заплатить в какой-либо криптовалюте за взаимодействие с блокчейном.

Будущее и заключение

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

Наша конфигурация и консоль очень важны для выбора версий и взаимодействия с блокчейном. Truffle обладает несколькими ключевыми функциями, которые помогают управлять нашим кодом и автоматизировать многочисленные процессы. Установка других технологий и сохранение наших библиотек помогает создавать мощные приложения DApp.

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

Централизация вычислительных мощностей начинает беспокоить разработчиков. Инструменты и среды разработки, такие как Truffle, могут нарушить всю экосистему создания приложений. Мы являемся свидетелями медленного, но постепенного перехода к Web 3.0 и децентрализации.

Медленный рост в сторону dApps, скорее всего, объясняется сложностью и масштабируемостью управления и разработки на блокчейне. Но новые инструменты и среды для разработчиков, такие как Truffle, продолжают появляться. Будущее разработки DApp направлено на быстрое и простое упрощение создания децентрализованного контента.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.



тегизаметки, интернет, Ethereum, блокчейн




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




Округление десятичных значений в C#
Программа "Береги глаза"
AI Factory's Chess, уровень 11, 23 мая 2016 - С. Визгорев