2. 管理账户
警告:记住你的密码
假如你忘记了加密账户的密码,那你将无法使用账户 重申:没有密码就无法使用账户,没有“忘记密码”的选项,不要忘记这点
注意:在0.9.36中,密钥文件命名约定已更改。本文档旨在反映Frontier release版本所使用帐户的准确信息。
ethereum CLI通过account
子命令提供了账户管理功能
account command [arguments...]
管理帐户功能可让您创建新帐户,列出所有现有帐户,将私钥导入新帐户,迁移到最新密钥格式并更改密码。 当您被提示输入密码,或者处于使用给定的密码文件提供密码的非交互模式时,它支持交互模式。非交互模式仅用于在测试网络或已知安全环境中进行脚本化使用。
确保您记住创建新帐户(使用新的,更新或导入)时所使用的密码。没有它,您无法解锁您的帐户。 请注意,不 支持以未加密格式导出密钥。
密钥存储在<DATADIR>/keystore
。确保你经常备份你的钥匙!有关详细信息,请参阅DATADIR备份和还原。关键文件的最新格式是:UTC--<created_at UTC ISO8601>-<address hex>
。列出账户时的顺序是按字母排序,但是作为时间戳格式的结果,账户实际上是创建顺序排序的。 可以安全地在ethereum节点之间传输整个目录或其中的各个键。请注意,如果您从其他节点向您的节点添加密钥,则帐户顺序可能会改变。因此,请确保您不要依赖或更改脚本或代码段中的索引。
最后重申:不要忘记你的密码
SUBCOMMANDS:
list print account addresses
new create a new account
update update an existing account
import import a private key into a new account
你可以通过geth account help <subcommand>
获取更多子命令信息,你也可以通过Javascript Console管理账户。
交互使用
创建一个账户
$ geth account new
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase:
Repeat Passphrase:
Address: {168bc315a2ee09042d83d7c5811b533620531f67}
列出账户
$ geth account list
Account #0: {a94f5374fce5edbc8e2a8697c15331677e6ebf0b}
Account #1: {c385233b188811c9f355d4caec14df86d6248235}
Account #2: {7f444580bfef4b9bc7e14eb7fb2a029336b07c9d}
导入私钥
$ geth --datadir /someOtherEthDataDir account import ./key.prv
The new account will be encrypted with a passphrase.
Please enter a passphrase now.
Passphrase:
Repeat Passphrase:
Address: {7f444580bfef4b9bc7e14eb7fb2a029336b07c9d}
账户升级
$ geth account update a94f5374fce5edbc8e2a8697c15331677e6ebf0b
Unlocking account a94f5374fce5edbc8e2a8697c15331677e6ebf0b | Attempt 1/3
Passphrase:
0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b
Account 'a94f5374fce5edbc8e2a8697c15331677e6ebf0b' unlocked.
Please give a new password. Do not forget this password.
Passphrase:
Repeat Passphrase:
0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b
非交互使用
你提供一个明文密码文件作为--password
标志的参数。文件中的数据由密码的原始字符组成,后跟单个换行符。
注意:不建议直接提供密码作为命令行的一部分,但您可以随时使用shell这样取巧的方法来绕过此限制。
$ geth --password /path/to/password account new
$ geth --password /path/to/password account update b0047c606f3af7392e073ed13253f8f4710b08b6
$ geth account list
$ geth --datadir /someOtherEthDataDir --password /path/to/anotherpassword account import ./key.prv