本文介绍geth经常使用的命令和选项,geth有十几个命令和几十个选项,本文只介绍一些最经常使用的命令和选项,解释它们的用法和用途以及可能存在的误区。web
geth命令行的通用格式以下:json
geth [options] command [command options] [arguments...]
其中options
是geth的启动参数,它是以--
开头指定的一些可选的选项,如--datadir
--rpc
等。command
是geth运行的命令,如init
console
等,命令能够带有本身可选的选项和参数,如geth init genesis.json
中的genesis.json
就是init
命令的参数。安全
init
init
命令用来初始化创世区块,也就是建立一条链。它须要一个参数:json格式的创世区块配置文件。通常的格式是:websocket
geth --datadir <DATADIR> init <GENESIS_FILE>
如:socket
geth --datadir "yourdatadir" init genesis.json
会在yourdatadir
目录下生成geth/chaindata
目录,并在这个目录中写入创世区块。若是不指定--datadir
选项,会使用默认的datadir
,具体请看下文关于--datadir
的说明。命令行
account
account
命令用来管理帐户,它有四个子命令:code
list
打印本地全部帐户地址new
建立一个帐户update
更新一个已有帐户import
导入私钥生成一个帐户建立一个新帐户,通常格式是:ip
geth --datadir <DATADIR> account new
如:rem
geth --datadir "yourdatadir" account new
会提示你设置帐户密码,而后会生成一个新帐户,帐户存储在yourdatadir/keystore
目录中,每一个帐户对应一个文件。rpc
查看帐户:
geth --datadir "yourdatadir" account list
会打印yourdatadir/keystore
中的全部帐户和它们的存储位置。
更新帐户,通常格式是:
geth --datadir <DATADIR> account update <address>
如:
geth --datadir "yourdatadir" account update "a364b52f9f8a0c851dd63ec14ddf691018e842fb"
会提示你输入帐户密码,以后再输入一个新密码。update
用来将帐户的存储格式升级到最新,另一个功能,就是用来修改密码。
导入私钥,通常格式是:
geth --datadir <DATADIR> import <keyfile>
<keyfile>
是一个文本文件,里面的内容是要导入的私钥明文。注意不要泄漏你的私钥。
console
console
命令会启动节点并进入交互式JavaScript环境:
geth --datadir "yourdatadir" console
在这里可使用geth内置的全部JavaScript API。
attach
有没有遇到过这样的问题:在geth console中执行miner.start()
,而后就被挖矿输出刷屏了,想要再输入其余命令怎么办?能够输入,可是输入仍是被刷屏,体验很差。能够打开两个窗口,一个窗口挖矿,另外一个窗口还能够正常输入命令吗?能够,这就是attach
命令的用途。
attach
命令会进入交互式JavaScript环境,与console
命令不一样的是,attach
不会启动新的节点,它只会链接到一个正在运行的节点。就像能够经过终端远程登陆Linux系统同样,attach
至关于一个终端,经过它能够“登陆”到一个geth节点,以后的操做就是操做那个节点。 attach
支持三种协议:ipc、http、websocket。在Linux中可使用ipc方式,如:
geth attach ipc:yourdatadir/geth.ipc
若是启动节点时使用了--rpc
选项,也可使用http方式,如:
geth attach http://localhost:8545
removedb
想要删除区块数据?删除<DATADIR>
就行了,可是这样连keystore
也删了,也就是帐户也没了。若是想保留帐户,安全地删除区块数据,最好使用removedb
:
geth --datadir "yourdatadir" removedb
这会删除yourdatadir/geth/chaindata
,其余东西都不会动。
help
geth help
会列出geth命令行全部可用的命令和选项。想要查看某个命令的帮助,输入:
geth help <command>
如:
geth help account
查看account
命令的帮助。
若是想查看某个命令的子命令的帮助也能够,如
geth account help new
会显示account new
的帮助。
--datadir