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

Тут можно читать онлайн Александр Фролов - Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, год 2019. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    2019
  • ISBN:
    нет данных
  • Рейтинг:
    5/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Александр Фролов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Параметр 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

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

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

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

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

$ geth –etherbase "0x4f744742ac711fd111c7a983176db1d48d29f413" –datadir node1 –nodiscover –mine –minerthreads 1 –maxpeers 0 –verbosity 3 –networkid 98760 –rpc –rpcapi="db,eth,net,web3,personal,web3" console

В качестве параметра –etherbase нужно ввести адрес узла, полученный при первоначальном создании аккаунта.

На экране появится множество сообщений о ходе инициализации. В ходе этого процесса будет запущена генерация файла DAG. Вам нужно будет дождаться завершения процесса генерации:

INFO [02-13|08:51:16.647] Maximum peer count ETH=0 LES=0 total=0

INFO [02-13|08:51:16.649] Starting peer-to-peer node instance=Geth/v1.8.22-stable-7fa3509e/linux-amd64/go1.10.4

INFO [02-13|08:51:16.649] Allocated cache and file handles database=/home/book/node1/geth/chaindata cache=512 handles=524288

INFO [02-13|08:51:16.662] Initialised chain configuration config="{ChainID: 1999 Homestead: 0 DAO: DAOSupport: false EIP150: EIP155: 0 EIP158: 0 Byzantium: Constantinople: ConstantinopleFix: Engine: unknown}"

INFO [02-13|08:51:16.663] Disk storage enabled for ethash caches dir=/home/book/node1/geth/ethash count=3

INFO [02-13|08:51:16.663] Disk storage enabled for ethash DAGs dir=/home/book/.ethash count=2

INFO [02-13|08:51:16.663] Initialising Ethereum protocol versions="[63 62]" network=98760

INFO [02-13|08:51:16.724] Loaded most recent local header number=0 hash=a5e5bc…3f490e td=10 age=49y10mo16h

INFO [02-13|08:51:16.724] Loaded most recent local full block number=0 hash=a5e5bc…3f490e td=10 age=49y10mo16h

INFO [02-13|08:51:16.724] Loaded most recent local fast block number=0 hash=a5e5bc…3f490e td=10 age=49y10mo16h

INFO [02-13|08:51:16.724] Loaded local transaction journal transactions=0 dropped=0

INFO [02-13|08:51:16.725] Regenerated local transaction journal transactions=0 accounts=0

INFO [02-13|08:51:16.732] New local node record seq=3 id=eae4aa1f2059eed4 ip=127.0.0.1 udp=0 tcp=30303

INFO [02-13|08:51:16.732] Started P2P networking self="enode://5ac26687728e3e3f4575e5e8feab33748bbc467951e1841b2063cc201dcb6ed4e9b9e26ca322fc935cc5b6b042ebbb6126f5bd7d6cf6903c1e19600cf7f6c8b5@127.0.0.1:30303?discport=0"

INFO [02-13|08:51:16.732] IPC endpoint opened url=/home/book/node1/geth.ipc

INFO [02-13|08:51:16.733] HTTP endpoint opened url=http://127.0.0.1:8545 cors= vhosts=localhost

INFO [02-13|08:51:16.733] Transaction pool price threshold updated price=1000000000

INFO [02-13|08:51:16.733] Updated mining threads threads=1

INFO [02-13|08:51:16.733] Transaction pool price threshold updated price=1000000000

INFO [02-13|08:51:16.734] Commit new mining work number=1 sealhash=5c4116…c8c1bf uncles=0 txs=0 gas=0 fees=0 elapsed=562.141µs

INFO [02-13|08:51:16.779] Mapped network port proto=tcp extport=30303 intport=30303 interface=NAT-PMP(192.168.0.1)

Welcome to the Geth JavaScript console!

instance: Geth/v1.8.22-stable-7fa3509e/linux-amd64/go1.10.4

coinbase: 0x4f744742ac711fd111c7a983176db1d48d29f413

at block: 0 (Wed, 31 Dec 1969 16:00:00 PST)

datadir: /home/book/node1

modules: admin:1.0 debug:1.0 eth:1.0 ethash:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

> INFO [02-13|08:51:18.459] Generating DAG in progress epoch=0 percentage=0 elapsed=983.779ms

INFO [02-13|08:51:19.420] Generating DAG in progress epoch=0 percentage=1 elapsed=1.944s

INFO [02-13|08:51:20.395] Generating DAG in progress epoch=0 percentage=2 elapsed=2.919s

INFO [02-13|08:51:21.440] Generating DAG in progress epoch=0 percentage=3 elapsed=3.963s

INFO [02-13|08:55:56.193] Successfully sealed new block number=46 sealhash=fccbc1…5cc27f hash=776967…3700c9 elapsed=7.306s

INFO [02-13|08:55:56.193] картинка 4 block reached canonical chain number=39 hash=9c6ba7…c95452

INFO [02-13|08:55:56.193] картинка 5 mined potential block number=46 hash=776967…3700c9

INFO [02-13|08:55:56.193] Commit new mining work number=47 sealhash=41558f…3ef931 uncles=0 txs=0 gas=0 fees=0 elapsed=97.707µs

> [1;5FINFO [02-13|08:56:01.030] Successfully sealed new block number=47 sealhash=41558f…3ef931 hash=f67a9b…773bfd elapsed=4.837s

INFO [02-13|08:56:01.030] картинка 6 block reached canonical chain number=40 hash=3a6600…bde7e0

INFO [02-13|08:56:01.030] картинка 7 mined potential block number=47 hash=f67a9b…773bfd

INFO [02-13|08:56:01.030] Commit new mining work number=48 sealhash=d4ab02…7151c7 uncles=0 txs=0 gas=0 fees=0 elapsed=97.374µs

В зависимости от производительности вашего виртуального или физического сервера генерация файла DAG может занять несколько минут или дольше.

Файл DAG содержит направленный ациклический граф (Directed Acyclic Graph). Он используется для добавления блоков в Ethereum с помощью алгоритма с названием Ethash. Его размер может составлять более 1 Гбайта. Размер этого блока увеличивается по мере роста сети Ethereum. Текущий размер блока можно узнать, например, на сайте https://investoon.com/tools/dag_size. На момент создания этого учебного курса файл DAG для основной сети Ethereum был размером 2.95 Гбайт.

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

Интервал:

Закладка:

Сделать


Александр Фролов читать все книги автора по порядку

Александр Фролов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Создание смарт-контрактов Solidity для блокчейна Ethereum. Практическое руководство, автор: Александр Фролов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x