GO语言公链开发实战
上QQ阅读APP看书,第一时间看更新

3.2 bytomd守护进程初始化流程及命令参数

守护进程是一种特殊进程,启动后一直在后台运行,只有当触发特定的信号时,才会执行退出操作。比原链的守护进程是bytomd,初始化流程如图3-1所示。

图3-1 bytomd守护进程初始化流程

在编写命令行程序时,通常需要对命令参数进行解析。不同语言一般都会提供解析命令行参数的方法或库,以方便程序员使用。在GO语言标准库中提供了flag包,方便进行命令行解析。

bytomd进程支持的传参如下:

    $ ./bytomd -h

        Multiple asset management.


        Usage:
          bytomd [command]
        Available Commands:
          help        显示帮助信息
          init        初始化网络类型
          node        运行bytomd节点
          version     显示版本信息


        coral[coralmac] bytomd $ ./bytomd node -h
        Run the bytomd


        Usage:
          bytomd node [flags]


        Flags:
              --auth.disable                 关闭API Server Auth验证功能,默认为true
              --chain_id string              指定网络类型
          -h, --help                         显示帮助信息
              --log_file string               指定日志输出文件
              --log_level string             指定日志输出级别
              --mining                       开启挖矿模式,默认为false
              --p2p.dial_timeout int        设置p2p节点连接超时时间,默认3s
              --p2p.handshake_timeout int   设置p2p节点握手超时时间,默认30s
              --p2p.laddr string             设置p2p节点监听地址,默认"tcp://0.0.0.0:46656"
              --p2p.max_num_peers int       设置p2p节点最大连接节点,默认50
              --p2p.pex                      设置p2p节点信息交换功能,默认true
              --p2p.seeds string             设置p2p节点的seeds种子节点
              --p2p.skip_upnp                设置是否使用upnp协议功能。默认false
              --prof_laddr string           指定pprof地址进入pprof调试模式,默认不指定则不进入
                                              pprof调试功能
              --simd.enable                  是否启用simd,用于Tenaority CPU指令优化
              --vault_mode                   运行vault模式,无网络模式
              --wallet.disable               关闭本地钱包功能,默认开启
              --wallet.rescan                重载本地钱包信息
              --web.closed                   自动打开dashboard功能,默认为true


        Global Flags:
              --home string           指定bytomd运行的home目录,存储配置、keystore、数据的目录
              --trace                  启用trace功能,出错时显示出错栈信息