Okay, well I just did an experiment with Bitcoin-Qt 0.8, and what I found is kind of scary...
Plotting percentage-of-blocks-downloaded vs percentage-of-total-download-time yielded a rather extreme relationship:
It can be linearized by plotting (% of blocks)
8 vs (% of total time). The linearity of the result is surprisingly... good.
This is scary because I would like to think that no part of Bitcoin has an order of growth of O(N
8). Of course, that was probably the trajectory of the relationship
before we hit the [artificial] block-size limits.
The moral of this story is that if you predict the current top block you are synchronizing to (say from asking peers, or just projecting out at 10min/blk from your last estimate), then you can create a fairly accurate "Percent Complete: ..." meter by simply computing (currentBlock/maxBlock)
8. This seems to be accurate for at least the first 225k blocks...