From 262714fc6c269e0a3aa39892954b03db9418e649 Mon Sep 17 00:00:00 2001
From: zelig <viktor.tron@gmail.com>
Date: Wed, 8 Apr 2015 12:43:55 +0100
Subject: future queued block support - queued       bool // flag for blockpool
 to skip TD check - set to true when future block queued - in checkTD: skip
 check if queued - TODO: add test (insertchain sets future block)

---
 core/chain_manager.go | 1 +
 core/types/block.go   | 4 ++++
 2 files changed, 5 insertions(+)

(limited to 'core')

diff --git a/core/chain_manager.go b/core/chain_manager.go
index 3ab95d272..f05a6bd72 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -471,6 +471,7 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
 			// Do not penelise on future block. We'll need a block queue eventually that will queue
 			// future block for future use
 			if err == BlockFutureErr {
+				block.SetQueued(true)
 				self.futureBlocks.Push(block)
 				stats.queued++
 				continue
diff --git a/core/types/block.go b/core/types/block.go
index 116acbf79..c47b555ed 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -97,6 +97,7 @@ type Block struct {
 	uncles       []*Header
 	transactions Transactions
 	Td           *big.Int
+	queued       bool // flag for blockpool to skip TD check
 
 	receipts Receipts
 }
@@ -268,6 +269,9 @@ func (self *Block) SetNonce(nonce uint64) {
 	self.header.SetNonce(nonce)
 }
 
+func (self *Block) Queued() bool     { return self.queued }
+func (self *Block) SetQueued(q bool) { self.queued = q }
+
 func (self *Block) Bloom() Bloom             { return self.header.Bloom }
 func (self *Block) Coinbase() common.Address { return self.header.Coinbase }
 func (self *Block) Time() int64              { return int64(self.header.Time) }
-- 
cgit v1.2.3