Commit Graph

10 Commits

Author SHA1 Message Date
zelig
3d57e377a4 blockpool stability fixes:
- follow up locks and fix them
- chainManager: call SetQueued for parentErr future blocks, uncomment TD checks, unskip test
- make ErrIncorrectTD non-fatal to be forgiving to genuine mistaken nodes (temp) but demote them to guard against stuck best peers.
- add purging to bounded nodeCache (config nodeCacheSize)
- use nodeCache when creating blockpool entries and let non-best peers add blocks (performance boost)
- minor error in addError
- reduce idleBestPeerTimeout to 1 minute
- correct status counts and unskip status passing status test
- glogified logging
2015-04-13 13:13:55 +01:00
zelig
e55747a074 fix deadlock issue in AddBlock
- add peer switch channel arg to activateChain - no peer locking within
- proper locking in AddBlock - fixes deadlock issue
- comment out TD check and skip incorrect TD test again for hotfix
2015-04-09 13:58:35 +01:00
obscuren
a0e44e3281 basic glog 2015-04-04 12:40:11 +02:00
zelig
95038fc62d 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
2015-03-22 02:02:24 +00:00
zelig
66b29899c4 use common.Hash as pool key, no string conversion needed 2015-03-20 11:57:47 +00:00
zelig
d7564a9a25 fix common.Hash conversion 2015-03-20 10:41:41 +00:00
zelig
137a9c9365 check and penalise td misreporting
- add ErrIncorrectTD
- checkTD called after insertChain successful
- fix tests, use blockPoolTester.tds to map block index to TD
2015-03-20 10:41:41 +00:00
obscuren
843db4978e updated blockpool 2015-03-16 23:10:26 +01:00
zelig
a60a18b080 - fix peer disconnect by adding severity function to errs
- improve logging
- suicide -> removeChain
- improved status BlocksInPool calculation
2015-03-03 00:43:12 +07:00
zelig
422490d75c major rewrite, reorg of blockpool + new features
- blockpool moves to its own package
- uses errs pkg for its own coded errors
- publicly settable config of params (time intervals and batchsizes)
- test helpers in subpackage
- optional TD in blocks used now to update peers chain info
- major improvement in algorithm
- fix fragility and sync/parallelisation bugs
- implement status for reporting on sync status (peers/hashes/blocks etc)
- several tests added and further corner cases covered
2015-02-25 19:34:12 +07:00