DefaultNewNode returns a Tendermint node with default settings for the PrivValidator, ClientCreator, GenesisDoc, and DBProvider. It implements NodeProvider.
(config *cfg.Config, logger log.Logger)
| 98 | // PrivValidator, ClientCreator, GenesisDoc, and DBProvider. |
| 99 | // It implements NodeProvider. |
| 100 | func DefaultNewNode(config *cfg.Config, logger log.Logger) (*Node, error) { |
| 101 | nodeKey, err := p2p.LoadOrGenNodeKey(config.NodeKeyFile()) |
| 102 | if err != nil { |
| 103 | return nil, fmt.Errorf("failed to load or gen node key %s: %w", config.NodeKeyFile(), err) |
| 104 | } |
| 105 | |
| 106 | return NewNode(config, |
| 107 | privval.LoadOrGenFilePV(config.PrivValidatorKeyFile(), config.PrivValidatorStateFile()), |
| 108 | nodeKey, |
| 109 | proxy.DefaultClientCreator(config.ProxyApp, config.ABCI, config.DBDir()), |
| 110 | DefaultGenesisDocProviderFunc(config), |
| 111 | DefaultDBProvider, |
| 112 | DefaultMetricsProvider(config.Instrumentation), |
| 113 | logger, |
| 114 | ) |
| 115 | } |
| 116 | |
| 117 | // MetricsProvider returns a consensus, p2p and mempool Metrics. |
| 118 | type MetricsProvider func(chainID string) (*cs.Metrics, *p2p.Metrics, *mempl.Metrics, *sm.Metrics) |