diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 52030c76ea..58b470e6b5 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -149,7 +149,7 @@ var ( GasPriceFlag = cli.StringFlag{ Name: "gasprice", Usage: "Sets the minimal gasprice when mining transactions", - Value: new(big.Int).Mul(big.NewInt(500), common.Shannon).String(), + Value: new(big.Int).Mul(big.NewInt(50), common.Shannon).String(), } UnlockedAccountFlag = cli.StringFlag{ @@ -309,12 +309,12 @@ var ( GpoMinGasPriceFlag = cli.StringFlag{ Name: "gpomin", Usage: "Minimum suggested gas price", - Value: new(big.Int).Mul(big.NewInt(1), common.Szabo).String(), + Value: new(big.Int).Mul(big.NewInt(50), common.Shannon).String(), } GpoMaxGasPriceFlag = cli.StringFlag{ Name: "gpomax", Usage: "Maximum suggested gas price", - Value: new(big.Int).Mul(big.NewInt(100), common.Szabo).String(), + Value: new(big.Int).Mul(big.NewInt(100), common.Shannon).String(), } GpoFullBlockRatioFlag = cli.IntFlag{ Name: "gpofull", diff --git a/core/chain_util.go b/core/chain_util.go index 326bf13fb2..f8dd4c1d7d 100644 --- a/core/chain_util.go +++ b/core/chain_util.go @@ -69,12 +69,27 @@ func CalcTD(block, parent *types.Block) *big.Int { // CalcGasLimit computes the gas limit of the next block after parent. // The result may be modified by the caller. +// This is miner strategy, not consensus protocol. func CalcGasLimit(parent *types.Block) *big.Int { - decay := new(big.Int).Div(parent.GasLimit(), params.GasLimitBoundDivisor) + // contrib = (parentGasUsed * 3 / 2) / 1024 contrib := new(big.Int).Mul(parent.GasUsed(), big.NewInt(3)) contrib = contrib.Div(contrib, big.NewInt(2)) contrib = contrib.Div(contrib, params.GasLimitBoundDivisor) + // decay = parentGasLimit / 1024 -1 + decay := new(big.Int).Div(parent.GasLimit(), params.GasLimitBoundDivisor) + decay.Sub(decay, big.NewInt(1)) + + /* + strategy: gasLimit of block-to-mine is set depending on parent's + gasUsed value. if parentGasUsed > parentGasLimit * (2/3) then we + increase it, otherwise lower it (or leave it unchanged if it's right + at that usage) the amount increased/decreased depends on how far away + from parentGasLimit * (2/3) parentGasUsed is. + + however, if we're below the target (GenesisGasLimit) we increase the + limit as much as we can (parentGasLimit / 1024 -1) + */ gl := new(big.Int).Sub(parent.GasLimit(), decay) gl = gl.Add(gl, contrib) gl = gl.Add(gl, big.NewInt(1)) diff --git a/params/protocol_params.go b/params/protocol_params.go index b1a6757b19..dcc17e05d7 100755 --- a/params/protocol_params.go +++ b/params/protocol_params.go @@ -39,8 +39,8 @@ var ( EcrecoverGas = big.NewInt(3000) // Sha256WordGas = big.NewInt(12) // - MinGasLimit = big.NewInt(5000) // Minimum the gas limit may ever be. - GenesisGasLimit = big.NewInt(5000) // Gas limit of the Genesis block. + MinGasLimit = big.NewInt(5000) // Minimum the gas limit may ever be. + GenesisGasLimit = big.NewInt(3141592) // Gas limit of the Genesis block. Sha3Gas = big.NewInt(30) // Once per SHA3 operation. Sha256Gas = big.NewInt(60) //