CheckSync was following a pointer chain to the last sync point with every new block so the further you got away from a checkpoint the longer it took.
Changed so now when a block is traced back to a sync we save the hash, if the next blocks previous matches that hash we will already know that it can travel back to the sync.
Tested by looking at LoadExternalBlockFile and every 500 blocks printed (total elapsed time/ nloaded) in ms
This sits on top of Pull request #25 and #26
CheckSync was following a pointer chain to the last sync point with every new block so the further you got away from a checkpoint the longer it took. Changed so now when a block is traced back to a sync we save the hash, if the next blocks previous matches that hash we will already know that it can travel back to the sync.
Tested by looking at LoadExternalBlockFile and every 500 blocks printed (total elapsed time/ nloaded) in ms