4

If I'm connected to 500 peers, will I know about transactions faster than if I'm only connected to 8 peers?

  • 1
    If you are connected to 500 peers your computer is doing a lot more work relaying to others and that will slow yours down. – Stephen Gornick Sep 5 '12 at 5:12
  • 1
    Do you mean new unconfirmed transactions? Newly-confirmed transactions? Are you assuming you've already downloaded the block chain? Some more context would be helpful. – David Schwartz Sep 5 '12 at 23:25
1

As Bitcoin broadcasts its knowledge of new transactions only to a few nodes at a time, statistically speaking, being connected to more nodes will make it more probable you will get information on new transactions. I'm not sure how this would perform in practice, however. Forcing so many connections would probably be a drain on your system and outweigh the benefits.

  • 1
    Let's assume I had a totally baller system, SSD, several gigs, ultra highspeed connection, etc. Would it then be reasonable? – Shamoon Sep 11 '12 at 13:25
  • @Shamoon Probably yes, but the advantage would be small in the end - finding out about a transaction a couple seconds earlier at most. – ThePiachu Sep 11 '12 at 17:18
2

No, very little of the time for downloading new blocks is actually related to network transmission.

Most of the work being done is the I/O against your hard drive as the program writes data to the BDB database storage. If you are on an encrypted filesystem, the problem is exacerbated. There is some CPU work as the elliptic curve encryption is used when verifying the signature for each transaction so a faster CPU will help as well.

Some people use SSD disk storage and report quite respectable download times

Some improvements are coming in v0.7 of the Bitcoin.org client but the real signficant performance improvement will come from the use of LevelDB and "ultraprune", both of which are expected in v0.8.

0

Not 100% sure how relevant this is, but BitTorrent (which, being peer-to-peer software, works in a similar way) apparently runs into trouble with performance when the connection limit is set too high.

Like BitTorrent, you'll probably find that there's an optimum number that your setup can handle, which would differ depending on your individual machine and network capability, and any other load running through the same system. The best way to figure it out is probably experimentation.

If you wrote some custom code that looked at the sources of transactions, you'd probably find that some nodes send you a lot more new transactions than other nodes, and more quickly. Perhaps it's possible to drop connections to nodes that aren't performing well in sending you transactions quickly, though some might consider this would be going against the community philosophy that Bitcoin is founded on. I'd argue it's probably still appropriate for serious miners to do it, as there are plenty of other non-mining nodes to ensure the network is well connected.

  • 1
    Note that my interpretation of the question is that it is asking about receiving unconfirmed transactions, not blocks. However, it is somewhat ambiguous... – Highly Irregular Sep 6 '12 at 8:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.