aboutsummaryrefslogtreecommitdiffstats
path: root/eth
diff options
context:
space:
mode:
Diffstat (limited to 'eth')
-rw-r--r--eth/backend.go12
-rw-r--r--eth/downloader/downloader.go4
-rw-r--r--eth/sync.go3
3 files changed, 10 insertions, 9 deletions
diff --git a/eth/backend.go b/eth/backend.go
index cdbe35b26..6be871138 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -267,7 +267,7 @@ func New(config *Config) (*Ethereum, error) {
eth.txPool = core.NewTxPool(eth.EventMux(), eth.chainManager.State, eth.chainManager.GasLimit)
eth.blockProcessor = core.NewBlockProcessor(stateDb, extraDb, eth.pow, eth.txPool, eth.chainManager, eth.EventMux())
eth.chainManager.SetProcessor(eth.blockProcessor)
- eth.miner = miner.New(eth, eth.pow, config.MinerThreads)
+ eth.miner = miner.New(eth, eth.pow)
eth.miner.SetGasPrice(config.GasPrice)
eth.protocolManager = NewProtocolManager(config.ProtocolVersion, config.NetworkId, eth.eventMux, eth.txPool, eth.chainManager, eth.downloader)
@@ -368,7 +368,7 @@ func (s *Ethereum) ResetWithGenesisBlock(gb *types.Block) {
s.chainManager.ResetWithGenesisBlock(gb)
}
-func (s *Ethereum) StartMining() error {
+func (s *Ethereum) StartMining(threads int) error {
eb, err := s.Etherbase()
if err != nil {
err = fmt.Errorf("Cannot start mining without etherbase address: %v", err)
@@ -376,7 +376,7 @@ func (s *Ethereum) StartMining() error {
return err
}
- go s.miner.Start(eb)
+ go s.miner.Start(eb, threads)
return nil
}
@@ -461,13 +461,13 @@ done:
case <-ticker.C:
// don't change the order of database flushes
if err := s.extraDb.Flush(); err != nil {
- glog.Fatalf("fatal error: flush extraDb: %v\n", err)
+ glog.Fatalf("fatal error: flush extraDb: %v (Restart your node. We are aware of this issue)\n", err)
}
if err := s.stateDb.Flush(); err != nil {
- glog.Fatalf("fatal error: flush stateDb: %v\n", err)
+ glog.Fatalf("fatal error: flush stateDb: %v (Restart your node. We are aware of this issue)\n", err)
}
if err := s.blockDb.Flush(); err != nil {
- glog.Fatalf("fatal error: flush blockDb: %v\n", err)
+ glog.Fatalf("fatal error: flush blockDb: %v (Restart your node. We are aware of this issue)\n", err)
}
case <-s.shutdownChan:
break done
diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go
index 4c7ebe646..577152a21 100644
--- a/eth/downloader/downloader.go
+++ b/eth/downloader/downloader.go
@@ -28,7 +28,7 @@ var (
errUnknownPeer = errors.New("peer's unknown or unhealthy")
errBadPeer = errors.New("action from bad peer ignored")
errNoPeers = errors.New("no peers to keep download active")
- errPendingQueue = errors.New("pending items in queue")
+ ErrPendingQueue = errors.New("pending items in queue")
ErrTimeout = errors.New("timeout")
errEmptyHashSet = errors.New("empty hash set by peer")
errPeersUnavailable = errors.New("no peers available or all peers tried for block download process")
@@ -129,7 +129,7 @@ func (d *Downloader) Synchronise(id string, hash common.Hash) error {
// Abort if the queue still contains some leftover data
if _, cached := d.queue.Size(); cached > 0 && d.queue.GetHeadBlock() != nil {
- return errPendingQueue
+ return ErrPendingQueue
}
// Reset the queue and peer set to clean any internal leftover state
d.queue.Reset()
diff --git a/eth/sync.go b/eth/sync.go
index d955eaa50..00b571782 100644
--- a/eth/sync.go
+++ b/eth/sync.go
@@ -98,7 +98,8 @@ func (pm *ProtocolManager) synchronise(peer *peer) {
case downloader.ErrTimeout:
glog.V(logger.Debug).Infof("Removing peer %v due to sync timeout", peer.id)
pm.removePeer(peer)
-
+ case downloader.ErrPendingQueue:
+ glog.V(logger.Debug).Infoln("Synchronisation aborted:", err)
default:
glog.V(logger.Warn).Infof("Synchronisation failed: %v", err)
}