Initial Block Download optimisations #5099

pull rebroad wants to merge 13 commits into bitcoin:master from rebroad:headersfirst8-improvements changing 6 files +331 −27
  1. rebroad commented at 12:26 AM on October 18, 2014: contributor

    I've been developing these improvements in parallel with headersfirst8.

    It's now been optimised for use with early to late block chain so adapts to the block sizes and also the bandwidth of each node to make optimal use of the connections available.

    The sipa disconnect code has been disabled as it usually disconnected the most important node (with my changes), but it will still display when the logic would have executed.

    Please do test and compare download times with before this test and I'm sure you'll see improvements.

    It's not yet optimised for use with earlier blocks (which were small enough to download in batches of 500 each), but that will be coming shortly. Raising the pull request so that people can view and comment on some of the changes.

  2. laanwj added the label P2P on Oct 22, 2014
  3. rebroad force-pushed on Oct 23, 2014
  4. rebroad force-pushed on Oct 23, 2014
  5. rebroad commented at 8:29 AM on October 23, 2014: contributor

    There are probably some commits in here that can be removed. I've kept it fairly granular so that some of the changes are easily optional. The big change is the commit called "Track partial download progress...", and I've recently updated this so that it now changes the window size per node based upon the bandwidth each note is achieving. @laanwj Is it worth tagging members of the core development team in a comment to draw their attention to this?

  6. laanwj commented at 10:50 AM on October 23, 2014: member

    @rebroad Possibly. But it could be that this list of change is too intimidating for one pull, and it may be better to trickle the changes instead of having one umbrella "Headersfirst8 improvements".

  7. rebroad force-pushed on Oct 25, 2014
  8. rebroad force-pushed on Oct 25, 2014
  9. rebroad force-pushed on Oct 25, 2014
  10. rebroad force-pushed on Oct 25, 2014
  11. rebroad force-pushed on Oct 26, 2014
  12. rebroad force-pushed on Oct 26, 2014
  13. rebroad force-pushed on Oct 26, 2014
  14. rebroad force-pushed on Oct 26, 2014
  15. rebroad force-pushed on Oct 26, 2014
  16. rebroad force-pushed on Oct 26, 2014
  17. rebroad force-pushed on Oct 26, 2014
  18. rebroad force-pushed on Oct 26, 2014
  19. rebroad force-pushed on Oct 26, 2014
  20. rebroad force-pushed on Oct 26, 2014
  21. rebroad force-pushed on Oct 26, 2014
  22. rebroad force-pushed on Oct 26, 2014
  23. rebroad force-pushed on Oct 26, 2014
  24. rebroad force-pushed on Oct 27, 2014
  25. rebroad force-pushed on Oct 28, 2014
  26. rebroad renamed this:
    Headersfirst8 improvements
    Initial Block Download optimisations
    on Oct 28, 2014
  27. rebroad force-pushed on Oct 29, 2014
  28. rebroad force-pushed on Oct 29, 2014
  29. rebroad force-pushed on Oct 29, 2014
  30. rebroad commented at 2:30 AM on October 30, 2014: contributor

    tumbleweed

  31. rebroad force-pushed on Oct 30, 2014
  32. rebroad force-pushed on Oct 30, 2014
  33. rebroad force-pushed on Oct 30, 2014
  34. rebroad cross-referenced this on Oct 30, 2014 from issue Introduce preferred download peers by sipa
  35. rebroad force-pushed on Oct 30, 2014
  36. rebroad force-pushed on Oct 30, 2014
  37. rebroad force-pushed on Oct 31, 2014
  38. rebroad force-pushed on Oct 31, 2014
  39. rebroad force-pushed on Oct 31, 2014
  40. rebroad force-pushed on Oct 31, 2014
  41. rebroad force-pushed on Oct 31, 2014
  42. rebroad force-pushed on Nov 1, 2014
  43. rebroad force-pushed on Nov 1, 2014
  44. rebroad force-pushed on Nov 1, 2014
  45. rebroad force-pushed on Nov 1, 2014
  46. rebroad force-pushed on Nov 2, 2014
  47. rebroad force-pushed on Nov 2, 2014
  48. rebroad force-pushed on Nov 3, 2014
  49. Add nLastDataPos variable for partial message tracking. 307fc14760
  50. Add NodeId to CNodeState (for logging/debugging purposes) 47224d1525
  51. Rearrange ProcessMessages 653be33b95
  52. Track partial block download progress, timings and bandwidth, and add disconnect logic for stalls. 3f11d459ae
  53. Add CaughtUp() function (needed by later commits) 061b287bc1
  54. rebroad force-pushed on Nov 10, 2014
  55. rebroad commented at 11:25 PM on November 10, 2014: contributor

    I don't know what travis is talking about - it seems to be running an old version that isn't present in the current branch.

  56. rebroad force-pushed on Nov 12, 2014
  57. rebroad closed this on Nov 12, 2014

  58. rebroad reopened this on Nov 12, 2014

  59. rebroad force-pushed on Nov 12, 2014
  60. Add extra debugging messages for download and stall logic. ed393b9948
  61. Stripe downloads (so not a contiguous chunk is requested from one node). 7edb20d836
  62. Disable sipa stall disconnect logic, but still log when it would have been triggered. 3bebc1e4a4
  63. Disconnect no longer useful peers. 49bb701140
  64. Find the runt of the litter (and disconnect it). a837fe4837
  65. Reset variables when network changed. acdbc0e2ff
  66. Allow many blocks to be received in one go from a peer for up to 1 second.
    This speeds up IDB.
    5744197047
  67. Detect when headers downloading is stalling. e2b98a9473
  68. rebroad force-pushed on Nov 13, 2014
  69. laanwj commented at 9:27 AM on March 18, 2015: member

    Needs rebase.

  70. laanwj closed this on Jul 10, 2015

  71. rebroad cross-referenced this on Oct 17, 2016 from issue Incoming block downloads repeatedly freezing in 0.12 by jameshilliard
  72. bitcoin locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-20 06:55 UTC