Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
rusldv
7 лет назад

Язык Solidity: Запуск и настройка ноды Ethereum (Урок 7)

Язык Solidity: Запуск и настройка ноды Ethereum (Урок 7)



Предыдущие уроки:


Язык Solidity: Неllo World (Урок 1)
Язык Solidity: Типы данных (Урок 2)
Язык Solidity: Переменные состояния контракта (Урок 3)
Язык Solidity: Массивы и соответствия (Урок 4)
Язык Solidity: Структуры (Урок 5)
Язык Solidity: Глабальные переменные и функции блокчейна (Урок 6)


О нодах Ethereum

Под нодой мы подразумневаем программное обеспечение, работающее на определенном узле сети. По большей части в данный момент такими узлами являются либо персональные компьютеры, либо специализированные серверные аппаратные средства. Во первом случае - это наш компьютер, во втором реальный выделенный сервер или VPS (если позволяют арендуемые ресурсы). Конкретные подробности установки описаны на официальном сайте ethereum. Поскольку я пишу уроки для начинающих, будем считать, что у нас windows и просто скачиваем который исполняемый файл geth.exe.

Установка ноды Ethereum geth


После скачивания, если он в архиве - разархивируем. В архиве geth для windows находится всего один исполняемый файл geth.exe.
Так как это простой исполняемый файл, а не установочный пакет, - мы не будем по нему дважды кликать мышкой (иначе он запустится с параметрами по умолчанию, а этого нам не надо).
Выполняем следующие: Создадим, папку, например C:\ethereum или как у меня - одноименную C:\geth и копируем туда наш файл geth.exe.
У меня этот файл был в папке bin, я его вместе с ней и скопировал, получился такой путь C:\geth\bin\geth.exe. Добавлять путь к исполняемому файлу в переменную окружения PATH я не вижу смысла. Поэтому для удобства работы просто переходим в наш каталог cd C:\geth\bin.
Теперь нам нужно запустить geth, но запускать его мы будем в режиме разработчика (приватного блокчейна).
Если мы его просто вызовем командой geth, то он начнет скачивать весь свой блокчейн, а это дело может затянуться надолго. Да и эксперименты проводить в реальном блокчейне не самая умная мысль.
Для того, чтобы нода запустилась в режиме разработчика, мы указываем параметр --dev. Также мы хотим не просто запустить ноду, но еще и поработать с ней. Мы указываем команду console после --dev, чтобы она открылась для ввода команд после запуска geth.

geth --dev console

Вот так выглядить наша команда в крмандной строке.
При первом запуске geth создает себе папку для хранения своего блокчейна в Windows (если не указано при запуске иное) это тут:
C:\Users\<имяпользователя>\AppData\Roaming\Ethereum\chaindata
Здесь же в папке Ethereum будут создаваться наши кошельки.
И так, консоль открылась - можем приступать к работе с geth через консоль.

Работа с geth в консольном режиме


Хотите верьте, хотите нет, - консоль geth работает с синтаксисом движка JavaScript, разве что объекты другие.
Мы можем вводить команды напрямую после приглашения ввода >, а можем вынести в отдельный файл и загрузить командой loadScript('myscripts.js').
Поскольку в консолях JavaScript при вводе имени какого-нибудь объекта, нам возвращается его распечатка - строковое представление JSON с его членами, то мы можем изучать элементы, вводя их имена:

>web3
{ // JSON }
>eth
{ // тоже JSON }

или, например:

>personal

Соответственно раскрутить вложенный объект или изучиить функцию, можно указав ее положение в объекто точечной ноитацией.
Для понимания того, как работать в режиме консоли с geth (да и не только) я советую вам с этим делом поиграться.
А я пока приведу пример самых основных действий.

Наиболее частые действия в консоле geth

Для создания аккаунта (кошелька) выполняем следующую команду:

>personal.newAccount("mypass")

тут mypass- это ваш пароль, который вы должны очень хорошо сохранить и не терять.
Инструкция эта вернет адрес вашего кошелька, типо 0x098affa....
Также в папке C:\Users\<имяпользователя>\AppData\Roaming\Ethereum создастся файл с кошельком.

Для того, чтобы посмотреть существующие кошельки у нас вводим:

>eth.accounts

Эта команда возвратит массив с адресами, - так как у нас всего один только что созданный аккаунт, мы его можем посмотреть и так: eth.accounts[0].
Этот же адрес становится адресом для токенов от майнинга (eth.coinbase).
И рассмотрим еще две наиболее часто востребованные команды.

О майнинге и работа с командами для майнинга в geth


Понятное дело, что любого поднимающего ноду хлебом кормить не надо, дай лишь бы что замайниить. В консоле geth майнинг запускается просто:

miner.start()

и также просто останавливается:

miner.stop()

Стоит более подробно остановиться на майнинге.
Пока что мы не будем слишком вдаваться в технические подробности - этим мы займемся в следующих уроках.
Сегодня представим суть майнинга следующим образом: В сети Ehereum каждая отправленная одной из работающих нод транзакция (если не отбракована) рассылается другим нодам, которые взаимодействуют с первой и так далее, таким образом транзакция попадает на большинство нод за считанные секунды.
А вот чтобы, эта транзакция была признана достоверной - ее необходимо включить в блокю
Этот блок должен быть сформирован одним из майнером в соответствии с определенным консенсусом (Pow или PoS в основном).
После этого транзакция считается действительной. Часто некоторые ждут подтверждений (обычно от 3 до 6), подтверждения по сути просто новые блоки, добавленные в блокчейн поверх того, где наша транзакция. Так ее точно не получится подменить.
И так,для функционирования нашей ноды в режиме приватного блокчейна (точнее для обработки ею транзакций) мы будем запускать на ней майнинг. В благодарность она нам будет генерировать раз в 30 сек по 5 приватных ETH, о которых основной блокчейн ни чего не знает :)
Ну вот думаю разобрались на сегодня.


В следующем уроке начнем рассматривать работу с JSON-RPC API Ethereum-a

488
2.795 GOLOS
На Golos с November 2016
Комментарии (2)
Сортировать по:
Сначала старые