aboutsummaryrefslogtreecommitdiffstats
path: root/blockpool/blockpool.go
Commit message (Collapse)AuthorAgeFilesLines
* future queued block supportzelig2015-04-091-1/+2
| | | | | | | - 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)
* put back checkTD and unskip incorrectTD testzelig2015-04-091-4/+4
|
* introduce peers registry on nodeszelig2015-04-091-35/+37
| | | | | | | | | | | | - TestPeerPromotionByTdOnBlock renamed and skipped for now test should pass iff if TD is updated based on an agreement - senders register in AddBlock, flag records if they are coming from newblock message (and therefore advertise their TD with the block) or block message (TODO: latter are stored on the cache and updated by checkTD call; protocol should also call AddBlock on newblock messages by non-best peers) - remove TD update from optional TD field in addBlock: this is no longer part of the eth protocol spec -> TODO: reflect in wiki - only initialise peer map if at least two
* fix blockpool deadlockzelig2015-04-091-3/+17
| | | | | | - do not break from headsection on error [remove peer after protocol quit will close switchC, until then head block can arrive and block on channel while keeping peers lock causing a deadlock.] - more careful locking in AddBlock
* Updated loggingobscuren2015-04-071-1/+2
|
* Disabled PoW checkobscuren2015-04-051-9/+12
| | | | @zelig we need to discuss this
* Temp removed unrequested block errorobscuren2015-04-051-9/+13
| | | | @zelig look in to this please
* Removed debuggingobscuren2015-04-051-2/+0
|
* prevent deadlockobscuren2015-04-051-0/+2
|
* Disabled peer TD check to support suspended blocks (Future blocks)obscuren2015-04-041-4/+4
| | | | | | @zelig When blocks are in the future they'll be cached and processed at a later time. Because of this the returned TD will be much lower than the broadcasted TD.
* header check for testzelig2015-03-251-1/+5
|
* bugfix with idle too long triggered after peer switchzelig2015-03-251-4/+5
| | | | | | - reset bestIdleTimer when launching head section process - log chain head events - common.Hash key in activateChain map
* Idle too long error incorrectly triggered even when peer sending new blockszelig2015-03-221-0/+3
| | | | | | | | | - 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
* use common.Hash as pool key, no string conversion neededzelig2015-03-201-6/+6
|
* improve documentation and move one testzelig2015-03-201-78/+98
|
* uncomment status test, hack: skip the 2 unreliable fieldszelig2015-03-201-1/+0
|
* check and penalise td misreportingzelig2015-03-201-0/+14
| | | | | | - add ErrIncorrectTD - checkTD called after insertChain successful - fix tests, use blockPoolTester.tds to map block index to TD
* use own total difficulty to limit best peerzelig2015-03-201-2/+44
| | | | | | | | | - update blockpool td by subscribing to ChainHeadEvent - if ahead of best peer, demote it - addPeer now take own td as current td - removePeer now take own td as current td - add relevant tests to peers_test - eth: backend now calls blockpool with eth.eventMux and chainManager.Td
* peer suspension to disallow reconnect after disconnect on fatal error for ↵zelig2015-03-201-5/+12
| | | | set period (PeerSuspensionInterval)
* updated blockpoolobscuren2015-03-171-26/+25
|
* moved to detailobscuren2015-03-161-1/+1
|
* fix wonky head section loop; correct status countszelig2015-03-061-1/+2
|
* partial fix to idle best peer issuezelig2015-03-041-3/+11
| | | | | | - best peer cannot be idle for more than idleBestPeerTimeout - introduce ErrIdleTooLong fatal error - modify default values
* - fix peer disconnect by adding severity function to errszelig2015-03-031-9/+36
| | | | | | - improve logging - suicide -> removeChain - improved status BlocksInPool calculation
* major rewrite, reorg of blockpool + new featureszelig2015-02-251-0/+749
- 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