Commit 12650e16 authored by obscuren's avatar obscuren

core, miner: fixed miner time issue and removed future blocks

* Miner should no longer generate blocks with a time stamp less or equal
than it's parent.
* Future blocks are no longer processed and queued directly.
  Closes #1118
parent 34729c36
...@@ -306,8 +306,7 @@ func (sm *BlockProcessor) ValidateHeader(block, parent *types.Header, checkPow b ...@@ -306,8 +306,7 @@ func (sm *BlockProcessor) ValidateHeader(block, parent *types.Header, checkPow b
return fmt.Errorf("GasLimit check failed for block %v (%v > %v)", block.GasLimit, a, b) return fmt.Errorf("GasLimit check failed for block %v (%v > %v)", block.GasLimit, a, b)
} }
// Allow future blocks up to 10 seconds if int64(block.Time) > time.Now().Unix() {
if int64(block.Time) > time.Now().Unix()+4 {
return BlockFutureErr return BlockFutureErr
} }
......
...@@ -287,8 +287,10 @@ func (self *worker) push() { ...@@ -287,8 +287,10 @@ func (self *worker) push() {
func (self *worker) makeCurrent() { func (self *worker) makeCurrent() {
block := self.chain.NewBlock(self.coinbase) block := self.chain.NewBlock(self.coinbase)
if block.Time() == self.chain.CurrentBlock().Time() { parent := self.chain.GetBlock(block.ParentHash())
block.Header().Time++
if block.Time() <= parent.Time() {
block.Header().Time = parent.Header().Time + 1
} }
block.Header().Extra = self.extra block.Header().Extra = self.extra
...@@ -312,7 +314,6 @@ func (self *worker) makeCurrent() { ...@@ -312,7 +314,6 @@ func (self *worker) makeCurrent() {
current.localMinedBlocks = self.current.localMinedBlocks current.localMinedBlocks = self.current.localMinedBlocks
} }
parent := self.chain.GetBlock(current.block.ParentHash())
current.coinbase.SetGasPool(core.CalcGasLimit(parent)) current.coinbase.SetGasPool(core.CalcGasLimit(parent))
self.current = current self.current = current
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment