geth命令
cmd/main/main.go
func main() {
if err := app.Run(os.Args); err != nil { // app是三方包,用于接收客户端命令
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}
func init() { // init方法先于main方法执行
// Initialize the CLI app and start Geth
app.Action = geth // 设置的geth,会自行下面的geth方法
app.HideVersion = true // we have a command to print the version
app.Copyright = "Copyright 2013-2018 The go-ethereum Authors"
app.Commands = []cli.Command{ // 支持的子命令
// See chaincmd.go:
initCommand,// 客户端init命令 初始化创始区块
importCommand,
exportCommand,
importPreimagesCommand,
exportPreimagesCommand,
copydbCommand,
removedbCommand,
dumpCommand,
// See monitorcmd.go:
monitorCommand,
// See accountcmd.go:
accountCommand,
walletCommand,
// See consolecmd.go:
co