aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-02 23:32:02 +0800
committerobscuren <geffobscura@gmail.com>2015-03-02 23:32:02 +0800
commitb383ff0b96a1cf3df0b56f13b8d303ae4d4977ad (patch)
tree6af5b54d74402e2c31ea083981d215c0701832f4 /core
parent73c52d1677ba526385f1b223ef48f3a26091fe00 (diff)
downloadgo-tangerine-b383ff0b96a1cf3df0b56f13b8d303ae4d4977ad.tar.gz
go-tangerine-b383ff0b96a1cf3df0b56f13b8d303ae4d4977ad.tar.zst
go-tangerine-b383ff0b96a1cf3df0b56f13b8d303ae4d4977ad.zip
New gas prices model
Diffstat (limited to 'core')
-rw-r--r--core/chain_manager.go10
-rw-r--r--core/state_transition.go12
2 files changed, 15 insertions, 7 deletions
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 {