aboutsummaryrefslogtreecommitdiffstats
path: root/eth/backend.go
diff options
context:
space:
mode:
Diffstat (limited to 'eth/backend.go')
-rw-r--r--eth/backend.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/eth/backend.go b/eth/backend.go
index df5460201..6c3ccb9b9 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -22,6 +22,7 @@ import (
"math/big"
"regexp"
"sync"
+ "sync/atomic"
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/common"
@@ -326,12 +327,19 @@ func (self *Ethereum) SetEtherbase(etherbase common.Address) {
self.miner.SetEtherbase(etherbase)
}
-func (s *Ethereum) StartMining() error {
+func (s *Ethereum) StartMining(local bool) error {
eb, err := s.Etherbase()
if err != nil {
log.Error("Cannot start mining without etherbase", "err", err)
return fmt.Errorf("etherbase missing: %v", err)
}
+ if local {
+ // If local (CPU) mining is started, we can disable the transaction rejection
+ // mechanism introduced to speed sync times. CPU mining on mainnet is ludicrous
+ // so noone will ever hit this path, whereas marking sync done on CPU mining
+ // will ensure that private networks work in single miner mode too.
+ atomic.StoreUint32(&s.protocolManager.acceptTxs, 1)
+ }
go s.miner.Start(eb)
return nil
}