aboutsummaryrefslogtreecommitdiffstats
path: root/blockpool/blockpool.go
diff options
context:
space:
mode:
authorzelig <viktor.tron@gmail.com>2015-03-21 04:52:29 +0800
committerzelig <viktor.tron@gmail.com>2015-03-22 10:02:24 +0800
commit95038fc62dc73da3f04bd37c0bdc29170eec0169 (patch)
treea15ca6c085ac20e201eef3f386521ab1df9eed14 /blockpool/blockpool.go
parent7f85608f30a2e34005c8d15566849229c758c2f1 (diff)
downloadgo-tangerine-95038fc62dc73da3f04bd37c0bdc29170eec0169.tar
go-tangerine-95038fc62dc73da3f04bd37c0bdc29170eec0169.tar.gz
go-tangerine-95038fc62dc73da3f04bd37c0bdc29170eec0169.tar.bz2
go-tangerine-95038fc62dc73da3f04bd37c0bdc29170eec0169.tar.lz
go-tangerine-95038fc62dc73da3f04bd37c0bdc29170eec0169.tar.xz
go-tangerine-95038fc62dc73da3f04bd37c0bdc29170eec0169.tar.zst
go-tangerine-95038fc62dc73da3f04bd37c0bdc29170eec0169.zip
Idle too long error incorrectly triggered even when peer sending new blocks
- fix status chain map uses common.Hash as key - add badPeers increment to IncorrectTD errors (forgotten) - signal head info update to head section process even if parent hash is not in pool (inserted), so that idle timer can be set to nil - suicideC -> peer.headInfoTimer - quit -> peer.bestIdleTimer - and they are properly set from within getBlockHashes and handleSection
Diffstat (limited to 'blockpool/blockpool.go')
-rw-r--r--blockpool/blockpool.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/blockpool/blockpool.go b/blockpool/blockpool.go
index 09b9e7b0b..1ca97e0ca 100644
--- a/blockpool/blockpool.go
+++ b/blockpool/blockpool.go
@@ -757,6 +757,9 @@ func (self *BlockPool) checkTD(nodes ...*node) {
plog.DebugDetailf("peer td %v =?= block td %v", n.td, n.block.Td)
if n.td.Cmp(n.block.Td) != 0 {
self.peers.peerError(n.blockBy, ErrIncorrectTD, "on block %x", n.hash)
+ self.status.lock.Lock()
+ self.status.badPeers[n.blockBy]++
+ self.status.lock.Unlock()
}
}
}