From 7233837a1cc636a8ac60a69f560373ef2e2e50ef Mon Sep 17 00:00:00 2001 From: rjl493456442 Date: Fri, 19 Apr 2019 17:00:55 +0800 Subject: [PATCH] cmd, miner: revert noadvance flag The reason for this is: if the transaction execution is even longer than block time, then this kind of transactions is DoS attack. --- cmd/geth/main.go | 1 - cmd/geth/usage.go | 1 - cmd/utils/flags.go | 7 ------- miner/miner.go | 1 - miner/worker.go | 8 ++------ 5 files changed, 2 insertions(+), 16 deletions(-) diff --git a/cmd/geth/main.go b/cmd/geth/main.go index fdbbc27b67..4f3849a41b 100644 --- a/cmd/geth/main.go +++ b/cmd/geth/main.go @@ -121,7 +121,6 @@ var ( utils.MinerLegacyExtraDataFlag, utils.MinerRecommitIntervalFlag, utils.MinerNoVerfiyFlag, - utils.MinerNoAdvanceFlag, utils.NATFlag, utils.NoDiscoverFlag, utils.DiscoveryV5Flag, diff --git a/cmd/geth/usage.go b/cmd/geth/usage.go index 5d4b94d964..7ec1ab03f5 100644 --- a/cmd/geth/usage.go +++ b/cmd/geth/usage.go @@ -203,7 +203,6 @@ var AppHelpFlagGroups = []flagGroup{ utils.MinerExtraDataFlag, utils.MinerRecommitIntervalFlag, utils.MinerNoVerfiyFlag, - utils.MinerNoAdvanceFlag, }, }, { diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 8e4d7a3170..ee09c79fac 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -425,10 +425,6 @@ var ( Name: "miner.noverify", Usage: "Disable remote sealing verification", } - MinerNoAdvanceFlag = cli.BoolFlag{ - Name: "miner.noadvance", - Usage: "Disable advance sealing on an empty block", - } // Account settings UnlockedAccountFlag = cli.StringFlag{ Name: "unlock", @@ -1267,9 +1263,6 @@ func setMiner(ctx *cli.Context, cfg *miner.Config) { if ctx.GlobalIsSet(MinerNoVerfiyFlag.Name) { cfg.Noverify = ctx.Bool(MinerNoVerfiyFlag.Name) } - if ctx.GlobalIsSet(MinerNoAdvanceFlag.Name) { - cfg.NoAdvance = ctx.Bool(MinerNoAdvanceFlag.Name) - } } func setWhitelist(ctx *cli.Context, cfg *eth.Config) { diff --git a/miner/miner.go b/miner/miner.go index 48cbef8c64..ab97b0c038 100644 --- a/miner/miner.go +++ b/miner/miner.go @@ -51,7 +51,6 @@ type Config struct { GasPrice *big.Int // Minimum gas price for mining a transaction Recommit time.Duration // The time interval for miner to re-create mining work. Noverify bool // Disable remote mining solution verification(only useful in ethash). - NoAdvance bool // Disable advance sealing on empty block. } // Miner creates blocks and searches for proof-of-work values. diff --git a/miner/worker.go b/miner/worker.go index ffe56a460c..802c7e365e 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -214,7 +214,7 @@ func newWorker(config *Config, chainConfig *params.ChainConfig, engine consensus } go worker.mainLoop() - go worker.newWorkLoop(recommit, worker.config.NoAdvance) + go worker.newWorkLoop(recommit) go worker.resultLoop() go worker.taskLoop() @@ -285,7 +285,7 @@ func (w *worker) close() { } // newWorkLoop is a standalone goroutine to submit new mining work upon received events. -func (w *worker) newWorkLoop(recommit time.Duration, noAdvance bool) { +func (w *worker) newWorkLoop(recommit time.Duration) { var ( interrupt *int32 minRecommit = recommit // minimal resubmit interval specified by user. @@ -300,10 +300,6 @@ func (w *worker) newWorkLoop(recommit time.Duration, noAdvance bool) { if interrupt != nil { atomic.StoreInt32(interrupt, s) } - // Disable advance sealing explicitly if user require. - if noAdvance { - noempty = true - } interrupt = new(int32) w.newWorkCh <- &newWorkReq{interrupt: interrupt, noempty: noempty, timestamp: timestamp} timer.Reset(recommit)