diff --git a/cmd/tomo/config.go b/cmd/tomo/config.go index 9126e6481..da2772d38 100644 --- a/cmd/tomo/config.go +++ b/cmd/tomo/config.go @@ -129,13 +129,12 @@ func defaultNodeConfig() node.Config { func makeConfigNode(ctx *cli.Context) (*node.Node, tomoConfig) { // Load defaults. cfg := tomoConfig{ - Eth: eth.DefaultConfig, - Shh: whisper.DefaultConfig, - TomoX: tomox.DefaultConfig, - Node: defaultNodeConfig(), - StakeEnable: true, - Verbosity: 3, - NAT: "", + Eth: eth.DefaultConfig, + Shh: whisper.DefaultConfig, + TomoX: tomox.DefaultConfig, + Node: defaultNodeConfig(), + Verbosity: 3, + NAT: "", } // Load config file. if file := ctx.GlobalString(configFileFlag.Name); file != "" { @@ -143,9 +142,7 @@ func makeConfigNode(ctx *cli.Context) (*node.Node, tomoConfig) { utils.Fatalf("%v", err) } } - if ctx.GlobalIsSet(utils.StakingEnabledFlag.Name) { - cfg.StakeEnable = ctx.GlobalBool(utils.StakingEnabledFlag.Name) - } + if !ctx.GlobalIsSet(debug.VerbosityFlag.Name) { debug.Glogger.Verbosity(log.Lvl(cfg.Verbosity)) } diff --git a/cmd/tomo/main.go b/cmd/tomo/main.go index 0bd21952a..41db964b3 100644 --- a/cmd/tomo/main.go +++ b/cmd/tomo/main.go @@ -127,7 +127,6 @@ var ( utils.AnnounceTxsFlag, utils.StoreRewardFlag, utils.RollbackFlag, - utils.TomoSlaveModeFlag, } rpcFlags = []cli.Flag{ @@ -296,16 +295,16 @@ func startNode(ctx *cli.Context, stack *node.Node, cfg tomoConfig) { if _, ok := ethereum.Engine().(*posv.Posv); ok { go func() { started := false - slaveMode := ctx.GlobalIsSet(utils.TomoSlaveModeFlag.Name) - ok, err := ethereum.ValidateMasternode() - if err != nil { - utils.Fatalf("Can't verify masternode permission: %v", err) - } - if ok { - if slaveMode { - log.Info("Masternode slave mode found.") - started = false - } else { + miningEnable := ctx.GlobalIsSet(utils.StakingEnabledFlag.Name) + + defer close(core.CheckpointCh) + if miningEnable { + log.Info("Staking mode enabled.") + ok, err := ethereum.ValidateMasternode() + if err != nil { + utils.Fatalf("Can't verify masternode permission: %v", err) + } + if ok { log.Info("Masternode found. Enabling staking mode...") // Use a reduced number of threads if requested if threads := ctx.GlobalInt(utils.StakerThreadsFlag.Name); threads > 0 { @@ -324,26 +323,21 @@ func startNode(ctx *cli.Context, stack *node.Node, cfg tomoConfig) { started = true log.Info("Enabled staking node!!!") } - } - defer close(core.CheckpointCh) - for range core.CheckpointCh { - log.Info("Checkpoint!!! It's time to reconcile node's state...") - ok, err := ethereum.ValidateMasternode() - if err != nil { - utils.Fatalf("Can't verify masternode permission: %v", err) - } - if !ok { - if started { - log.Info("Only masternode can propose and verify blocks. Cancelling staking on this node...") - ethereum.StopStaking() - started = false - log.Info("Cancelled mining mode!!!") + + for range core.CheckpointCh { + log.Info("Checkpoint!!! It's time to reconcile node's state...") + ok, err := ethereum.ValidateMasternode() + if err != nil { + utils.Fatalf("Can't verify masternode permission: %v", err) } - } else if !started { - if slaveMode { - log.Info("Masternode slave mode found.") - started = false - } else { + if !ok { + if started { + log.Info("Only masternode can propose and verify blocks. Cancelling staking on this node...") + ethereum.StopStaking() + started = false + log.Info("Cancelled mining mode!!!") + } + } else if !started { log.Info("Masternode found. Enabling staking mode...") // Use a reduced number of threads if requested if threads := ctx.GlobalInt(utils.StakerThreadsFlag.Name); threads > 0 { @@ -363,6 +357,11 @@ func startNode(ctx *cli.Context, stack *node.Node, cfg tomoConfig) { log.Info("Enabled staking node!!!") } } + } else { + log.Info("Staking mode disabled.") + for range core.CheckpointCh { + log.Info("Checkpoint!!! It's time to reconcile node's state...") + } } }() } diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index b1f0f9276..e3445a986 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -556,10 +556,6 @@ var ( Name: "tomox.dbReplicaSetName", Usage: "ReplicaSetName if Master-Slave is setup", } - TomoSlaveModeFlag = cli.BoolFlag{ - Name: "slave", - Usage: "Enable slave mode", - } ) // MakeDataDir retrieves the currently requested data directory, terminating diff --git a/eth/backend.go b/eth/backend.go index d7c5bc491..36e552efe 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -284,8 +284,10 @@ func New(ctx *node.ServiceContext, config *Config, tomoXServ *tomox.TomoX, lendi return block, false, nil } - eth.protocolManager.fetcher.SetSignHook(signHook) - eth.protocolManager.fetcher.SetAppendM2HeaderHook(appendM2HeaderHook) + if ctx.GetConfig().KeyStoreDir != "" { + eth.protocolManager.fetcher.SetSignHook(signHook) + eth.protocolManager.fetcher.SetAppendM2HeaderHook(appendM2HeaderHook) + } // Hook prepares validators M2 for the current epoch at checkpoint block c.HookValidator = func(header *types.Header, signers []common.Address) ([]byte, error) {