Our Blog

admin by admin

Ethereum — Глава 3 (Управление аккаунтами)

Создание аккаунта

ВНИМАНИЕ: Запомните свой пароль.

Если вы потеряете пароль, который используете для шифрования своего аккаунта, вам не удастся получить доступ к данному аккаунту. Повторяем: НЕВОЗМОЖНО получить доступ к аккаунту без пароля, и здесь нет опции забыл свой пароль. Не забывайте этого.

Интерфейс на уровне вызовов ethereum CLI geth обеспечивает управление аккаунтов через команду account:

Управление аккаунтами позволяет вам создавать новые аккаунты, просматривать все существующие аккаунты, импортировать закрытый ключ в новый аккаунт.. Он поддерживает интерактивный режим, когда вы плучаете запрос пароля, а также не-интерактивный режим, в котором пароли предоставляются через файл пароля. Не-интерактивный режим предназначен только для использования в виде сценария в тестовых сетях или известных безопасных средах окружения. Убедитесь, что вы помните пароль, указанный вами при создании нового аккаунта (нового или импортированного). Без этого вы не сможете разблокировать свой аккаунт. Имейте в виду, что экспорт ключа в нешифрованном формате НЕ поддерживается. Ключи хранятся в /keys. Удостоверьтесь, что вы регулярно делаете резервное копирование! Безопаснее будет перенести весь каталог или индивидуальные ключи, находящиеся в нем, между нодами ethereum.

И, наконец. НЕ ЗАБЫВАЙТЕ СВОЙ ПАРОЛЬ

[box]SUBCOMMANDS:

list  print account addresses
new create a new account
import   import a private key into a new account[/box]

Информацию о дальнейших подкомандах можно получить:
[box]geth account help [/box]

Управлять аккаунтами можно также через Консоль Javascript

Примеры

Интерактивное использование

[box]
$ geth -datadir /tmp/eth account new
Новый аккаунт шифруется кодовой фразой.
Пожалуйста, введите кодовую фразу.
Кодовая фраза:

Повторите кодовую фразу:
Адрес: {7f444580bfef4b9bc7e14eb7fb2a029336b07c9d}
$ geth —datadir /tmp/eth account list
Адрес: {7f444580bfef4b9bc7e14eb7fb2a029336b07c9d}
$ geth —datadir /tmp/eth.0 account import ./key.prv

Новый аккаунт шифруется кодовой фразой.
Пожалуйста, введите кодовую фразу.
Кодовая фраза:
Повторите кодовую фразу:

Адрес: {7f444580bfef4b9bc7e14eb7fb2a029336b07c9d}
[/box]

Не-интерактивное использование

Вы предоставляете незашифрованный файл паролей в качестве аргумента  флаг —password .

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

[box]

$ geth —datadir /tmp/eth —password /path/to/password account new
Address: b0047c606f3af7392e073ed13253f8f4710b08b6
$ geth —datadir /tmp/eth account list
Address: {b0047c606f3af7392e073ed13253f8f4710b08b6}
$ geth —datadir /tmp/eth1 —password /path/to/anotherpassword account import ./key.prv
Address: b0047c606f3af7392e073ed13253f8f4710b08b6

[/box]

Создание аккаунтов

Создание нового аккаунта

[box]geth account new[/box]

Создает новый аккаунт и печатает адрес.

В консоли:

[box]> admin.newAccount()[/box]

Аккаунт сохраняется в кодированном формате, вы получаете запрос кодовой фразы. Вы должны помнить эту кодовую фразу для разблокировки аккаунта в будущем. Для не-интерактивного использования кодовая фраза может содержать флаг —password:

[box]geth —password <passwordfile> account new[/box]

Имейте в виду, это предназначено только для тестирования, сохранение вашего пароля в файл или демонстрирование каким-либо образом будет неудачной идеей..

Создание аккаунта при импорте закрытого ключа

[box]import [arguments…]

geth account import <keyfile>[/box]

Импортирует незашифрованный закрытый ключ из <keyfile> создает новый аккаунт и печатает адрес.

Подразумевается, что файл ключа содержит незашифрованный закрытый ключ в качестве канонических EC сырых байтов, закодированных в шестнадцатеричные. Аккаунт сохраняется в зашифрованном формате, вы получаете запрос кодовой фразы.

Вы должны запомнить данную кодовую фразу для разблокировки аккаунта в будущем. Для не-интерактивного использования кодовая фраза может содержать флаг пароля:

[box]geth —password <passwordfile> account import <keyfile>[/box]

Примечание: Т.к. вы можете напрямую копировать ваши зашифрованные аккаунты в другой экземпляр ethereum, данный механизм импорта не нужен, когда вы переводите аккаунт между нодами.

Внимание: Если вы используете флаг пароля с файлом паролей, лучше убедиться, что файл не читается или даже не просматривается кем-то еще, кроме вас. Это можно сделать при помощи:

[box]touch /path/to/password
chmod 700 /path/to/password
cat > /path/to/password
>I type my pass here^D[/box]

Импорт вашего предпродажного(presale) кошелька

Импортировать ваш предпродажный кошелек очень просто. Если вы помните свой пароль, то:

[box]geth wallet import /path/to/my/presale.wallet[/box]

вы получите запрос пароля, ваш предпродажный аккаунт импортируется. Его можно использовать не-интерактивно, опция пароля принимает файл паролей в качестве аргумента, содержащего пароль к кошельку в открытом тексте.

 

Регистрация аккаунтов и проверка баланса

Регистрация ваших существующих аккаунтов

Вызовите интерфейс CLI из командной строки при помощи:

[box]$ geth account list
Primary #0: {d1ade25ccd3d550a7eb532ac759cac7be09c2719}
Account #1: {da65665fc30803cb1fb7e6d86691e20b1826dee0}
Account #2: {e470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32}
Account #3: {f4dd5c3794f1fd0cdc0327a83aa472609c806e99}[/box]

Для регистрации аккаунтов с целью создания. Первый созданный аккаунт называется основным аккаунтом. При использовании консоли:

[box]> eth.accounts
[‘0x407d73d8a49eeb85d32cf465507dd71d507100c1’][/box]

или через RPC:

[box]# Request
$ curl -X POST —data ‘{«jsonrpc»:»2.0″,»method»:»eth_accounts»,»params»:[],»id»:1}
http://127.0.0.1:8545’
# Result
{
«id»:1,
«jsonrpc»: «2.0»,
«result»: [«0x407d73d8a49eeb85d32cf465507dd71d507100c1»]
}[/box]

Если вы планируете использовать аккаунт не-интерактивно, вам нужно его разблокировать. Это можно сделать в командной строке при помощи —unlock , которая принимает аккаунт в качестве аргумента, т.о. вы можете разблокировать аккаунт программным путем за одну сессию. Это полезно, если вы хотите пользоваться аккаунтом из Dapps через RPC. Команда—unlock primary разблокирует первый аккаунт. Это полезно, если вы создали свой аккаунт программным путем, и вам не нужно знать фактический аккаунт для его разблокировки.

[box]geth —password <(echo this is not secret!) account new
geth —password <(echo this is not secret!) —unlock primary —rpccorsdomain[/box]

localhost —verbosity 6 2>> geth.log

В консоли вы также можете разблокировать аккаунты.

[box]admin.unlock(address)[/box]

Помните, что мы НЕ рекомендуем использовать здесь аргумент паролей, т.к. история консоли протоколируется, т.о. вы можете скомпроментировать свой аккаунт. Вас предупредили.

Проверка баланса аккаунтов

Для проверки баланса аакаунта etherbase:

[box]> web3.fromWei(eth.getBalance(eth.coinbase), «ether»)
6.5[/box]

Показать все балансы с  JavaScript функцией:

[box]function checkAllBalances() {
var i =0;
eth.accounts.forEach( function(e){
console.log(» eth.accounts[«+i+»]: » + e + » \tbalance: » +
web3.fromWei(eth.getBalance(e), «ether») + » ether»);
i++;
})
};[/box]

Это потом может быть исполнено с :

[box]> checkAllBalances();
eth.accounts[0]: 0xd1ade25ccd3d550a7eb532ac759cac7be09c2719 balance: 63.11848 ether
eth.accounts[1]: 0xda65665fc30803cb1fb7e6d86691e20b1826dee0 balance: 0 ether
eth.accounts[2]: 0xe470b1a7d2c9c5c6f03bbaa8fa20db6d404a0c32 balance: 1 ether
eth.accounts[3]: 0xf4dd5c3794f1fd0cdc0327a83aa472609c806e99 balance: 6 ether[/box]

 

Отправка монет

Основным способом отправки является простая транзакция эфира ether при использовании консоли:

[box]> eth.sendTransaction({from:sender, to:receiver, value: amount})[/box]

При использовании встроенного JavaScript, вы можете легко настраивать переменные для поддержания стоимости. Например:

[box]> var sender = eth.accounts[0];
> var receiver = eth.accounts[1];
> var amount = web3.toWei(0.01, «ether»)[/box]

Или же вы можете создать транзакцию в одной строке при помощи:

[box]> eth.sendTransaction({from:eth.coinbase, to:eth.accounts[1], value: web3.toWei(0.05,
«ether»)})
Please unlock account d1ade25ccd3d550a7eb532ac759cac7be09c2719.
Passphrase:
Account is now unlocked for this session.
‘0xeeb66b211e7d9be55232ed70c2ebb1bcc5d5fd9ed01d876fac5cff45b5bf8bf4′[/box]

Результат транзакции будет:  0xeeb66b211e7d9be55232ed70c2ebb1bcc5d5fd9ed01d876fac5cff45b5bf8bf4

Если пароль введен неверно, вы вместо этого получите сообщение об ошибке: error: could not unlock sender account


 

Вернуться к оглавлению

Share

Похожие публикации

Войти
Регистрация
Отправить сообщение