Чтение онлайн

на главную - закладки

Жанры

Ethereum: работа с сетью, смарт-контракты и распределенные приложения
Шрифт:

Теперь перейдем к папке build. В папке build располагаются файлы с расширением json – это откомпилированные в формат json смарт-контракты. Их компиляция была рассмотрена в предыдущих уроках. Они содержат бинарный код смарт-контракта, который понимает сеть Ethereum, а также входные и выходные параметры, необходимые для запуска смарт-контракта (рис. 2.1.5).

Рис. 2.1.5

Папка migrations содержит js-файлы (файлы в формате JavaScript). Они предназначены для публикации смарт-контрактов проекта в сеть Ethereum. Все файлы в папке migrations

должны начинаться с цифры. Первым файлом должен быть файл 1_initial_migrations.js (рис. 2.1.6).

Рис. 2.1.6

Этот файл публикует в сети файл Migration.json, который инициирует публикацию других смарт-контрактов проекта. Второй js-файл предназначен для публикации остальных двух смарт-контрактов (рис. 2.1.7).

Рис. 2.1.7.

Замечание. В представленном на рис. 2.1.6 файле осуществляется публикация сразу двух смарт-контрактов. Однако для упрощения понимания проекта рекомендуется создавать отдельный публикационный js-файл для каждого смарт-контракта. Поэтому так мы будем поступать в наших проектах позже.

Наконец, рассмотрим папку test. В папке test располагаются смарт-контракты для отладки нашего проекта. Важным отличием смарт-контрактов от обычных программ является тот факт, что их невозможно изменить после публикации в сети блокчейн. Поэтому столь важное внимание уделяется отладке смарт-контрактов. В рассматриваемой папке мы видим два файла – sol- и js-файлы. Смарт-контракт с расширением sol содержит код на языке Solidity, предназначенный для тестирования проекта (рис. 2.1.8).

< image l:href="#"/>

Рис. 2.1.8

Файл с расширением js – это файл, который содержит код на языке JavaScript. Он предназначен для выполнения тестового смарт-контракта фреймворком Truffle (рис. 2.1.9).

Рис. 2.1.9

В заключение урока кроме четырех рассмотренных выше папок в проекте можно заметить еще два файла – truffle-config.js и LICENSE. Файл truffle-config.js мы рассматривали в предыдущих уроках. Он предназначен для подключения проекта к серверу сети Ethereum или к эмулятору сети, например Ganache. Файл LICENSE – это обычный текстовый файл с лицензионным соглашением фреймворка Truffle (рис. 2.1.10).

Рис. 2.1.10

Замечание. В проекте также можно заметить файлы с именем .placeholder. Это служебные файлы для системы управления версиями Git. Эти файлы можно удалить.

На этом мы заканчиваем рассмотрение файловой структуры проекта Solidity и переходим к созданию нашего проекта для создания простых смарт-контрактов. Проект MetaCoin можно закрыть, выбрав в оконном меню VS Code пункт File / Close Folder.

Урок 2. Создание нового проекта Solidity

Аннотация. В уроке рассматривается создание нового проекта на языке программирования Solidity с помощью фреймворка Truffle.

Создадим новый проект на языке программирования Solidity с помощью фреймворка Truffle. Для начала нам необходимо создать папку, где будет располагаться наш проект.

Советуем создать папку проекта в папке «Документы / VS Code». Давайте назовем наш проект SimpleContracts, поскольку он будет содержать простейшие смарт-контракты. Поэтому создайте одноименную папку (рис. 2.2.1).

Рис. 2.2.1

Откройте созданную папку SimpleContracts, как открывали папку MetaCoin в предыдущем уроке. Мы видим, что папка пуста (рис. 2.2.2).

Рис. 2.2.2

Теперь, используя фреймворк Truffle, создадим в этой папке файловую структуру нового проекта Solidity. Откройте терминал, выбрав в оконном меню пункт Terminal / New Terminal. Для создания нового проекта в терминале наберите команду «truffle init» и нажмите клавишу Enter (рис. 2.2.3).

Рис. 2.2.3

Терминал примет вид как на рис. 2.2.4.

Рис. 2.2.4

На панели EXPLORER появилась рассмотренная в предыдущем уроке файловая структура проекта (рис. 2.2.5).

Рис. 2.2.5

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

Папка test пуста. На данном этапе нам пока рано заниматься глубокой отладкой наших простых смарт-контрактов. Поэтому пока оставим эту папку пустой.

Мы видим, что в нашем проекте отсутствует папка с откомпилированными контрактами build. Давайте создадим эту папку. Для этого нам необходимо просто откомпилировать все смарт-контракты проекта. В нашем случае это смарт-контракт Migrations.sol. Для компиляции всех смарт-контрактов проекта необходимо в терминале выполнить команду «truffle compile» (рис. 2.2.6).

Рис. 2.2.6

Терминал примет вид как на рис. 2.2.7.

Рис. 2.2.7

После выполнения в терминале команды «truffle compile» на панели EXPLORER появится папка build с откомпилированным файлом Migrations.json (рис. 2.2.8).

Рис. 2.2.8

На этом мы заканчиваем урок, посвященный созданию проекта на языке программирования смарт-контрактов Solidity. В следующем уроке мы напишем наш первый смарт-контракт на языке Solidity.

Поделиться:
Популярные книги

Виктор Глухов агент Ада. Компиляция. Книги 1-15

Сухинин Владимир Александрович
Виктор Глухов агент Ада
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Виктор Глухов агент Ада. Компиляция. Книги 1-15

Идеальный мир для Лекаря 10

Сапфир Олег
10. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 10

Довлатов. Сонный лекарь 2

Голд Джон
2. Не вывожу
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Довлатов. Сонный лекарь 2

Цветы сливы в золотой вазе, или Цзинь, Пин, Мэй

Ланьлинский насмешник
Старинная литература:
древневосточная литература
7.00
рейтинг книги
Цветы сливы в золотой вазе, или Цзинь, Пин, Мэй

Санек 3

Седой Василий
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 3

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Двойня для босса. Стерильные чувства

Лесневская Вероника
Любовные романы:
современные любовные романы
6.90
рейтинг книги
Двойня для босса. Стерильные чувства

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Кодекс Крови. Книга ХIV

Борзых М.
14. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХIV

Хозяйка собственного поместья

Шнейдер Наталья
1. Хозяйка
Фантастика:
фэнтези
5.00
рейтинг книги
Хозяйка собственного поместья

Кротовский, может, хватит?

Парсиев Дмитрий
3. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
аниме
7.50
рейтинг книги
Кротовский, может, хватит?

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х