diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-12 07:26:40 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-12 07:26:40 +0800 |
commit | 7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad (patch) | |
tree | be71b38f179f61b1941771a0ecaa2555105acc24 /eth | |
parent | 70f6f2af07b3f3a4d848190525e50f3327acb2c7 (diff) | |
parent | 9fb52c517beda2422920eb5b265a0f714d59c39a (diff) | |
download | dexon-7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad.tar dexon-7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad.tar.gz dexon-7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad.tar.bz2 dexon-7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad.tar.lz dexon-7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad.tar.xz dexon-7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad.tar.zst dexon-7ee5cb0a81f9ccc0efec2a5bf830c7566f3289ad.zip |
Merge branch 'develop' into rpcfrontier
Diffstat (limited to 'eth')
-rw-r--r-- | eth/backend.go | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/eth/backend.go b/eth/backend.go index 9e365161d..9c497a586 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -166,18 +166,13 @@ func New(config *Config) (*Ethereum, error) { DataDir: config.DataDir, } - cb, err := eth.accountManager.Coinbase() - if err != nil { - return nil, err - } - eth.chainManager = core.NewChainManager(blockDb, stateDb, eth.EventMux()) pow := ethash.New(eth.chainManager) eth.txPool = core.NewTxPool(eth.EventMux()) eth.blockProcessor = core.NewBlockProcessor(stateDb, pow, eth.txPool, eth.chainManager, eth.EventMux()) eth.chainManager.SetProcessor(eth.blockProcessor) eth.whisper = whisper.New() - eth.miner = miner.New(cb, eth, pow, config.MinerThreads) + eth.miner = miner.New(eth, pow, config.MinerThreads) hasBlock := eth.chainManager.HasBlock insertChain := eth.chainManager.InsertChain @@ -211,6 +206,19 @@ func New(config *Config) (*Ethereum, error) { return eth, nil } +func (s *Ethereum) StartMining() error { + cb, err := s.accountManager.Coinbase() + if err != nil { + servlogger.Errorf("Cannot start mining without coinbase: %v\n", err) + return fmt.Errorf("no coinbase: %v", err) + } + s.miner.Start(cb) + return nil +} + +func (s *Ethereum) StopMining() { s.miner.Stop() } +func (s *Ethereum) IsMining() bool { return s.miner.Mining() } + func (s *Ethereum) Logger() logger.LogSystem { return s.logger } func (s *Ethereum) Name() string { return s.net.Name } func (s *Ethereum) AccountManager() *accounts.Manager { return s.accountManager } @@ -222,7 +230,6 @@ func (s *Ethereum) Whisper() *whisper.Whisper { return s.whisper } func (s *Ethereum) EventMux() *event.TypeMux { return s.eventMux } func (s *Ethereum) BlockDb() ethutil.Database { return s.blockDb } func (s *Ethereum) StateDb() ethutil.Database { return s.stateDb } -func (s *Ethereum) Miner() *miner.Miner { return s.miner } func (s *Ethereum) IsListening() bool { return true } // Always listening func (s *Ethereum) PeerCount() int { return s.net.PeerCount() } func (s *Ethereum) Peers() []*p2p.Peer { return s.net.Peers() } @@ -261,7 +268,7 @@ func (s *Ethereum) Start() error { } func (s *Ethereum) StartForTest() { - jsonlogger.LogJson(&logger.LogStarting{ + jsonlogger.LogJson(&logger.LogStarting{ ClientString: s.net.Name, ProtocolVersion: ProtocolVersion, }) |