Глава 2
____________________________________
[ 58 ]
___________________________________
вместо задания случайного идентификатора сети и настройки различных флагов
логирования и отладки, вы можете просто использовать опцию
--dev
, которая
запустит частную сеть с уже включенными флагами.
Создание аккаунта
Geth позволяет создавать счета (аккаунты), т. е. генерировать ключи и связанные
с ними адреса. Для создания счета используйте команду:
geth account new
Когда вы запустите эту команду, вас попросят ввести
пароль для шифрования сче-
та. Если вы забудете ваш пароль, не останется ни малейшего шанса вернуть доступ
к своему счету.
Чтобы получить список всех счетов в вашем локальном кошельке, используйте
команду:
geth account list
Эта команда выведет на печать список адресов всех счетов. Ключи по умолчанию
хранятся в каталоге, заданном опцией
--datadir
, но вы можете использовать
опцию
–keystore
, чтобы назначить другой каталог.
Майнинг
По умолчанию Geth не запускает процесс майнинга.
Чтобы дать Geth команду на-
чать майнинг, нужно использовать опцию
--mine
. Вот еще несколько опций, отно-
сящихся к майнингу:
geth --mine --minerthreads 16 --minergpus '0,1,2' --etherbase
'489b4e22aab35053ecd393b9f9c35f4f1de7b194' --unlock
'489b4e22aab35053ecd393b9f9c35f4f1de7b194'
Здесь после опции
--mine
мы указали несколько других опций:
опция
--minerthreads
означает общее количество потоков, задействованных при
хешировании. По умолчанию используются восемь потоков
11
;
опция
--etherbase
означает адрес (счет), на который будет поступать вознагра-
ждение. По умолчанию счет зашифрован. Чтобы получить доступ к эфиру на ба-
лансе, мы должны расшифровать счет.
Расшифровка нужна, чтобы расшифро-
вать закрытый ключ, ассоциированный со счетом. Чтобы начать майнинг, нам
нет необходимости расшифровывать ключ, потому что для получения вознагра-
ждения достаточно лишь указать адрес;
при помощи опции
--unlock
можно разблокировать один или несколько счетов.
Несколько адресов разделяются запятыми;
11
В версии 1.7.2 по умолчанию запускаются четыре потока.
Принципы работы Ethereum
____________________________________
[ 59 ]
___________________________________
опция
--minergpus
используется, чтобы перечислить видеокарты (GPU), которые
заняты в майнинге. Чтобы получить
список доступных видеокарт, используйте
команду
geth gpuinfo
. На каждую видеокарту должно приходиться 1–2 Гбайт
оперативной памяти компьютера. По умолчанию используются не видеокарты,
а центральный процессор компьютера (CPU).
Быстрая синхронизация
На момент подготовки этой книги размер блокчейна составлял примерно 30 Гбайт
12
.
Скачивание такого объема данных может занять несколько часов или даже дней,
если у вас медленное подключение к Интернету. Для Ethereum реализован алго-
ритм быстрой синхронизации, который может ускорить скачивание блокчейна.
Для быстрой синхронизации не требуется скачивание полных блоков — загружа-
ются только заголовки блоков, квитанции транзакций и
недавняя база данных со-
стояний. Иными словами, нам не надо скачивать и воспроизводить все транзакции.
Для проверки целостности блокчейна алгоритм скачивает один полный блок через
каждое определенное количество блоков. Вы можете прочитать больше про алго-
ритм быстрой синхронизации по адресу:
https://github.com/ethereum/go-ethereum/
pull/1889
.
Чтобы воспользоваться быстрой синхронизацией при скачивании блокчейна, сле-
дует при запуске Geth воспользоваться опцией
--fast
13
.
В целях безопасности быстрая синхронизация разрешена только при начальной
синхронизации (т. е., когда собственный блокчейн узла пуст). После того как узел
успешно синхронизировался с сетью, быстрая синхронизация навсегда отключает-
ся. В качестве дополнительного
средства безопасности, если сбой синхронизации
произошел рядом с точкой ветвления или сразу после нее, быстрая синхронизация
отключается, и узел переходит в режим полной синхронизации с обработкой всех
блоков.
Ethereum Wallet
Ethereum Wallet (бумажник) — это приложение-клиент пользовательского интер-
фейса Ethereum, позволяющее создавать аккаунт, отправлять эфир, разворачивать
контракты, вызывать методы контрактов и многое другое. На рис. 2.1
показано, как
выглядит окно Ethereum Wallet.
Ethereum Wallet работает в паре с Geth. Когда вы запускаете Ethereum Wallet, он
пытается найти локальный экземпляр Geth и соединиться с ним. Если он не нахо-
дит работающий Geth, то запускает собственный узел Geth. Ethereum Wallet обме-
12
На момент подготовки перевода размер блокчейна вырос до 108 Гбайт. Данные получены на сайте:
https://bitinfocharts.com/ethereum/
.
13
В новой версии Geth следует использовать опцию
--syncmode "fast"
.