Здравствуйте, сколько стоит курс Работа с Ethereum? |
Обзор всех аспектов среды Solidity. Среда разработки Ethereum, Web3 и Truffle
Задание №2 - Обзор всех аспектов среды Solidity
В этом задании вам предстоит ознакомиться со средой разработки Solidity и браузером для работы с ней.
Откройте браузер Solidity: https://ethereum.github.io/browser-solidity/
Изучите раздел "Solidity in Depth" из документации по среде Solidity: https://solidity.readthedocs.io/en/develop/solidity-in-depth.html
Проработайте примеры из учебного курса, освойте использование переменных различных типов: численных (int/uint), символьных (byte/string), булевых, а также массивов, ассоциаций и структур.
Ответьте на следующие вопросы:
- Что произойдет, если присвоить переменной типа uint значение в -1?
- Что произойдет, если присвоить переменной типа uint8 другую переменную типа uint256 со значением 5?
- Что происходит, когда значение одной строковой переменной присваивается другой с отличной от первой длиной? Отличается ли количество затрачиваемого на обсчет этой процедуры газа? Почему?
- Какую функцию несет символ подчеркивания ("_") в модификаторах функций?
- Сколько веев в одном финни?
Введение в работу с Truffle и инструкции по установке
Среда разработки Truffle включает в себя тестовую среду и является ценным инструментом для платформы Ethereum. Функционал Truffle напоминает возможности Ethereum Studio, отличакясь только тем, что ее можно запускать локально. Truffle представляет собой просто программный пакет для узлов сети Ethereum, поэтому работать с Truffle можно, не отказываясь от Ethereum Studio, установив среду на виртуальную машину.
Для полноценной работы с Truffle вам потребуется клиент Ethereum, обеспечивающий подключение к блокчейну - либо реальному, либо тестовому. При локальной разработке можно пользоваться EthereumJS TestRPC. А при работе в Ethereum Studio пригодится режим песочницы. Чтобы подключиться к реальному блокчейну, целесообразно использовать Geth или другой клиент сети Ethereum. Создать проект в среде Truffle легко: необходимо всего лишь перейти в каталог с проектами и набрать команду truffle init. По умолчанию Truffle содержит проект под названием MetaCoin. Он содержит несколько контрактов, тестов, а также эмуляцию сети.
Компиляция контрактов в Truffle проходит легко. Среда сама позаботится о подключении библиотек и импортированных данных. Все скомпилированные контракты размещаются в папке ./build/contracts.
В среде Truffle можно работать с миграциями. Миграции - это разновидность файлов JavaScript, позволяющие размещать контракты в сети Ethereum; в них указывается порядок, в котором контракты должны обсчитываться сетью. Кроме того, миграции обеспечивают подключение библиотек. Сразу после создания файлов миграции можно ввести команду truffle migrate, и начнется размещение контрактов в блокчейне.
В состав среды Truffle также входит система сборки кода, облегчающая начало работы. Для сборки приложения необходимо набрать команду truffle build.
Тестирование контрактов в среде Truffle производится с помощью системы Mocha ("Мокка"). Для запуска теста нужно всего лишь набрать команду truffle test.
Давайте разберемся, как установить Truffle. Поскольку это пакет для узла сети, установку можно запустить с помощью программы-менеджера подобных пакетов. Для установки Truffle глобальным образом наберите команду npm install -g truffle. Выполним эту операцию в Ethereum Studio, после прошлой лекции мы остановились на этом этапе. Вводим команду и ждем окончания установки.
Создадим новый каталог и начнем первый проект в среде Truffle. Он сохраняется в папке my-truffle-project.
В корневом каталоге проекта Truffle находится файл truffle.js. Для того, чтобы можно было работать в режиме песочницы, внесем в него некоторые изменения, о них расскажем подробнее позднее.
В каталоге App размещено наше приложение, а в каталоге Contracts - используемые контракты. В каталоге Migrations расположены файлы JavaScript для размещения приложения в блокчейне, а в каталоге Test - тесты.
Ранее мы отмечали, что Truffle по умолчанию содержит проект-образец и контракт-образец под названием MetaCoin.
Видно, как импортируются различные файлы и библиотеки для среды Solidity, а также их взаимодействие при размещении приложения в блокчейне.