diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-04-07 22:22:06 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2017-04-07 22:22:06 +0800 |
commit | b801be99d47ba09121a3e7d14aa028f828525b61 (patch) | |
tree | ffa8ffe28b6e7539cfd9baa6aa0b3c48522b91fc /consensus | |
parent | cc13d576f07fb6803e09fb42880591a67b8b0ef6 (diff) | |
download | dexon-b801be99d47ba09121a3e7d14aa028f828525b61.tar.gz dexon-b801be99d47ba09121a3e7d14aa028f828525b61.tar.zst dexon-b801be99d47ba09121a3e7d14aa028f828525b61.zip |
consensus, eth: don't CPU mine by default during remote mining
Diffstat (limited to 'consensus')
-rw-r--r-- | consensus/ethash/ethash.go | 9 | ||||
-rw-r--r-- | consensus/ethash/sealer.go | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/consensus/ethash/ethash.go b/consensus/ethash/ethash.go index aa5b2d8a0..d284e7b00 100644 --- a/consensus/ethash/ethash.go +++ b/consensus/ethash/ethash.go @@ -555,11 +555,18 @@ func (ethash *Ethash) Threads() int { // SetThreads updates the number of mining threads currently enabled. Calling // this method does not start mining, only sets the thread count. If zero is -// specified, the miner will use all cores of the machine. +// specified, the miner will use all cores of the machine. Setting a thread +// count below zero is allowed and will cause the miner to idle, without any +// work being done. func (ethash *Ethash) SetThreads(threads int) { ethash.lock.Lock() defer ethash.lock.Unlock() + // If we're running a shared PoW, set the thread count on that instead + if ethash.shared != nil { + ethash.shared.SetThreads(threads) + return + } // Update the threads and ping any running seal to pull in any changes ethash.threads = threads select { diff --git a/consensus/ethash/sealer.go b/consensus/ethash/sealer.go index 9a000ed31..784e8f649 100644 --- a/consensus/ethash/sealer.go +++ b/consensus/ethash/sealer.go @@ -61,6 +61,9 @@ func (ethash *Ethash) Seal(chain consensus.ChainReader, block *types.Block, stop if threads == 0 { threads = runtime.NumCPU() } + if threads < 0 { + threads = 0 // Allows disabling local mining without extra logic around local/remote + } var pend sync.WaitGroup for i := 0; i < threads; i++ { pend.Add(1) |