Александр Фролов - Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство

Здесь есть возможность читать онлайн «Александр Фролов - Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 2019, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Эта книга поможет быстро приступить к созданию смарт-контактов Solidity и распределенных приложений DApp для блокчейна Ethereum. Она состоит из 12 уроков с практическими заданиями. Выполнив их, читатель сможет создавать собственные локальные узлы Ethereum, публиковать смарт-контракты и вызывать их методы, обмениваться данными между реальным миром и смарт-контрактами с помощью оракулов, работать с сетью Rinkeby. Книга адресована всем, кто интересуется передовыми технологиями в области блокчейнов и хочет быстро получить знания, позволяющие заниматься интересной и перспективной работой.

Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Хорошее описание первичного блока сети Ethereum можно найти, например, здесь: https://arvanaghi.com/blog/explaining-the-genesis-block-in-ethereum/.

Блок configфайла genesis.json содержит переменные конфигурации сети Ethereum.

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

Если речь идет о главной сети Ethereum, то ее идентификатор равен 1. Идентификатор тестовой сети Rinkeby равен 4. При создании нашей приватной сети мы можем указать любое значение, отличное от известных. Мы выбрали значение 1999.

Значение 0 в поле homesteadBlockуказывает на то, что мы будем использовать релиз сети Ethereum под названием Homestead. Homestead представляет собой второй релиз сети Ethereum (первый релиз назывался Frontier). Нулевое значение этого параметра используется и в основной сети Ethereum.

Немного о параметрах с префиксом EIP. При реализации Homestead был обновлен протокол, причем без обратной совместимости с предыдущим релизом Ethereum. Соответствующие изменения отражены в документах «Предложения по улучшению Ethereum» (Ethereum Improvement Proposals, EIPs), опубликованных на сайте https://eips.ethereum.org/.

Реализация изменений может потребовать выполнения так называемой процедуры хардфорка (hard-forking), или обновления ПО узлов. В результате этой процедуры может меняться структура блока, появляется возможность использовать ранее недоступные блоки и вносить различные изменения в протокол.

Так как мы не будем делать хардфорк, то установим значения соответствующих параметров eip155Blockи eip158Blockравными нулю.

Параметр difficultyважен для нас в практическом смысле. Этот параметр имеет прямое влияние на время генерации новых блоков блокчейна. Для нашего «учебного» блокчейна мы установим очень маленькое значение этого параметра, равное 10, чтобы скорость добавления новых блоков была приемлемой даже на виртуальных серверах небольшой производительности.

С помощью параметра gasLimitмы задаем в рамках блокчейна предел расхода так называемого газа (Gas). Газ Ethereum представляет собой расходный ресурс, который тратится на выполнение таких операций, как отправка транзакций, публикация и выполнение контрактов и т.п. Далее мы расскажем об этом подробнее. В нашей приватной тестовой сети мы устанавливаем достаточно большое значение, чтобы не возникали ограничения при запуске тестовых программ.

Параметр allocпозволяет при инициализации блокчейна создать кошельки и заранее наполнить их тестовым эфиром. В первых примерах мы не будем использовать эту возможность.

Создаем каталог для работы

Создайте в домашнем каталоге подкаталог node1:

$ mkdir node1

В этом каталоге будут располагаться данные блокчейна.

Создаем аккаунт

Теперь перейдем к созданию нашего приватного блокчейна. Прежде всего войдите в домашний каталог пользователя book и создайте новый аккаунт:

$ geth –datadir node1 account new

При создании аккаунта будет запрошен пароль, который нужно сохранить в безопасном месте:

INFO [02-13|08:42:28.798] Maximum peer count ETH=25 LES=0 total=25

Your new account is locked with a password. Please give a password. Do not forget this password.

Passphrase:

Repeat passphrase:

Address: { 4f744742ac711fd111c7a983176db1d48d29f413 }

Команда account newвыведет на консоль в фигурных скобках так называемый адрес узла. В нашем случае это адрес 4f744742ac711fd111c7a983176db1d48d29f413. Мы будем указывать его в различных командах.

Параметр datadirкоманды geth указывает путь к рабочему каталогу. Мы используем каталог /home/book/node1.

Запускаем инициализацию узла

После создания аккаунта нам нужно выполнить инициализацию узла, выполняем ее из домашнего каталога пользователя book:

$ geth –datadir node1 init genesis.json

Здесь мы с помощью параметра datadirдолжны указать путь к рабочему каталогу, а в параметре init– путь к файлу первичного блока genesis.json.

Команда выполнит инициализацию и выведет на консоль результаты своей работы:

INFO [02-13|08:43:53.934] Maximum peer count ETH=25 LES=0 total=25

INFO [02-13|08:43:53.936] Allocated cache and file handles database=/home/book/node1/geth/chaindata cache=16 handles=16

INFO [02-13|08:43:53.950] Writing custom genesis block

INFO [02-13|08:43:53.950] Persisted trie from memory database nodes=0 size=0.00B time=28.058µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B

INFO [02-13|08:43:53.951] Successfully wrote genesis state database=chaindata hash=a5e5bc…3f490e

INFO [02-13|08:43:53.951] Allocated cache and file handles database=/home/book/node1/geth/lightchaindata cache=16 handles=16

INFO [02-13|08:43:53.955] Writing custom genesis block

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство»

Представляем Вашему вниманию похожие книги на «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство»

Обсуждение, отзывы о книге «Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x