From b383ff0b96a1cf3df0b56f13b8d303ae4d4977ad Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 2 Mar 2015 16:32:02 +0100 Subject: New gas prices model --- core/chain_manager.go | 10 ++++++---- core/state_transition.go | 12 +++++++++--- 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'core') diff --git a/core/chain_manager.go b/core/chain_manager.go index 959bfd398..2f6c36382 100644 --- a/core/chain_manager.go +++ b/core/chain_manager.go @@ -28,11 +28,13 @@ type StateQuery interface { func CalcDifficulty(block, parent *types.Block) *big.Int { diff := new(big.Int) - adjust := new(big.Int).Rsh(parent.Difficulty(), 10) - if block.Time() >= parent.Time()+8 { - diff.Sub(parent.Difficulty(), adjust) - } else { + //adjust := new(big.Int).Rsh(parent.Difficulty(), 10) + //if block.Time() >= parent.Time()+8 { + adjust := new(big.Int).Div(parent.Difficulty(), big.NewInt(2048)) + if (block.Time() - parent.Time()) < 8 { diff.Add(parent.Difficulty(), adjust) + } else { + diff.Sub(parent.Difficulty(), adjust) } return diff diff --git a/core/state_transition.go b/core/state_transition.go index 7331fdd4a..8626504f9 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -12,6 +12,12 @@ import ( const tryJit = false +var ( + GasTx = big.NewInt(21000) + GasTxNonZeroByte = big.NewInt(37) + GasTxZeroByte = big.NewInt(2) +) + /* * The State transitioning model * @@ -170,7 +176,7 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) { //sender.Nonce += 1 // Transaction gas - if err = self.UseGas(vm.GasTx); err != nil { + if err = self.UseGas(GasTx); err != nil { return } @@ -178,9 +184,9 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) { var dgas int64 for _, byt := range self.data { if byt != 0 { - dgas += vm.GasData.Int64() + dgas += GasTxNonZeroByte.Int64() } else { - dgas += 1 // This is 1/5. If GasData changes this fails + dgas += GasTxZeroByte.Int64() } } if err = self.UseGas(big.NewInt(dgas)); err != nil { -- cgit