diff options
author | obscuren <geffobscura@gmail.com> | 2015-06-15 22:46:45 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-06-15 22:46:45 +0800 |
commit | e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc (patch) | |
tree | 2162d4bcb3409ab843261ab1001c8217dc264d49 | |
parent | 21fa29111b3cd12e3748fcb6310e6a18c5562f17 (diff) | |
download | go-tangerine-e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc.tar go-tangerine-e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc.tar.gz go-tangerine-e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc.tar.bz2 go-tangerine-e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc.tar.lz go-tangerine-e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc.tar.xz go-tangerine-e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc.tar.zst go-tangerine-e79cc42dfe36f6db61cebb37607f5bfe89e4cdcc.zip |
core: moved check for max queue to checkQueue
Moved the queue to check to the checkQueue method so no undeeded loops
need to be initiated or sorting needs to happen twice.
-rw-r--r-- | core/chain_manager.go | 12 | ||||
-rw-r--r-- | core/transaction_pool.go | 26 |
2 files changed, 12 insertions, 26 deletions
diff --git a/core/chain_manager.go b/core/chain_manager.go index e56d82cce..c3b7273c2 100644 --- a/core/chain_manager.go +++ b/core/chain_manager.go @@ -5,7 +5,6 @@ import ( "fmt" "io" "math/big" - "os" "runtime" "sync" "sync/atomic" @@ -235,15 +234,8 @@ func (bc *ChainManager) setLastState() { if block != nil { bc.currentBlock = block bc.lastBlockHash = block.Hash() - } else { // TODO CLEAN THIS UP TMP CODE - block = bc.GetBlockByNumber(400000) - if block == nil { - fmt.Println("Fatal. LastBlock not found. Report this issue") - os.Exit(1) - } - bc.currentBlock = block - bc.lastBlockHash = block.Hash() - bc.insert(block) + } else { + glog.Fatalf("Fatal. LastBlock not found. Please run removedb and resync") } } else { bc.Reset() diff --git a/core/transaction_pool.go b/core/transaction_pool.go index ce6fed1a9..e31f5c6b3 100644 --- a/core/transaction_pool.go +++ b/core/transaction_pool.go @@ -228,21 +228,6 @@ func (self *TxPool) queueTx(hash common.Hash, tx *types.Transaction) { self.queue[from] = make(map[common.Hash]*types.Transaction) } self.queue[from][hash] = tx - - if len(self.queue[from]) > maxQueued { - var ( - worstHash common.Hash - worstNonce uint64 - ) - for hash, tx := range self.queue[from] { - if tx.Nonce() > worstNonce { - worstNonce = tx.Nonce() - worstHash = hash - } - } - glog.V(logger.Debug).Infof("Queued tx limit exceeded for %x. Removed worst nonce tx: %x\n", common.PP(from[:]), common.PP(worstHash[:])) - delete(self.queue[from], worstHash) - } } // addTx will add a transaction to the pending (processable queue) list of transactions @@ -367,7 +352,16 @@ func (pool *TxPool) checkQueue() { // Find the next consecutive nonce range starting at the // current account nonce. sort.Sort(addq) - for _, e := range addq { + for i, e := range addq { + // start deleting the transactions from the queue if they exceed the limit + if i > maxQueued { + if glog.V(logger.Debug) { + glog.Infof("Queued tx limit exceeded for %s. Tx %s removed\n", common.PP(address[:]), common.PP(e.hash[:])) + } + delete(pool.queue[address], e.hash) + continue + } + if e.AccountNonce > guessedNonce { break } |