* [NOD-1125] Write a skeleton for starting IBD.
* [NOD-1125] Add WaitForIBDStart to Peer.
* [NOD-1125] Move functions around.
* [NOD-1125] Fix merge errors.
* [NOD-1125] Fix a comment.
* [NOD-1125] Implement sendGetBlockLocator.
* [NOD-1125] Begin implementing findIBDLowHash.
* [NOD-1125] Finish implementing findIBDLowHash.
* [NOD-1125] Rename findIBDLowHash to findHighestSharedBlockHash.
* [NOD-1125] Implement downloadBlocks.
* [NOD-1125] Implement msgIBDBlock.
* [NOD-1125] Implement msgIBDBlock.
* [NOD-1125] Fix message types for HandleIBD.
* [NOD-1125] Write a skeleton for requesting selected tip hashes.
* [NOD-1125] Write a skeleton for the rest of the IBD requests.
* [NOD-1125] Implement HandleGetBlockLocator.
* [NOD-1125] Fix wrong timeout.
* [NOD-1125] Fix compilation error.
* [NOD-1125] Implement HandleGetBlocks.
* [NOD-1125] Fix compilation errors.
* [NOD-1125] Fix merge errors.
* [NOD-1125] Implement selectPeerForIBD.
* [NOD-1125] Implement RequestSelectedTip.
* [NOD-1125] Implement HandleGetSelectedTip.
* [NOD-1125] Make go lint happy.
* [NOD-1125] Add minGetSelectedTipInterval.
* [NOD-1125] Call StartIBDIfRequired where needed.
* [NOD-1125] Fix merge errors.
* [NOD-1125] Remove a redundant line.
* [NOD-1125] Rename shouldContinue to shouldStop.
* [NOD-1125] Lowercasify an error message.
* [NOD-1125] Shuffle statements around in findHighestSharedBlockHash.
* [NOD-1125] Rename hasRecentlyReceivedBlock to isDAGTimeCurrent.
* [NOD-1125] Scope minGetSelectedTipInterval.
* [NOD-1125] Handle an unhandled error.
* [NOD-1125] Use AddUint32 instead of LoadUint32 + StoreUint32.
* [NOD-1125] Use AddUint32 instead of LoadUint32 + StoreUint32.
* [NOD-1125] Use SwapUint32 instead of AddUint32.
* [NOD-1125] Remove error from requestSelectedTips.
* [NOD-1125] Actually stop IBD when it should stop.
* [NOD-1125] Actually stop RequestSelectedTip when it should stop.
* [NOD-1125] Don't ban peers that send us delayed blocks during IBD.
* [NOD-1125] Make unexpected message type messages nicer.
* [NOD-1125] Remove Peer.ready and make HandleHandshake return it to guarantee we never operate on a non-initialized peer.
* [NOD-1125] Remove errors associated with Peer.ready.
* [NOD-1125] Extract maxHashesInMsgIBDBlocks to a const.
* [NOD-1125] Move the ibd package into flows.
* [NOD-1125] Start IBD if required after getting an unknown block inv.
* [NOD-1125] Don't request blocks during relay if we're in the middle of IBD.
* [NOD-1125] Remove AddBlockLocatorHash.
* [NOD-1125] Extract runIBD to a seperate function.
* [NOD-1125] Extract runSelectedTipRequest to a seperate function.
* [NOD-1125] Remove EnqueueWithTimeout.
* [NOD-1125] Increase the capacity of the outgoingRoute.
* [NOD-1125] Fix some bad names.
* [NOD-1125] Fix a comment.
* [NOD-1125] Simplify a comment.
* [NOD-1125] Move WaitFor... functions into their respective run... functions.
* [NOD-1125] Return default values in case of error.
* [NOD-1125] Use CmdXXX in error messages.
* [NOD-1125] Use MaxInvPerMsg in outgoingRouteMaxMessages instead of MaxBlockLocatorsPerMsg.
* [NOD-1125] Fix a comment.
* [NOD-1125] Disconnect a peer that sends us a delayed block during IBD.
* [NOD-1125] Use StoreUint32 instead of SwapUint32.
* [NOD-1125] Add a comment.
* [NOD-1125] Don't ban peers that send us delayed blocks.
* [NOD-614] Copy bitcoin-core ban score policy
* [NOD-614] Add ban score to disconnects
* [NOD-614] Fix wrong branch of AddBanScore
* [NOD-614] Add ban score on sending too many addresses
* [NOD-614] Add comments
* [NOD-614] Remove redundant reject messages
* [NOD-614] Fix log message
* [NOD-614] Ban every node that sends invalid invs
* [NOD-614] Make constants for ban scores
* [NOD-640] Revamp blueBlocksBetween to return up to maxEntries from highNode's antiFuture.
* [NOD-640] Fix bad traversal.
* [NOD-640] Use more accurate len.
* [NOD-640] Use more appropriate len in another place.
* [NOD-640] Remove the whole business with highNode's anticone.
* [NOD-640] Rename highNodeAntiFuture to candidateNodes.
* [NOD-640] Explain the highNode.blueScore-lowNode.blueScore+1 approximation.
* [NOD-640] UpHeap -> upHeap.
* [NOD-640] Fix off-by-one error.
* [NOD-640] Rename blueBlocksBetween to antiPastBetween,
* [NOD-640] upHeap -> up-heap.
* [NOD-640] Use a classic for to populate nodes.
* [NOD-640] Reworded a comment.
* [NOD-640] Clarify a comment.
* [NOD-640] Fix nodes declaration.
* [NOD-669] Remove the "get" from getBlueBlocksBetween.
* [NOD-669] Remove the "Get" from GetBlueBlocksHeadersBetween.
* [NOD-669] In blueBlocksBetween, rename startHash to lowHash and stopHash to highHash.
* [NOD-669] Rename startHash to lowHash and stopHash to highHash in blockLocator logic.
* [NOD-669] Remove zeroHash logic in blockLocator.
* [NOD-669] Finish renaming startHash and stopHash in blockdag.
* [NOD-669] Rename startHash and stopHash in blockdag where I previously missed it.
* [NOD-669] Rename startHash and stopHash in blockdag where I previously missed it some more.
* [NOD-669] Rename startHash and stopHash in blockdag where I previously missed it some more some more.
* [NOD-669] Fix bad grammar in method names.
* [NOD-669] Rename lowHash to blockHash in SelectedParentChain.
* [NOD-669] Fix a comment.
* [NOD-488] Make getBlueBlocksBetween return error if start hash is not in the selected parent chain of stop hash
* [NOD-488] Convert for to while style