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 0: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 force-pushed on Oct 30, 2014
  35. rebroad force-pushed on Oct 30, 2014
  36. rebroad force-pushed on Oct 31, 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 Nov 1, 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 2, 2014
  46. rebroad force-pushed on Nov 2, 2014
  47. rebroad force-pushed on Nov 3, 2014
  48. Add nLastDataPos variable for partial message tracking. 307fc14760
  49. Add NodeId to CNodeState (for logging/debugging purposes) 47224d1525
  50. Rearrange ProcessMessages 653be33b95
  51. Track partial block download progress, timings and bandwidth, and add disconnect logic for stalls. 3f11d459ae
  52. Add CaughtUp() function (needed by later commits) 061b287bc1
  53. rebroad force-pushed on Nov 10, 2014
  54. 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.
  55. rebroad force-pushed on Nov 12, 2014
  56. rebroad closed this on Nov 12, 2014

  57. rebroad reopened this on Nov 12, 2014

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

  70. DrahtBot locked this on Sep 8, 2021


rebroad laanwj

Labels
P2P


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: 2024-12-19 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me