GasData changes & removed min gas price

pull/193/merge
obscuren 10 years ago
parent 4cd9d57bad
commit 61556ef01d
  1. 36
      chain/block.go
  2. 2
      chain/chain_manager.go
  3. 18
      chain/state_transition.go
  4. 1
      miner/miner.go

@ -84,8 +84,6 @@ type Block struct {
Time int64 Time int64
// The block number // The block number
Number *big.Int Number *big.Int
// Minimum Gas Price
MinGasPrice *big.Int
// Gas limit // Gas limit
GasLimit *big.Int GasLimit *big.Int
// Gas used // Gas used
@ -124,16 +122,15 @@ func CreateBlock(root interface{},
extra string) *Block { extra string) *Block {
block := &Block{ block := &Block{
PrevHash: prevHash, PrevHash: prevHash,
Coinbase: base, Coinbase: base,
Difficulty: Difficulty, Difficulty: Difficulty,
Nonce: Nonce, Nonce: Nonce,
Time: time.Now().Unix(), Time: time.Now().Unix(),
Extra: extra, Extra: extra,
UncleSha: nil, UncleSha: nil,
GasUsed: new(big.Int), GasUsed: new(big.Int),
MinGasPrice: new(big.Int), GasLimit: new(big.Int),
GasLimit: new(big.Int),
} }
block.SetUncles([]*Block{}) block.SetUncles([]*Block{})
@ -300,12 +297,11 @@ func (self *Block) setHeader(header *ethutil.Value) {
self.LogsBloom = header.Get(6).Bytes() self.LogsBloom = header.Get(6).Bytes()
self.Difficulty = header.Get(7).BigInt() self.Difficulty = header.Get(7).BigInt()
self.Number = header.Get(8).BigInt() self.Number = header.Get(8).BigInt()
self.MinGasPrice = header.Get(9).BigInt() self.GasLimit = header.Get(9).BigInt()
self.GasLimit = header.Get(10).BigInt() self.GasUsed = header.Get(10).BigInt()
self.GasUsed = header.Get(11).BigInt() self.Time = int64(header.Get(11).BigInt().Uint64())
self.Time = int64(header.Get(12).BigInt().Uint64()) self.Extra = header.Get(12).Str()
self.Extra = header.Get(13).Str() self.Nonce = header.Get(13).Bytes()
self.Nonce = header.Get(14).Bytes()
} }
func NewUncleBlockFromValue(header *ethutil.Value) *Block { func NewUncleBlockFromValue(header *ethutil.Value) *Block {
@ -351,8 +347,6 @@ func (block *Block) miningHeader() []interface{} {
block.Difficulty, block.Difficulty,
// The block number // The block number
block.Number, block.Number,
// Block minimum gas price
block.MinGasPrice,
// Block upper gas bound // Block upper gas bound
block.GasLimit, block.GasLimit,
// Block gas used // Block gas used
@ -380,7 +374,6 @@ func (block *Block) String() string {
Bloom: %x Bloom: %x
Difficulty: %v Difficulty: %v
Number: %v Number: %v
MinGas: %v
MaxLimit: %v MaxLimit: %v
GasUsed: %v GasUsed: %v
Time: %v Time: %v
@ -399,7 +392,6 @@ func (block *Block) String() string {
block.LogsBloom, block.LogsBloom,
block.Difficulty, block.Difficulty,
block.Number, block.Number,
block.MinGasPrice,
block.GasLimit, block.GasLimit,
block.GasUsed, block.GasUsed,
block.Time, block.Time,

@ -59,8 +59,6 @@ func (bc *ChainManager) NewBlock(coinbase []byte) *Block {
nil, nil,
"") "")
block.MinGasPrice = big.NewInt(10000000000000)
parent := bc.CurrentBlock parent := bc.CurrentBlock
if parent != nil { if parent != nil {
block.Difficulty = CalcDifficulty(block, parent) block.Difficulty = CalcDifficulty(block, parent)

@ -156,12 +156,24 @@ func (self *StateTransition) TransitionState() (err error) {
} }
// Pay data gas // Pay data gas
dataPrice := big.NewInt(int64(len(self.data))) var dgas int64
dataPrice.Mul(dataPrice, vm.GasData) for _, byt := range self.data {
if err = self.UseGas(dataPrice); err != nil { if byt != 0 {
dgas += vm.GasData.Int64()
} else {
dgas += 1 // This is 1/5. If GasData changes this fails
}
}
if err = self.UseGas(big.NewInt(dgas)); err != nil {
return return
} }
//dataPrice := big.NewInt(int64(len(self.data)))
//dataPrice.Mul(dataPrice, vm.GasData)
//if err = self.UseGas(dataPrice); err != nil {
// return
//}
if sender.Balance().Cmp(self.value) < 0 { if sender.Balance().Cmp(self.value) < 0 {
return fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", self.value, sender.Balance) return fmt.Errorf("Insufficient funds to transfer value. Req %v, has %v", self.value, sender.Balance)
} }

@ -177,7 +177,6 @@ func (self *Miner) mine() {
chainMan = self.eth.ChainManager() chainMan = self.eth.ChainManager()
block = chainMan.NewBlock(self.Coinbase) block = chainMan.NewBlock(self.Coinbase)
) )
block.MinGasPrice = self.MinAcceptedGasPrice
// Apply uncles // Apply uncles
if len(self.uncles) > 0 { if len(self.uncles) > 0 {

Loading…
Cancel
Save