Merge pull request #1528 from obscuren/reduce-extra-data
params: reduce extra data to 32 bytes & target block time
This commit is contained in:
commit
8a5ea466e4
|
@ -45,6 +45,7 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/p2p"
|
"github.com/ethereum/go-ethereum/p2p"
|
||||||
"github.com/ethereum/go-ethereum/p2p/discover"
|
"github.com/ethereum/go-ethereum/p2p/discover"
|
||||||
"github.com/ethereum/go-ethereum/p2p/nat"
|
"github.com/ethereum/go-ethereum/p2p/nat"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
"github.com/ethereum/go-ethereum/whisper"
|
"github.com/ethereum/go-ethereum/whisper"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -370,8 +371,8 @@ func New(config *Config) (*Ethereum, error) {
|
||||||
eth.miner.SetGasPrice(config.GasPrice)
|
eth.miner.SetGasPrice(config.GasPrice)
|
||||||
|
|
||||||
extra := config.Name
|
extra := config.Name
|
||||||
if len(extra) > 1024 {
|
if uint64(len(extra)) > params.MaximumExtraDataSize.Uint64() {
|
||||||
extra = extra[:1024]
|
extra = extra[:params.MaximumExtraDataSize.Uint64()]
|
||||||
}
|
}
|
||||||
eth.miner.SetExtra([]byte(extra))
|
eth.miner.SetExtra([]byte(extra))
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ package params
|
||||||
import "math/big"
|
import "math/big"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
MaximumExtraDataSize = big.NewInt(1024) // Maximum size extra data may be after Genesis.
|
MaximumExtraDataSize = big.NewInt(32) // Maximum size extra data may be after Genesis.
|
||||||
ExpByteGas = big.NewInt(10) // Times ceil(log256(exponent)) for the EXP instruction.
|
ExpByteGas = big.NewInt(10) // Times ceil(log256(exponent)) for the EXP instruction.
|
||||||
SloadGas = big.NewInt(50) // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added.
|
SloadGas = big.NewInt(50) // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added.
|
||||||
CallValueTransferGas = big.NewInt(9000) // Paid for CALL when the value transfor is non-zero.
|
CallValueTransferGas = big.NewInt(9000) // Paid for CALL when the value transfor is non-zero.
|
||||||
|
@ -32,7 +32,7 @@ var (
|
||||||
DifficultyBoundDivisor = big.NewInt(2048) // The bound divisor of the difficulty, used in the update calculations.
|
DifficultyBoundDivisor = big.NewInt(2048) // The bound divisor of the difficulty, used in the update calculations.
|
||||||
QuadCoeffDiv = big.NewInt(512) // Divisor for the quadratic particle of the memory cost equation.
|
QuadCoeffDiv = big.NewInt(512) // Divisor for the quadratic particle of the memory cost equation.
|
||||||
GenesisDifficulty = big.NewInt(131072) // Difficulty of the Genesis block.
|
GenesisDifficulty = big.NewInt(131072) // Difficulty of the Genesis block.
|
||||||
DurationLimit = big.NewInt(8) // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not.
|
DurationLimit = big.NewInt(13) // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not.
|
||||||
SstoreSetGas = big.NewInt(20000) // Once per SLOAD operation.
|
SstoreSetGas = big.NewInt(20000) // Once per SLOAD operation.
|
||||||
LogDataGas = big.NewInt(8) // Per byte in a LOG* operation's data.
|
LogDataGas = big.NewInt(8) // Per byte in a LOG* operation's data.
|
||||||
CallStipend = big.NewInt(2300) // Free gas given at beginning of call.
|
CallStipend = big.NewInt(2300) // Free gas given at beginning of call.
|
||||||
|
|
|
@ -17,9 +17,12 @@
|
||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/ethereum/ethash"
|
"github.com/ethereum/ethash"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/eth"
|
"github.com/ethereum/go-ethereum/eth"
|
||||||
|
"github.com/ethereum/go-ethereum/params"
|
||||||
"github.com/ethereum/go-ethereum/rpc/codec"
|
"github.com/ethereum/go-ethereum/rpc/codec"
|
||||||
"github.com/ethereum/go-ethereum/rpc/shared"
|
"github.com/ethereum/go-ethereum/rpc/shared"
|
||||||
)
|
)
|
||||||
|
@ -122,6 +125,11 @@ func (self *minerApi) SetExtra(req *shared.Request) (interface{}, error) {
|
||||||
if err := self.codec.Decode(req.Params, &args); err != nil {
|
if err := self.codec.Decode(req.Params, &args); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if uint64(len(args.Data)) > params.MaximumExtraDataSize.Uint64()*2 {
|
||||||
|
return false, fmt.Errorf("extra datasize can be no longer than %v bytes", params.MaximumExtraDataSize)
|
||||||
|
}
|
||||||
|
|
||||||
self.ethereum.Miner().SetExtra([]byte(args.Data))
|
self.ethereum.Miner().SetExtra([]byte(args.Data))
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue