完整的config配置项
见https://github.com/nknorg/nkn/blob/master/util/config/config.go#147
{
Version int `json:"Version"`
SeedList []string `json:"SeedList"`
RPCCert string `json:"RPCCert"`
RPCKey string `json:"RPCKey"`
HttpWsPort uint16 `json:"HttpWsPort"`
HttpJsonPort uint16 `json:"HttpJsonPort"`
NodePort uint16 `json:"-"`
LogLevel int `json:"LogLevel"`
MaxLogFileSize uint32 `json:"MaxLogSize"`
IsTLS bool `json:"IsTLS"`
GenesisBlockProposer string `json:"GenesisBlockProposer"`
NumLowFeeTxnPerBlock uint32 `json:"NumLowFeeTxnPerBlock"`
LowFeeTxnSizePerBlock uint32 `json:"LowFeeTxnSizePerBlock"`
MinTxnFee int64 `json:"MinTxnFee"`
RegisterIDRegFee int64 `json:"RegisterIDRegFee"`
RegisterIDTxnFee int64 `json:"RegisterIDTxnFee"`
Hostname string `json:"Hostname"`
Transport string `json:"Transport"`
NAT bool `json:"NAT"`
Mining bool `json:"Mining"`
MiningDebug bool `json:"MiningDebug"`
BeneficiaryAddr string `json:"BeneficiaryAddr"`
SyncBatchWindowSize uint32 `json:"SyncBatchWindowSize"`
SyncBlockHeadersBatchSize uint32 `json:"SyncBlockHeadersBatchSize"`
SyncBlocksBatchSize uint32 `json:"SyncBlocksBatchSize"`
NumTxnPerBlock uint32 `json:"NumTxnPerBlock"`
TxPoolPerAccountTxCap uint32 `json:"TxPoolPerAccountTxCap"`
TxPoolTotalTxCap uint32 `json:"TxPoolTotalTxCap"`
TxPoolMaxMemorySize uint32 `json:"TxPoolMaxMemorySize"`
RPCReadTimeout time.Duration `json:"RPCReadTimeout"`
RPCWriteTimeout time.Duration `json:"RPCWriteTimeout"`
KeepAliveTimeout time.Duration `json:"KeepAliveTimeout"`
LogPath string `json:"LogPath"`
ChainDBPath string `json:"ChainDBPath"`
WalletFile string `json:"WalletFile"`
MaxGetIDSeeds uint32 `json:"MaxGetIDSeeds"`
DBFilesCacheCapacity uint32 `json:"DBFilesCacheCapacity"`
}
配置项说明
- SeedList
新节点接入NKN网络前,需要向任意一个已在NKN网络内的在线节点获取自己的邻居信息。
nknd启动时会从中随机选取一个,向它请求自己的邻居列表。
任何一个在线节点都可以成为别人的seed。官方在默认配置里提供了8个能保证长期在线的稳定seed。 - IsTLS
HttpJson RPC服务是否使用TLS连接。
- HttpJsonPort
指定HttpJson服务所使用的端口,默认30003端口。
- RPCCert、RPCKey
RPCCert和RPCKey分别为HttpJson启用TLS连接时所提供的证书和密钥。
- HttpWsPort
指定WebSocket服务所使用的端口,若端口号后3位为443(如30443),则为TLS连接。默认30002端口。
- NodePort
nkn overlay层端口,固定值30001。
- LogLevel
日志打印级别。[0:Debug,1:Info,2:Warning,3:Error]。
- MaxLogFileSize
日志切割时的阈值,每当日志文件的大小超出MaxLogFileSize则创建一个新日志文件。
单位MB,默认值20MB - GenesisBlockProposer
指定创世块出块人公钥,默认值为NKN官方团队的公钥。
- NumLowFeeTxnPerBlock
矿工打包区块时,区块中允许的低费率交易的个数。0表示不限制数量。默认值为0。
- LowFeeTxnSizePerBlock
矿工打包区块时,区块中允许低费率交易占用的总的尺寸(单位为Byte)。0表示不限制尺寸。默认值为4096。
- MinTxnFee
设定本节点收取转账费的最低费率,低于此费率的Transaction不接单。默认值0.1 NKN。
- RegisterIDRegFee
设定本节点注册ID的注册费。默认值0。
- RegisterIDTxnFee
设定本节点注册ID的交易费。默认值0。
- Hostname
指定本节点出口IP。留空则会在启动时向外界获取自身出口IP。默认值留空。
单机启多节点本地测试时,Hostname需设置为"127.0.0.1"。 - NAT
是否启用内网端口自动映射(需网关设备支持UPnP或PMP功能)。默认为True。
- Mining
挖矿开关,默认是True。
- Transport
指定socket使用tcp或kcp。默认为“tcp”。
- MiningDebug
是否在getnodestate API中显示本节点的当前时间戳和proposalSubmitted信息。Mining debug辅助信息。默认值True。
- BeneficiaryAddr
设置挖矿所得受益人钱包,实现挖矿钱包与资产归集钱包隔离的功能。
该配置项不为空时,挖矿所得直接付给BeneficiaryAddr指定的钱包,否则挖矿所得付给挖矿节点当前所用钱包。默认值为空。 - SyncBatchWindowSize
节点同步账本时,并发启动Job线程的数量。默认值1024。
- SyncBlockHeadersBatchSize
节点同步账本时,每个同步线程(Job)获取BlockHeader(区块头)的数量。默认值256。
- SyncBlocksBatchSize
节点同步账本时,每个同步线程(Job)获取Block(区块)的数量。默认值8。
- NumTxnPerBlock
区块中允许打包的最大交易数量,默认值4096。
- TxPoolPerAccountTxCap
交易池中允许每个账户持有的交易数量,默认值32。
- TxPoolTotalTxCap
交易池中允许所有账户总共持有的交易数量,0表示不限制交易数量。默认值0。
- TxPoolMaxMemorySize
交易池中允许所有账户总共持有的交易的总的尺寸(单位为MB),0表示不限制尺寸。默认是32。
- RPCReadTimeout,RPCWriteTimeout,KeepAliveTimeout
HttpJson服务接受请求时的读超时、写超时。
- LogPath
日志文件的路径,默认为’./Log’。
- ChainDBPath
数据库文件的路径,默认为’./ChainDB’。
- WalletFile
钱包文件的默认名称,默认为’wallet.json’。
- MaxGetIDSeeds
本节点获取ID时候,使用的seed节点的数量上限。默认值3。
- DBFilesCacheCapacity
数据库使用文件描述符个数,默认值100。