github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/cmd/puppeth/puppeth.go (about)

     1  
     2  //此源码被清华学神尹成大魔王专业翻译分析并修改
     3  //尹成QQ77025077
     4  //尹成微信18510341407
     5  //尹成所在QQ群721929980
     6  //尹成邮箱 yinc13@mails.tsinghua.edu.cn
     7  //尹成毕业于清华大学,微软区块链领域全球最有价值专家
     8  //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
     9  //版权所有2017 Go Ethereum作者
    10  //此文件是Go以太坊的一部分。
    11  //
    12  //Go以太坊是免费软件:您可以重新发布和/或修改它
    13  //根据GNU通用公共许可证的条款
    14  //自由软件基金会,或者许可证的第3版,或者
    15  //(由您选择)任何更高版本。
    16  //
    17  //Go以太坊的分布希望它会有用,
    18  //但没有任何保证;甚至没有
    19  //适销性或特定用途的适用性。见
    20  //GNU通用公共许可证了解更多详细信息。
    21  //
    22  //你应该已经收到一份GNU通用公共许可证的副本
    23  //一起去以太坊吧。如果没有,请参见<http://www.gnu.org/licenses/>。
    24  
    25  //Puppeth是一个集合和维护私有网络的命令。
    26  package main
    27  
    28  import (
    29  	"math/rand"
    30  	"os"
    31  	"strings"
    32  	"time"
    33  
    34  	"github.com/ethereum/go-ethereum/log"
    35  	"gopkg.in/urfave/cli.v1"
    36  )
    37  
    38  //
    39  func main() {
    40  	app := cli.NewApp()
    41  	app.Name = "puppeth"
    42  	app.Usage = "assemble and maintain private Ethereum networks"
    43  	app.Flags = []cli.Flag{
    44  		cli.StringFlag{
    45  			Name:  "network",
    46  			Usage: "name of the network to administer (no spaces or hyphens, please)",
    47  		},
    48  		cli.IntFlag{
    49  			Name:  "loglevel",
    50  			Value: 3,
    51  			Usage: "log level to emit to the screen",
    52  		},
    53  	}
    54  	app.Action = func(c *cli.Context) error {
    55  //设置记录器以打印所有内容和随机生成器
    56  		log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(c.Int("loglevel")), log.StreamHandler(os.Stdout, log.TerminalFormat(true))))
    57  		rand.Seed(time.Now().UnixNano())
    58  
    59  		network := c.String("network")
    60  		if strings.Contains(network, " ") || strings.Contains(network, "-") {
    61  			log.Crit("No spaces or hyphens allowed in network name")
    62  		}
    63  //
    64  		makeWizard(c.String("network")).run()
    65  		return nil
    66  	}
    67  	app.Run(os.Args)
    68  }