diff options
author | Péter Szilágyi <peterke@gmail.com> | 2017-05-29 16:37:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-29 16:37:26 +0800 |
commit | b865fad888016a1777b6d6ea66061799cf12c135 (patch) | |
tree | d7dadeb5c783e52e9c43885907397531e9fc0a8b /eth/backend.go | |
parent | afb17cf071818cb7fd8954213db46f7d1411f273 (diff) | |
parent | c2a494c743e6fd32c5f14415d028432b051f8ea1 (diff) | |
download | go-tangerine-b865fad888016a1777b6d6ea66061799cf12c135.tar go-tangerine-b865fad888016a1777b6d6ea66061799cf12c135.tar.gz go-tangerine-b865fad888016a1777b6d6ea66061799cf12c135.tar.bz2 go-tangerine-b865fad888016a1777b6d6ea66061799cf12c135.tar.lz go-tangerine-b865fad888016a1777b6d6ea66061799cf12c135.tar.xz go-tangerine-b865fad888016a1777b6d6ea66061799cf12c135.tar.zst go-tangerine-b865fad888016a1777b6d6ea66061799cf12c135.zip |
Merge pull request #14537 from karalabe/setgasprice-durning-nomine
eth: update default gas price when not mining too
Diffstat (limited to 'eth/backend.go')
-rw-r--r-- | eth/backend.go | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/eth/backend.go b/eth/backend.go index 7c63fa51d..dc813ed0d 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -76,14 +76,14 @@ type Ethereum struct { ApiBackend *EthApiBackend - miner *miner.Miner - gasPrice *big.Int - Mining bool - MinerThreads int - etherbase common.Address + miner *miner.Miner + gasPrice *big.Int + etherbase common.Address networkId uint64 netRPCService *ethapi.PublicNetAPI + + lock sync.RWMutex // Protects the variadic fields (e.g. gas price and etherbase) } func (s *Ethereum) AddLesServer(ls LesServer) { @@ -121,8 +121,8 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { shutdownChan: make(chan bool), stopDbUpgrade: stopDbUpgrade, networkId: config.NetworkId, + gasPrice: config.GasPrice, etherbase: config.Etherbase, - MinerThreads: config.MinerThreads, } if err := addMipmapBloomBins(chainDb); err != nil { @@ -169,7 +169,6 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { } eth.miner = miner.New(eth, eth.chainConfig, eth.EventMux(), eth.engine) - eth.gasPrice = config.GasPrice eth.miner.SetExtra(makeExtraData(config.ExtraData)) eth.ApiBackend = &EthApiBackend{eth, nil} @@ -295,8 +294,12 @@ func (s *Ethereum) ResetWithGenesisBlock(gb *types.Block) { } func (s *Ethereum) Etherbase() (eb common.Address, err error) { - if s.etherbase != (common.Address{}) { - return s.etherbase, nil + s.lock.RLock() + etherbase := s.etherbase + s.lock.RUnlock() + + if etherbase != (common.Address{}) { + return etherbase, nil } if wallets := s.AccountManager().Wallets(); len(wallets) > 0 { if accounts := wallets[0].Accounts(); len(accounts) > 0 { @@ -308,7 +311,10 @@ func (s *Ethereum) Etherbase() (eb common.Address, err error) { // set in js console via admin interface or wrapper from cli flags func (self *Ethereum) SetEtherbase(etherbase common.Address) { + self.lock.Lock() self.etherbase = etherbase + self.lock.Unlock() + self.miner.SetEtherbase(etherbase) } |