node: change package interface (#6540)

This commit is contained in:
Sam Kleinman
2021-06-04 11:36:30 -04:00
committed by GitHub
parent 08b134ddbc
commit 00c284d9d7
11 changed files with 227 additions and 343 deletions
+18 -35
View File
@@ -124,23 +124,15 @@ func startNode(cfg *Config) error {
return err
}
tmcfg, nodeLogger, nodeKey, err := setupNode()
tmcfg, nodeLogger, err := setupNode()
if err != nil {
return fmt.Errorf("failed to setup config: %w", err)
}
pval, err := privval.LoadOrGenFilePV(tmcfg.PrivValidatorKeyFile(), tmcfg.PrivValidatorStateFile())
if err != nil {
return err
}
n, err := node.NewNode(tmcfg,
pval,
*nodeKey,
proxy.NewLocalClientCreator(app),
node.DefaultGenesisDocProviderFunc(tmcfg),
node.DefaultDBProvider,
node.DefaultMetricsProvider(tmcfg.Instrumentation),
n, err := node.New(tmcfg,
nodeLogger,
proxy.NewLocalClientCreator(app),
nil,
)
if err != nil {
return err
@@ -149,18 +141,14 @@ func startNode(cfg *Config) error {
}
func startSeedNode(cfg *Config) error {
tmcfg, nodeLogger, nodeKey, err := setupNode()
tmcfg, nodeLogger, err := setupNode()
if err != nil {
return fmt.Errorf("failed to setup config: %w", err)
}
n, err := node.NewSeedNode(
tmcfg,
node.DefaultDBProvider,
*nodeKey,
node.DefaultGenesisDocProviderFunc(tmcfg),
nodeLogger,
)
tmcfg.Mode = config.ModeSeed
n, err := node.New(tmcfg, nodeLogger, nil, nil)
if err != nil {
return err
}
@@ -168,13 +156,13 @@ func startSeedNode(cfg *Config) error {
}
func startLightNode(cfg *Config) error {
tmcfg, nodeLogger, _, err := setupNode()
tmcfg, nodeLogger, err := setupNode()
if err != nil {
return err
}
dbContext := &node.DBContext{ID: "light", Config: tmcfg}
lightDB, err := node.DefaultDBProvider(dbContext)
dbContext := &config.DBContext{ID: "light", Config: tmcfg}
lightDB, err := config.DefaultDBProvider(dbContext)
if err != nil {
return err
}
@@ -272,31 +260,31 @@ func startSigner(cfg *Config) error {
return nil
}
func setupNode() (*config.Config, log.Logger, *p2p.NodeKey, error) {
func setupNode() (*config.Config, log.Logger, error) {
var tmcfg *config.Config
home := os.Getenv("TMHOME")
if home == "" {
return nil, nil, nil, errors.New("TMHOME not set")
return nil, nil, errors.New("TMHOME not set")
}
viper.AddConfigPath(filepath.Join(home, "config"))
viper.SetConfigName("config")
if err := viper.ReadInConfig(); err != nil {
return nil, nil, nil, err
return nil, nil, err
}
tmcfg = config.DefaultConfig()
if err := viper.Unmarshal(tmcfg); err != nil {
return nil, nil, nil, err
return nil, nil, err
}
tmcfg.SetRoot(home)
if err := tmcfg.ValidateBasic(); err != nil {
return nil, nil, nil, fmt.Errorf("error in config file: %w", err)
return nil, nil, fmt.Errorf("error in config file: %w", err)
}
if tmcfg.LogFormat == config.LogFormatJSON {
@@ -305,17 +293,12 @@ func setupNode() (*config.Config, log.Logger, *p2p.NodeKey, error) {
nodeLogger, err := tmflags.ParseLogLevel(tmcfg.LogLevel, logger, config.DefaultLogLevel)
if err != nil {
return nil, nil, nil, err
return nil, nil, err
}
nodeLogger = nodeLogger.With("module", "main")
nodeKey, err := p2p.LoadOrGenNodeKey(tmcfg.NodeKeyFile())
if err != nil {
return nil, nil, nil, fmt.Errorf("failed to load or gen node key %s: %w", tmcfg.NodeKeyFile(), err)
}
return tmcfg, nodeLogger, &nodeKey, nil
return tmcfg, nodeLogger, nil
}
// rpcEndpoints takes a list of persistent peers and splits them into a list of rpc endpoints