《深入学习 Go-Ethereum : 008. CMD 模块 - Geth - chaincmd.go》中罗列了 chaincmd
主要源码,接下来描述下关于 config.go
中的代码功能
⬇️以下是 cmd/geth 包中其他代码的介绍:
├── accountcmd.go
├── chaincmd.go
├── config.go 🔫
├── consolecmd.go
├── dbcmd.go
├── misccmd.go
├── snapshot.go
├── usage.go
└── version_check.go
config 代码主要包含了 1 个子命令(dumpconfig)
及configFileFlag相关描述。
其中比较重要的代码为dumpconfig及configFileFlag声明,此外定义了两个结构体:gethConfig(主要包含了eth、node、ethstat、metrics)和ethstatsConfig(toml文件路径)。
其他的方法介绍如下:
dumpConfig 方法的主要作用是对节点配置信息的导出。(导出文件格式 TOML)
使用方法 geth dumpconfig filename
。
根据指定文件路径(一般都是从别的环境中dump出相应的配置信息),进行配置信息的导入。文件格式内容使用TOML进行配置。
查看调用关系,此方法被 config.go 和 accountcmd.go 使用。
配置文件部分信息示例:
[Eth]
NetworkId = 1
SyncMode = "snap"
EthDiscoveryURLs = ["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net"]
SnapDiscoveryURLs = ["enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net"]
......
此方法的主要功能是加载geth配置
信息并创建一个区块节点实例
。
在geth启动时被调用,根据上下文参数,创建相应的配置信息,并启动eth后端服务。
以上是 config.go
代码中比较重要的方法及功能介绍。