Implement CalcGasPrice for ethereum/go-ethereum#77
This commit is contained in:
parent
2e6cf42011
commit
753f749423
|
@ -154,6 +154,35 @@ func (block *Block) PayFee(addr []byte, fee *big.Int) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func (block *Block) CalcGasLimit(parent *Block) *big.Int {
|
||||
if block.Number == big.NewInt(0) {
|
||||
return ethutil.BigPow(10, 6)
|
||||
}
|
||||
previous := new(big.Int).Mul(big.NewInt(1023), parent.GasLimit)
|
||||
current := new(big.Rat).Mul(new(big.Rat).SetInt(block.GasUsed), big.NewRat(6, 5))
|
||||
curInt := new(big.Int).Div(current.Num(), current.Denom())
|
||||
|
||||
result := new(big.Int).Add(previous, curInt)
|
||||
result.Div(result, big.NewInt(1024))
|
||||
|
||||
min := ethutil.BigPow(10, 4)
|
||||
|
||||
return ethutil.BigMax(min, result)
|
||||
/*
|
||||
base := new(big.Int)
|
||||
base2 := new(big.Int)
|
||||
parentGL := bc.CurrentBlock.GasLimit
|
||||
parentUsed := bc.CurrentBlock.GasUsed
|
||||
|
||||
base.Mul(parentGL, big.NewInt(1024-1))
|
||||
base2.Mul(parentUsed, big.NewInt(6))
|
||||
base2.Div(base2, big.NewInt(5))
|
||||
base.Add(base, base2)
|
||||
base.Div(base, big.NewInt(1024))
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
func (block *Block) BlockInfo() BlockInfo {
|
||||
bi := BlockInfo{}
|
||||
data, _ := ethutil.Config.Db.Get(append(block.Hash(), []byte("Info")...))
|
||||
|
|
Loading…
Reference in New Issue