core, eth, rpc: avoid unnecessary block header copying
This commit is contained in:
committed by
Jeffrey Wilcke
parent
fccc7d71eb
commit
76821d167a
@ -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
|
||||
}
|
||||
|
@ -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()
|
||||
|
Reference in New Issue
Block a user