Алексей Бурков - Ethereum: работа с сетью, смарт-контракты и распределенные приложения
- Название:Ethereum: работа с сетью, смарт-контракты и распределенные приложения
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:2020
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алексей Бурков - Ethereum: работа с сетью, смарт-контракты и распределенные приложения краткое содержание
Ethereum: работа с сетью, смарт-контракты и распределенные приложения - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Замечание.Символ «{» показывает начало блока кода, а символ «}» в строке номер 7 показывает окончание блока кода, то есть начало и конец смарт-контракта HelloWorld. В языке Solidity блок кода группирует команды, и они рассматриваются как одна команда. В строках номер 4 и 6 данные символы обозначают начало и конец функции.

Рис. 2.3.3
Наш смарт-контракт содержит функцию sayHello. Она определяется командой «function sayHello() public pure returns (string memory)».
Команда function определяет функцию и имеет следующее строение:
• sayHello() – имя функции, наша функция не имеет входных параметров, поэтому область определения параметров пуста (). Позже мы рассмотрим функции с параметрами;
• public – это область видимости функции, означает, что мы можем использовать эту функцию в любом месте кода смарт-контракта;
• pure – определяет, что для выполнения нашего смарт-контракта не требуется эфир;
• returns (string memory) – показывает, что наша функция возвращает строку (HelloWorld – это string). Запись результата происходит в память, а не в блок, поэтому указываем параметр «memory».
Ну и наконец, рассмотрим содержимое нашей функции sayHello. Она состоит только из одной команды «return “Hello World!!!”;». Команда return выводит результат работы функции. В нашем случае это строка “Hello World!!!”. Строка заключается в кавычки. В языке Solidity любая команда заканчивается знаком «;» (рис. 2.3.3).
Замечание.Как мы можем видеть, язык программирования смарт-контрактов Solidity по синтаксису очень похож на языки программирования JavaScript и Java.
Теперь давайте откомпилируем наш смарт-контракт. Мы видим, что в коде нашего контракта отсутствуют подчеркнутые команды (рис. 2.3.3). Это говорит о том, что в коде отсутствуют ошибки и его можно компилировать. Для компиляции всего проекта в терминале выполните команду «truffle compile» (рис. 2.3.4).

Рис. 2.3.4
После компиляции проекта мы видим, что на панели EXPLORER в папке build появился откомпилированный смарт-контракт HelloWorld.json (рис. 2.3.5).

Рис. 2.3.5
На этом мы заканчиваем урок по содержимому нашего первого смарт-контракта и переходим к описанию его публикации в эмуляторе.
Урок 4. Публикация смарт-контракта HelloWorld в эмуляторе блокчейн-сети Ganache
Аннотация.В данном уроке мы рассмотрим публикацию простейшего смарт-контракта в эмуляторе блокчейн-сети Ganache.
В предыдущей неделе мы рассматривали публикацию смарт-контракта MetaCoin в эмуляторе блокчейн-сети Ganache. Однако смарт-контракт MetaCoin был тестовым контрактом, он был развернут по заданному в truffle шаблону и не требовал создания js-файлов для публикации (они уже были созданы).
В нашем новом проекте SimpleContracts смарт-контракта HelloWorld был сгенерирован по шаблону нового пустого контракта и при этом не создавались js-файлы для его публикации. По умолчанию в новом проекте присутствует js-файл 1_initial_migration.js, который публикует смарт-контракт Migrations.sol, развертывающий все остальные контракты проекта. Рассмотрим файл 1_initial_migration.js более подробно (рис. 2.4.1).

Рис. 2.4.1
Выбрав файл 1_initial_migration.js на панели EXPLORER, мы увидим его содержимое (рис. 2.4.1). В первой строке командой const Migrations = artifacts.require(“Migrations”); создается константа, привязанная к публикуемому смарт-контракту. Такие константы называются артефактами. В нашем случае мы создали артефакт Migrations (код голубого цвета), привязанный к смарт-контракту Migrations, указанный без расширения sol (код коричневого цвета). Далее создается функция, публикующая наш артефакт, команда module.exports = function(deployer) {. Как вы поняли из предыдущих уроков, функция закрывается символом }; в строке 5. Внутри функции расположена команда deployer.deploy(Migrations);. Данная команда публикует наш артефакт Migrations и привязанный к нему смарт-контракт Migrations.sol.
Создадим js-файл для публикации нашего смарт-контракта. Чтобы не набирать код js-файла, просто скопируем файл 1_initial_migration.js. Для этого щелкните по файлу 1_initial_migration.js правой кнопкой мыши и в появившемся меню выберите Copy (рис. 2.4.2).

Рис. 2.4.2
Затем щелкните по папке migrations правой кнопкой мыши и в появившемся меню выберите Paste (рис. 2.4.3).

Рис. 2.4.3
В папке migrations появится файл 1_initial_migration copy.js (рис. 2.4.4).

Рис. 2.4.4
Переименуем новый файл в js-файл с именем 2_HelloWorld_migration.js. Напоминаем, что js-файлы для публикации смарт-контрактов должны начинаться с цифры. Для переименования файла щелкните правой кнопкой мыши и в появившемся меню выберите Rename (рис. 2.4.5).

Рис. 2.4.5
Введите имя файла 2_HelloWorld_migration и нажмите клавишу Enter. Папка migrations примет вид как на рис. 2.4.6.

Рис. 2.4.6
Откройте js-файл, щелкнув по нему. Внутри файл будет аналогом скопированного js-файла 1_initial_migration.js. Замените все Migrations на HelloWorld (код голубого и коричневого цвета). Содержимое файла 2_HelloWorld_migration.js станет как на рис. 2.4.7.

Рис. 2.4.7
Сохраните файл 2_HelloWorld_migration.js и запустите эмулятор блокчейн-сети Ganache. При запуске Ganache выберите вариант QUICKSTART.
Конец ознакомительного фрагмента.
Текст предоставлен ООО «ЛитРес».
Прочитайте эту книгу целиком, на ЛитРес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.
Интервал:
Закладка: