From 7db7bbe464f9fb8465bf18c8c29448ac401bf74f Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Mon, 1 May 2017 22:14:37 -0400 Subject: [PATCH] node: ConfigFromViper --- cmd/tendermint/commands/replay.go | 4 ++-- cmd/tendermint/commands/root.go | 6 +----- node/node.go | 24 ++++++++++++++---------- node/node_test.go | 3 ++- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/cmd/tendermint/commands/replay.go b/cmd/tendermint/commands/replay.go index 611a96a63..9b3fbbae1 100644 --- a/cmd/tendermint/commands/replay.go +++ b/cmd/tendermint/commands/replay.go @@ -11,7 +11,7 @@ var replayCmd = &cobra.Command{ Short: "Replay messages from WAL", Run: func(cmd *cobra.Command, args []string) { config := getConfig() - consensus.RunReplayFile(config.Config, config.Consensus, false) + consensus.RunReplayFile(&config.Config, config.Consensus, false) }, } @@ -20,7 +20,7 @@ var replayConsoleCmd = &cobra.Command{ Short: "Replay messages from WAL in a console", Run: func(cmd *cobra.Command, args []string) { config := getConfig() - consensus.RunReplayFile(config.Config, config.Consensus, true) + consensus.RunReplayFile(&config.Config, config.Consensus, true) }, } diff --git a/cmd/tendermint/commands/root.go b/cmd/tendermint/commands/root.go index 515ef9dc6..24ff6281e 100644 --- a/cmd/tendermint/commands/root.go +++ b/cmd/tendermint/commands/root.go @@ -23,11 +23,7 @@ func init() { // unmarshal viper into the Tendermint config func getConfig() *node.Config { - config := new(node.Config) - if err := viperConfig.Unmarshal(config); err != nil { - panic(err) - } - return config + return node.ConfigFromViper(viperConfig) } //global flag diff --git a/node/node.go b/node/node.go index 742c9984c..e4f945ee3 100644 --- a/node/node.go +++ b/node/node.go @@ -37,23 +37,31 @@ import ( type Config struct { // Top level options use an anonymous struct - *cfg.Config `mapstructure:",squash"` + cfg.Config `mapstructure:",squash"` // Options for services - P2P *p2p.NetworkConfig `mapstructure:"p2p"` - Mempool *mempl.Config `mapstructure:"mempool"` - Consensus *consensus.Config `mapstructure:"consensus"` + P2P *p2p.Config `mapstructure:"p2p"` + Mempool *mempl.Config `mapstructure:"mempool"` + Consensus *consensus.Config `mapstructure:"consensus"` } func NewDefaultConfig(rootDir string) *Config { return &Config{ - Config: cfg.NewDefaultConfig(rootDir), + Config: *cfg.NewDefaultConfig(rootDir), P2P: p2p.NewDefaultConfig(rootDir), Mempool: mempl.NewDefaultConfig(rootDir), Consensus: consensus.NewDefaultConfig(rootDir), } } +func ConfigFromViper(viperConfig *viper.Viper) *Config { + tmConfig := new(Config) + if err := viperConfig.Unmarshal(tmConfig); err != nil { + panic(err) + } + return tmConfig +} + type Node struct { cmn.BaseService @@ -156,11 +164,7 @@ func NewNode(config *Config, privValidator *types.PrivValidator, clientCreator p } consensusReactor := consensus.NewConsensusReactor(consensusState, fastSync) - // Make p2p network switch - // TODO : p2pConfig := config.P2P - p2pConfig := viper.New() - - sw := p2p.NewSwitch(p2pConfig) + sw := p2p.NewSwitch(config.P2P) sw.AddReactor("MEMPOOL", mempoolReactor) sw.AddReactor("BLOCKCHAIN", bcReactor) sw.AddReactor("CONSENSUS", consensusReactor) diff --git a/node/node_test.go b/node/node_test.go index 2ab8e8dc6..ba9ac7234 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -8,7 +8,8 @@ import ( ) func TestNodeStartStop(t *testing.T) { - config := tendermint_test.ResetConfig("node_node_test") + viperConfig := tendermint_test.ResetConfig("node_node_test") + config := ConfigFromViper(viperConfig) // Create & start node n := NewNodeDefault(config)