diff options
Diffstat (limited to 'eth/backend.go')
-rw-r--r-- | eth/backend.go | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/eth/backend.go b/eth/backend.go index c1aa28f3c..06c3cbd17 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -42,11 +42,11 @@ type Config struct { ProtocolVersion int NetworkId int - DataDir string - LogFile string - LogLevel int - LogFormat string - VmDebug bool + DataDir string + LogFile string + LogLevel int + LogJSON string + VmDebug bool MaxPeers int Port string @@ -136,7 +136,7 @@ type Ethereum struct { blockSub event.Subscription miner *miner.Miner - logger logger.LogSystem + // logger logger.LogSystem Mining bool DataDir string @@ -147,7 +147,10 @@ type Ethereum struct { func New(config *Config) (*Ethereum, error) { // Boostrap database - servlogsystem := logger.New(config.DataDir, config.LogFile, config.LogLevel, config.LogFormat) + logger.New(config.DataDir, config.LogFile, config.LogLevel) + if len(config.LogJSON) > 0 { + logger.NewJSONsystem(config.DataDir, config.LogJSON) + } newdb := config.NewDB if newdb == nil { @@ -174,12 +177,12 @@ func New(config *Config) (*Ethereum, error) { servlogger.Infof("Protocol Version: %v, Network Id: %v", config.ProtocolVersion, config.NetworkId) eth := &Ethereum{ - shutdownChan: make(chan bool), - blockDb: blockDb, - stateDb: stateDb, - extraDb: extraDb, - eventMux: &event.TypeMux{}, - logger: servlogsystem, + shutdownChan: make(chan bool), + blockDb: blockDb, + stateDb: stateDb, + extraDb: extraDb, + eventMux: &event.TypeMux{}, + // logger: servlogsystem, accountManager: config.AccountManager, DataDir: config.DataDir, version: config.Name, // TODO should separate from Name @@ -195,7 +198,8 @@ func New(config *Config) (*Ethereum, error) { hasBlock := eth.chainManager.HasBlock insertChain := eth.chainManager.InsertChain - eth.blockPool = blockpool.New(hasBlock, insertChain, eth.pow.Verify) + td := eth.chainManager.Td() + eth.blockPool = blockpool.New(hasBlock, insertChain, eth.pow.Verify, eth.EventMux(), td) netprv, err := config.nodeKey() if err != nil { @@ -295,14 +299,15 @@ func (s *Ethereum) StartMining() error { servlogger.Errorf("Cannot start mining without coinbase: %v\n", err) return fmt.Errorf("no coinbase: %v", err) } - s.miner.Start(cb) + s.miner.Start(common.BytesToAddress(cb)) return nil } -func (s *Ethereum) StopMining() { s.miner.Stop() } -func (s *Ethereum) IsMining() bool { return s.miner.Mining() } +func (s *Ethereum) StopMining() { s.miner.Stop() } +func (s *Ethereum) IsMining() bool { return s.miner.Mining() } +func (s *Ethereum) Miner() *miner.Miner { return s.miner } -func (s *Ethereum) Logger() logger.LogSystem { return s.logger } +// 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 } func (s *Ethereum) ChainManager() *core.ChainManager { return s.chainManager } @@ -405,7 +410,7 @@ func (self *Ethereum) txBroadcastLoop() { // automatically stops if unsubscribe for obj := range self.txSub.Chan() { event := obj.(core.TxPreEvent) - self.net.Broadcast("eth", TxMsg, event.Tx.RlpData()) + self.net.Broadcast("eth", TxMsg, []*types.Transaction{event.Tx}) } } @@ -414,7 +419,7 @@ func (self *Ethereum) blockBroadcastLoop() { for obj := range self.blockSub.Chan() { switch ev := obj.(type) { case core.NewMinedBlockEvent: - self.net.Broadcast("eth", NewBlockMsg, ev.Block.RlpData(), ev.Block.Td) + self.net.Broadcast("eth", NewBlockMsg, []interface{}{ev.Block, ev.Block.Td}) } } } |