aboutsummaryrefslogtreecommitdiffstats
path: root/eth
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2015-06-27 09:08:50 +0800
committerJeffrey Wilcke <geffobscura@gmail.com>2015-06-30 00:51:48 +0800
commit76821d167acd7da15e13b23beeceb6779138ffe5 (patch)
tree73af5b18546dcb4db62e9e7f24d8bb103cdbfcef /eth
parentfccc7d71eb1e8e655f9bcd9c6d7856b70bbeda36 (diff)
downloaddexon-76821d167acd7da15e13b23beeceb6779138ffe5.tar.gz
dexon-76821d167acd7da15e13b23beeceb6779138ffe5.tar.zst
dexon-76821d167acd7da15e13b23beeceb6779138ffe5.zip
core, eth, rpc: avoid unnecessary block header copying
Diffstat (limited to 'eth')
-rw-r--r--eth/gasprice.go12
-rw-r--r--eth/handler.go2
2 files changed, 7 insertions, 7 deletions
diff --git a/eth/gasprice.go b/eth/gasprice.go
index cd5293691..44202d709 100644
--- a/eth/gasprice.go
+++ b/eth/gasprice.go
@@ -133,20 +133,20 @@ func (self *GasPriceOracle) lowestPrice(block *types.Block) *big.Int {
gasUsed = recepits[len(recepits)-1].CumulativeGasUsed
}
- if new(big.Int).Mul(gasUsed, big.NewInt(100)).Cmp(new(big.Int).Mul(block.Header().GasLimit,
+ if new(big.Int).Mul(gasUsed, big.NewInt(100)).Cmp(new(big.Int).Mul(block.GasLimit(),
big.NewInt(int64(self.eth.GpoFullBlockRatio)))) < 0 {
// block is not full, could have posted a tx with MinGasPrice
return self.eth.GpoMinGasPrice
}
- if len(block.Transactions()) < 1 {
+ txs := block.Transactions()
+ if len(txs) == 0 {
return self.eth.GpoMinGasPrice
}
-
// block is full, find smallest gasPrice
- minPrice := block.Transactions()[0].GasPrice()
- for i := 1; i < len(block.Transactions()); i++ {
- price := block.Transactions()[i].GasPrice()
+ minPrice := txs[0].GasPrice()
+ for i := 1; i < len(txs); i++ {
+ price := txs[i].GasPrice()
if price.Cmp(minPrice) < 0 {
minPrice = price
}
diff --git a/eth/handler.go b/eth/handler.go
index ad88e9c59..278a2bec2 100644
--- a/eth/handler.go
+++ b/eth/handler.go
@@ -93,7 +93,7 @@ func NewProtocolManager(protocolVersion, networkId int, mux *event.TypeMux, txpo
manager.downloader = downloader.New(manager.eventMux, manager.chainman.HasBlock, manager.chainman.GetBlock, manager.chainman.InsertChain, manager.removePeer)
validator := func(block *types.Block, parent *types.Block) error {
- return core.ValidateHeader(pow, block.Header(), parent.Header(), true)
+ return core.ValidateHeader(pow, block.Header(), parent, true)
}
heighter := func() uint64 {
return manager.chainman.CurrentBlock().NumberU64()