Client receives and stores transactions while syncing #2303

issue Belkaar opened this issue on February 13, 2013
  1. Belkaar commented at 6:44 AM on February 13, 2013: none

    My 0.8.0rc1 (self compiled from git tag) receives transactions from peers while syncing, which results in them beeing orphaned and the orphan-list filling up.

    Suggestion: Do not request or handle incomming transaction while in initial sync or when the client knows its blockchain is old. Also: Start connecting to peers only after every --loadblock entry has been processed

  2. gmaxwell commented at 6:58 AM on February 13, 2013: contributor

    This should be harmless, is there a reason I'm unaware of that it isn't?

  3. Belkaar commented at 6:59 AM on February 13, 2013: none

    No security implications that I can see, but it prolongs initial sync on low-resource nodes.

  4. gmaxwell commented at 7:14 AM on February 13, 2013: contributor

    I don't see how it could non-trivially prolong the initial sync on low resource nodes. (I'm not arguing that it doesn't— but tell me why you believe it does)

  5. Belkaar commented at 7:23 AM on February 13, 2013: none

    As I understand it if the node receives the transaction it has to look up all inputs (which in this case don't exist)

    On one of these http://www.pcengines.ch/alix2d2.htm (I admit it's extremely low resource) I saw about 10% increase in syncing speed (accepted blocks / time) from --loadblock between specifying "connect=10.1.2.3" (non existent node -> preventing the client from connecting to the network) in bitcoin.conf and letting the node connect to the network.

  6. gavinandresen commented at 12:22 AM on February 14, 2013: contributor

    10% potential performance improvement during bootstrapping or -loadblock is not enough to justify the testing effort to make sure a change doesn't break anything, in my opinion.

  7. gmaxwell commented at 12:36 AM on February 14, 2013: contributor

    @gavinandresen I generally agree but 10% is more than I would have suspected— might be an interesting scenario to profile and find some low hanging inefficiencies which apply outside of the bootstrap case. (In particular, if isolating a loadblocking node gets you a 10% speedup— there may be a DOS vector lurking in there)

  8. Belkaar commented at 6:03 AM on February 14, 2013: none

    Since on this hardware the bottleneck is the CPU it is entirely possible that the 10% is the CPU load that is normally used to handle network traffic and p2p discovery.

  9. laanwj commented at 3:36 PM on February 9, 2016: member

    This was implemented in #7164

  10. laanwj closed this on Feb 9, 2016

  11. owlhooter referenced this in commit 0a93b0de88 on Oct 11, 2018
  12. MarcoFalke 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-04-22 06:16 UTC

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