用Geth管理以太坊钱包
阿牛哥 Lv4

Geth全称Go Ethereum,以太坊官方出品,包含了以太坊迄今为止的所有功能,本期文章我们来看看如何用geth进行最基本的账户管理。

有时候我们希望在命令行或者终端里创建和管理钱包,这时候geth就是一个不错的选择。geth账户管理包含三种基本功能:创建、更新和导入。

下载

请一定从官方下载geth,目前官方提供Windows、Linux和MacOS版本:https://geth.ethereum.org/downloads/

Key文件

与第三方钱包不同,geth将每一个账户的密钥存储在单独的key文件中,所有key文件默认存放在~/.ethereum/keystore目录下。解锁key文件需要密码,这个密码是创建账户时候设置的。

geth不支持导出账户,要备份账户只需要将key文件拷贝一份,保存到其他地方,比如U盘等等。即便在不同的机器里,key文件也是通用的!

创建账户

1
2
3
4
5
6
$ geth account new
Your new account is locked with a password. Please give a password. Do not forget this password.
Password:
Repeat password::
Your new key was generated
Public address of the key: 0x0C0c0eBd31e7eAd22f7D37be5f2958a45B4e54ce

执行geth account new会要求输入密码,密码确认无误后将创建新的账户,同时在~/.ethereum/keysotre目录下生成一个新的key文件,文件名类似于UTC--2021-05-17T10-08-17.450143300Z--0c0c0ebd31e7ead22f7d37be5f2958a45b4e54ce

加上--keystore参数可以指定key文件存储的位置

1
$ geth account new --keystore /path/to/keystore

列出账户

1
2
$ geth account list
Account #0: {0c0c0ebd31e7ead22f7d37be5f2958a45b4e54ce}

默认列出~/.ethereum/keystore目录下的所有账户,同样可以带上--keysotre参数指定目录。

更新账户

更新账户可以修改账户的密码,否则一般情况下不会用到更新。假如geth升级了key文件的格式,这时候可以将旧版本的key文件升级到新版本。

1
2
3
4
5
6
$ geth account update 0c0c0ebd31e7ead22f7d37be5f2958a45b4e54ce
Unlocking account 0c0c0ebd31e7ead22f7d37be5f2958a45b4e54ce | Attempt 1/3
Password:
Please give a new password. Do not forget this password.
Password:
Repeat password:

查看账户余额

1
2
3
4
$ geth console
> eth.accounts
["0x0c0c0ebd31e7ead22f7d37be5f2958a45b4e54ce"]
> eth.getBalance("0x0c0c0ebd31e7ead22f7d37be5f2958a45b4e54ce")

这里获取道德余额是以wei作为单位的,1ETH=10^18wei,所以还需要做一层转换:

1
> web3.fromWei(eth.getBalance("0x0c0c0ebd31e7ead22f7d37be5f2958a45b4e54ce"), "ether")

参考文档:Managing Your Accounts