Does being connected to more peers relay transactions faster?

4

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

Shamoon

Posted 2012-09-04T19:26:02.530

Reputation: 2 689

1If 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 2012-09-05T05:12:40.617

1Do 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 2012-09-05T23:25:26.263

Answers

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.

ThePiachu

Posted 2012-09-04T19:26:02.530

Reputation: 41 594

1Let's assume I had a totally baller system, SSD, several gigs, ultra highspeed connection, etc. Would it then be reasonable?Shamoon 2012-09-11T13:25:24.620

@Shamoon Probably yes, but the advantage would be small in the end - finding out about a transaction a couple seconds earlier at most.ThePiachu 2012-09-11T17:18:37.660

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.

Stephen Gornick

Posted 2012-09-04T19:26:02.530

Reputation: 26 118

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.

Highly Irregular

Posted 2012-09-04T19:26:02.530

Reputation: 10 514

1Note that my interpretation of the question is that it is asking about receiving unconfirmed transactions, not blocks. However, it is somewhat ambiguous...Highly Irregular 2012-09-06T08:41:32.097