Всего за 349 руб. Купить полную версию
> web3.eth.accounts
["0x4f744742ac711fd111c7a983176db1d48d29f413", "0xf212d0180b331a88bd3cafbd77bbd0d56398ae00"]
Каждый аккаунт обладает своим идентификатором, или адресом, представляющим собой длинное шестнадцатеричное число. Именно эти адреса и показывает команда web3.eth.accounts.
Добавление аккаунта
Давайте добавим новый аккаунт, указав для него пароль test (никогда не используйте такие простые пароли в рабочих проектах):
> web3.personal.newAccount("test")
"0x346cc69a63f9b84c45f17e337574c0150ab6bc03"
Здесь мы обратились к объекту web3.personal. Чтобы такие обращения были возможны, при запуске узла сети мы указали название этого объекта наряду с другими объектами в параметре rpcapi (см. урок 2). При использовании параметра dev параметр rpcapi задавать явным образом не требуется.
Если раньше массив аккаунтов содержал два элемента, то теперь в нем будет на один элемент больше:
> web3.eth.accounts
["0x4f744742ac711fd111c7a983176db1d48d29f413",
"0xf212d0180b331a88bd3cafbd77bbd0d56398ae00", "0x346cc69a63f9b84c45f17e337574c0150ab6bc03"]
Для каждого аккаунта на узле создается ключ. Другой неотъемлемый параметр аккаунта это его пароль. Пароль при создании аккаунта никуда не записывается, поэтому его невозможно восстановить.
Теперь для добавления аккаунта воспользуемся командой geth account с параметром new. Откройте новое консольное окно пользователем book и введите там следующую команду:
$ geth datadir node1 account new
Будет добавлен новый аккаунт, а его идентификатор (адрес), будет показан в фигурных скобках:
INFO [02-17|23:01:28.855] 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: {ae7bb3649a5c597d44f812b4a636f3cc21ee98e1}
При добавлении аккаунта у вас будет запрошен пароль.
Обратите внимание, что во всех этих командах мы указывали путь к рабочему каталогу нашего приватного блокчейна с помощью параметра datadir.
Теперь если вы вернетесь в консольное окно Geth и посмотрите там список аккаунтов, то увидите, что теперь на вашем узле определено целых четыре аккаунта:
> web3.eth.accounts
["0x4f744742ac711fd111c7a983176db1d48d29f413", "0xf212d0180b331a88bd3cafbd77bbd0d56398ae00", "0x346cc69a63f9b84c45f17e337574c0150ab6bc03", "0xae7bb3649a5c597d44f812b4a636f3cc21ee98e1"]
Параметры команды geth account
Команде geth account можно передавать параметры, перечисленные в табл. 4.1.
Табл. 4.1. Параметры команды geth account
Хорошее описание управления аккаунтами с примерами можно найти здесь: https://github.com/ethereum/go-ethereum/wiki/Managing-your-accounts.
Пароли аккаунтов
невозможно восстановитьЛучше всего запомнить пароль или записать его на обычной бумаге и хранить в безопасном месте. Доступ к вашему аккаунту обеспечивается приватным ключом и паролем.
Приватный ключ хранится на сервере узла и может быть похищен, например, с использованием какой-нибудь уязвимости в ОС или в ПО, установленном на сервере. Но чтобы использовать похищенный ключ, злоумышленнику потребуется еще и пароль. Мы не рекомендуем хранить пароль в компьютере (на сервере, ноутбуке и любом другом), так как он может быть похищен вместе с ключом.
Также учтите, что вредоносные программы могут перехватить управление клавиатурой, а также получить доступ к буферу обмена данных Clipboard. В этом случае они смогут похитить пароль в процессе его ввода с клавиатурой. Используйте антивирусные программы для защиты от вирусов и вредоносных программ различных типов.
Если
злоумышленник сможет похитить приватный ключ и пароль, он получит полный доступ к вашему аккаунту и сможет, например, перевести все имеющиеся там криптовалютные средства на свой аккаунт.
Криптовалюта в Ethereum
Далее вы можете создавать новые аккаунты и переводить на них средства с тех аккаунтов тестовой сети, где уже имеются монеты.
Однако в основной сети Ethereum майнинг дорогое и долгое занятие. Есть другая возможность, а именно: приобретение криптовалютных средств у владельцев других аккаунтов на биржах и обменниках. При этом владелец аккаунта может перевести средства на ваш аккаунт. Вы должны будете сообщить адрес вашего аккаунта, и если вы ошибетесь, то не будет никакой возможности вернуть ваши средства.
На этом уроке мы будем выполнять операцию перевода средств (разумеется, тестовых) в нашей приватной сети.
Денежные единицы Ethereum
Внутренняя валюта сети Ethereum называется Ether, или эфир. Когда владелец аккаунта выполняет транзакции, валюта, которая имеется на счету аккаунта, тратится.
Помимо Ether, существуют более крупные и более мелкие единицы криптовалюты Ethereum (аналогично тому, как в фиатных деньгах существуют рубли и копейки, доллары и центы).
Самая мелкая единица это Wei. В одном эфире (т.е. в одном Ether) содержится целых 1 000 000 000 000 000 000 единиц Wei.
Как вы увидите далее, единица Wei удобнее, чем Ether, когда речь идет об оплате транзакций, не отнимающих много ресурсов.
В таблице 4.2. мы привели полный список денежных единиц Ethereum и их ценность в единицах Wei.