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

Книгу можно купить на ЛитРес.
Всего за 349 руб. Купить полную версию
Шрифт
Фон

$ sh attach_node.sh

Welcome to the Geth JavaScript console!

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

coinbase: 0x3cd46aab0631305437842cf639218e41ce946baa

at block: 379 (Wed, 13 Feb 2019 09:12:48 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

>

Введите в этом приглашении команду web3.eth.accounts:

> web3.eth.accounts

["0x4f744742ac711fd111c7a983176db1d48d29f413"]

Вы увидите идентификатор (адрес) аккаунта, который мы создали ранее, указав для него пароль. У вас этот идентификатор будет другой.

Попробуйте также ввести команду web3.version. Эта команда позволяет посмотреть версию фреймворка Web3, с помощью которого мы будем работать с контрактами, версию geth, а также номер сети. Мы задали номер нашей приветной сети, равный 98760.

Для стабильного релиза Geth версии 1.8.22 на консоль будет выведено сообщение:

> web3.version

{

api: "0.20.1",

ethereum: "0x3f",

network: "98760",

node: "Geth/v1.8.22-stable-7fa3509e/linux-amd64/go1.10.4",

whisper: undefined,

getEthereum: function(callback),

getNetwork: function(callback),

getNode: function(callback),

getWhisper: function(callback)

}

Использование нестабильной версии Geth будет отмечено в поле node:

> web3.version

{

api: "0.20.1",

ethereum: "0x3f",

network: "98760",

node: "Geth/v1.8.11-unstable/linux-amd64/go1.9.6",

whisper: undefined,

getEthereum: function(callback),

getNetwork: function(callback),

getNode: function(callback),

getWhisper: function(callback)

}

Управление майнингом и проверка баланса

> web3.fromWei( eth.getBalance(eth.coinbase) )

0

Позже мы опишем экономику Ethereum и эти команды детальнее.

Сразу после инициализации сети баланс нашего аккаунта равен нулю. Однако по мере того, как будут «добыты» новые блоки, баланс будет расти:

> web3.fromWei( eth.getBalance(eth.coinbase)

)

15

В первой консоли, где мы запустили узел, добавление каждого блока будет отмечено такими сообщениями:

INFO [02-13|09:37:10.577] block reached canonical chain number=45 hash=924ce1d8b5a2

INFO [02-13|09:37:10.577] mined potential block number=52 hash=a80a36153593

INFO [02-13|09:37:10.577] Commit new mining work number=53 sealhash=3acb6c0ecd19 uncles=0 txs=0 gas=0 fees=0 elapsed=130.557µs

INFO [02-13|09:37:11.223] Successfully sealed new block number=53 sealhash=3acb6c0ecd19 hash=14e0fa575494 elapsed=645.999ms

INFO [02-13|09:37:11.223] block reached canonical chain number=46 hash=c5ff7ada8069

INFO [02-13|09:37:11.224] mined potential block number=53 hash=14e0fa575494

INFO [02-13|09:37:11.224] Commit new mining work number=54 sealhash=96235bf3fc50 uncles=0 txs=0 gas=0 fees=0 elapsed=124.053µs

INFO [02-13|09:37:11.723] Successfully sealed new block number=54 sealhash=96235bf3fc50 hash=e5438e2f6f2e elapsed=498.975ms

С помощью команд miner.start и miner.stop можно запускать и останавливать майнинг.

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

> miner.start(4)

Здесь мы запускаем майнинг на четырех ядрах виртуальной машины. Перед запуском проверьте, сколько ядер доступно на вашем сервере.

Заметим, что при отладке смарт-контрактов процесс майнинга останавливать не нужно, иначе ваш узел не сможет обрабатывать транзакции, публиковать контракты и вызывать методы контрактов. Тем не менее, вы всегда сможете остановить майнинг с помощью такой команды:

> miner.stop()

Если скорость майнинга недостаточна и вам приходится ждать появления новых блоков более 20-30 секунд, попробуйте увеличить размер оперативной памяти и количество процессорных ядер на виртуальной машине. Облачные хостинги, как правило, позволяют сделать это очень просто через Web-интерфейс вашего личного кабинета.

Завершение работы консоли Geth

> exit

Итоги урока

Далее вы создали приватный блокчейн, состоящий из одного узла,

выполнили инициализацию этого узла и убедились, что в вашем блокчейне работает майнинг. Вы научились запускать свой узел Ethereum и подключаться к нему в консоли. Вы также научились выдавать простейшие консольные команды Geth и теперь готовы для первых экспериментов с вашим приватным блокчейном.

Урок 3. Подготовка рабочей среды на Raspberry Pi 3

Цель урока

Практические задания: установка операционной системы Rasberian на Raspberry Pi 3, установка ПО Geth, обеспечивающего работу узла нашего блокчейна, а также демона децентрализованного хранилища данных Swarm. Запуск узла приватного блокчейна Ethereum с помощью параметра dev утилиты geth.

На предыдущем уроке вы научились создавать свой приватный блокчейн Ethereum на сервере с ОС Ubuntu и Debian. Возможно, для первых опытов и отладки смарт-контрактов вам больше подойдет очень недорогой микрокомпьютер Raspberry Pi 3 (или его более новая модель Raspberry Pi 3 model B), который создавался как раз для обучения.

К сожалению, ресурсы микрокомпьютера Raspberry Pi довольно ограничены, в частности, объем оперативной памяти составляет всего 1 Гбайт (уже есть в продаже Raspberry Pi 4 с 4 Гбайт памяти на борту). Поэтому на Raspberry Pi не получится запустить майнинг в Geth аналогично тому, как мы это делали на предыдущем уроке в ОС Ubuntu и Debian.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3