本文介紹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