Pages:
Author

Topic: Getting the chain faster - more than 8 outbound connections - page 2. (Read 5144 times)

member
Activity: 85
Merit: 10
The number of connections really doesn't matter. I've downloaded the chain at pretty much the same speed with 120 connections.
If you don't believe us forward the bitcoin port to your pc in your router. It doesn't matter if the additional connections are incoming or outgoing but it's better for the network health to have incoming connections and you wont have to recompile your client.

The limiting factor is almost always the harddisk and it has been improved in the new beta release AFAIK. Again if you don't believe us create a ramdisk and download the blockchain there. You should see a significant speed up since the RAM is much faster than your harddisk.
hero member
Activity: 815
Merit: 1000
I get about 50 a minute, thats about 41 kb/s.

My load is around 5-10% average. Memory usage is a bit high right now since I doing programming in visual studio, but I have plenty to spare.
To clarify, you are seeing CPU load of around 5-10% while you are getting blocks at about 50 a minute. Is that correct?

Yes:

50 blocks/minute
Estimated datatransfer speed 41 kb/s (with each block = 50 kb)
5-10% average CPU load
1.5 gb of 2 gb ram allocated (windows 7... seems to load a lot of things - no slowdowns though)

EDIT: My client is the one from bitcoin.org, version 0.5.2
legendary
Activity: 1072
Merit: 1181
As I've said before in another thread, the initial synchronisation process consists of three steps:
  • Downloading the data: limited by your and your peer's network speed
  • Maintaining the database: mostly limited by disk latency
  • Verifying the chain: limited by CPU speed

Before 0.6.0, maintaining the database almost always outweighed the other two. With 0.6.0rc5 the caching settings have been tweaked, resulting in a remarkable speedup for the database. This means that now the downloading time may indeed become significant, and it may be worth looking at improving the download process, for example downloading from several peers at once.

Increasing the number of outgoing connections will not help you get the chain faster: even when you use 0.6.0rc5, the chain is still downloaded from a single peer, and frequently still not the slowest step. In fact, increasing this number is a bad idea for the network, as peers with open incoming ports are not too abundant.
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
I get about 50 a minute, thats about 41 kb/s.

My load is around 5-10% average. Memory usage is a bit high right now since I doing programming in visual studio, but I have plenty to spare.
To clarify, you are seeing CPU load of around 5-10% while you are getting blocks at about 50 a minute. Is that correct?
administrator
Activity: 5222
Merit: 13032
Bitcoin only downloads the chain from one of your peers at a time, so connecting to more will only increase your chances of connecting to a fast one. You could get the same effect by "-connect"ing to a node you know is fast.

(As others have mentioned, network speed isn't usually the limiting factor, anyway.)
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
Nope.  The source is there to encourage people to look at it.
hero member
Activity: 815
Merit: 1000
Have you read src/doc/build-msw.txt ?

It should build under mingw.  I don't know if VS works.
Hmm I don't see that folder in src.

I'm not building with VS thats just homework Smiley

I kinda thought the bitcoin client was built each time you ran it - hence why the source files where there...
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
Have you read src/doc/build-msw.txt ?

It should build under mingw.  I don't know if VS works.
hero member
Activity: 815
Merit: 1000
If you want more connections you can open the inbound port and people will connect to you.  If you want to force more connections you can edit MAX_OUTBOUND_CONNECTIONS in net.cpp.

Yeah did that before, how do I make it recompile? (I still get 8 connections only)
hero member
Activity: 815
Merit: 1000
Copying != committing. Committing takes about three spins of the drive per object committed.
Even so this seems to be taking too long unless the database commits are being done in horrendous manor...

Quote
It's more likely the time it take to commit each block and transaction to disk and verify all the transactions in it. How many blocks per minute are you getting? What's your CPU load look like? What CPU do you have?
I get about 50 a minute, thats about 41 kb/s.

My load is around 5-10% average. Memory usage is a bit high right now since I doing programming in visual studio, but I have plenty to spare.

CPU is AMD64 dual core 5400+ 2.81 GHz. I run most heavy games though not at full graphics anymore.

I'm in Scandinavia so I don't know how good the node coverage is here.


I have modified the source code now, there was a constant in the top of file src/Net.cpp with MAX_OUTBOUND or something. Was 8 and I changed it to 80.

Program didn't seem to recompile though.
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
To maintain database integrity it writes out a journal of the transaction to be peformed, syncs the disk, writes the transaction, syncs again, then deletes the journal.  This hits the disk much harder than a simple copy and it has to be done millions of times.

If you want more connections you can open the inbound port and people will connect to you.  If you want to force more connections you can edit MAX_OUTBOUND_CONNECTIONS in net.cpp.

If you actually want it to go faster, try the beta.  The database settings have been adjusted for better performance: https://bitcointalksearch.org/topic/version-06-release-candidate-5-binaries-74214

If you want to skip the download process you can download a blockchain from here:  http://eu1.bitcoincharts.com/blockchain/
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
The blockchain download speed is mostly limited by the time it takes the database to commit to the disk.  Extra connections won't help.

That is blatantly false, the size was what 500 mb in 2011 and now maybe its double that - I could copy that from disk to disk in a few minutes.
Copying != committing. Committing takes about three spins of the drive per object committed.

Quote
I have been waiting days with the client running - its crazy.

The 8 connections only is the problem.
It's more likely the time it take to commit each block and transaction to disk and verify all the transactions in it. How many blocks per minute are you getting? What's your CPU load look like? What CPU do you have?
hero member
Activity: 815
Merit: 1000
The blockchain download speed is mostly limited by the time it takes the database to commit to the disk.  Extra connections won't help.

That is blatantly false, the size was what 500 mb in 2011 and now maybe its double that - I could copy that from disk to disk in a few minutes.

I have been waiting days with the client running - its crazy.

The 8 connections only is the problem.
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
The blockchain download speed is mostly limited by the time it takes the database to commit to the disk.  Extra connections won't help.
hero member
Activity: 815
Merit: 1000
Hey,

would it be possible to edit the source code so that more than 8 outbound connections were allowed?

(See this thread: https://bitcointalksearch.org/topic/m.507980)

Could anyone point me to the part of the source code I need to edit?

I think this should be standard, at least until you have the block chain - this will decrease the annoyance experienced by new users.
(or people like me with multiple computers)

I don't want to trust an online wallet.

Is there any selfish thin clients out yet? Something I could easily put on new computers?
Pages:
Jump to: