aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-06-15 22:46:45 +0800
committerobscuren <geffobscura@gmail.com>2015-06-15 22:46:45 +0800
commite79cc42dfe36f6db61cebb37607f5bfe89e4cdcc (patch)
tree2162d4bcb3409ab843261ab1001c8217dc264d49
parent21fa29111b3cd12e3748fcb6310e6a18c5562f17 (diff)
downloadgo-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.go12
-rw-r--r--core/transaction_pool.go26
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
}