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

Очень важный параметр – networkid. Это идентификатор сети. Здесь мы должны указать уникальный идентификатор 98760 нашего приватного блокчейна.

Параметр verbosity задает детализацию журнала:

• 0 – не записывать данные в журнал;

• 1 – записывать сообщения об ошибках;

• 2 – записывать предупреждающие сообщения;

• 3 – записывать информационные сообщения;

• 4 – записывать отладочную информацию;

• 5 – записывать детальную информацию.

По умолчанию используется значение 3.

Так как мы будем работать с узлом с помощью протокола JSON RPC, нам необходимо включить такую возможность, указав параметр rpc. Дополнительно с помощью параметра rpcapi мы перечисляем, какие программные интерфейсы должен предоставить нам узел. Здесь мы указали такой набор: db, eth, net, web3, personal, web3. Подробнее об этом мы расскажем позже.

При запуске geth мы указываем команду console. Эта команда запускает интерактивную консоль JavaScript, где мы сможем выдавать команды.

Подключаемся к нашему узлу

Теперь откройте вторую консоль и введите в ней следующую команду:


$ geth –datadir node1 –networkid 98760 attach ipc://home/book/node1/geth.ipc


Эта команда откроет консоль geth и подключится к вашему приватному узлу.

Здесь необходимо указать те же значения параметров datadir и networked, что и при запуске узла. Команда attach подключается к узлу, адрес которого задан после нее, и запускает интерактивную консоль JavaScript. В адресе нам нужно указать полный путь к рабочему каталогу нашего приватного блокчейна.

Запишите команду подключения в файл attach_node.sh для удобства (листинг 2.3.).

Листинг 2.3. Файл attach_node.sh


geth –datadir node1 –networkid 98760 attach ipc://home/book/node1/geth.ipc


Теперь запустите этот файл, и вы увидите приглашение консоли geth:



$ 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


Перейти на страницу:

Похожие книги

Главный рубильник. Расцвет и гибель информационных империй от радио до интернета
Главный рубильник. Расцвет и гибель информационных империй от радио до интернета

Превратится ли всемирная паутина в «традиционное СМИ», содержание которого строго контролируется в интересах максимизации прибыли? В чьих руках сейчас находится Рубильник интернет-истории и, по сути, — развития общества? Исследуя развитие телефонии, радио, кино и телевидения, автор показывает, как эти индустрии прошли путь от хобби — к крупному бизнесу, от открытости и гибкости — к закрытой и жесткой системе. Какое будущее ожидает всемирную Сеть?Пролить свет на прошлое, чтобы предвидеть будущее — главная задача этой книги.Эта книга для тех, кто считает интернет не просто средством общения, но и инструментом познания мира, способом самовыражения. Для думающих и неравнодушных интернет-пользователей. Для студентов и преподавателей, особенно — экономических, телекоммуникационных и гуманитарных специальностей.

Тим Ву

Карьера, кадры / Интернет / Прочая компьютерная литература / О бизнесе популярно / Финансы и бизнес / Книги по IT