Bitcoin Forum

Other => Beginners & Help => Topic started by: Dice on May 28, 2012, 09:28:14 PM



Title: Blockchain Download Question
Post by: Dice on May 28, 2012, 09:28:14 PM
Hi,

Just had a question about the Blockchain download speed. Now there is countless topics about this but I just wanted to better my understanding about this a little further.

So we all know bitcoin is P2P, like torrents are. So why is it that a download for a blockchain takes so long compared to a private tracker for a torrent?

What causes the blockchain to be so slow, is it due to the fact that the internet speeds of these nodes aren't ridiculously fast like private trackers are? Or is it a totally different ball game?

Thanks


Title: Re: Blockchain Download Question
Post by: Kansattica on May 28, 2012, 09:44:10 PM
Well, I know that part of it is that the block chain is a fairly large file. Even if you and the nodes have a relatively fast (Cable modem, I assume) connection, it's going to take some time.


Title: Re: Blockchain Download Question
Post by: Stephen Gornick on May 28, 2012, 11:13:48 PM
Hi,

Just had a question about the Blockchain download speed. Now there is countless topics about this but I just wanted to better my understanding about this a little further.

So we all know bitcoin is P2P, like torrents are. So why is it that a download for a blockchain takes so long compared to a private tracker for a torrent?

What causes the blockchain to be so slow, is it due to the fact that the internet speeds of these nodes aren't ridiculously fast like private trackers are? Or is it a totally different ball game?

Thanks

The most recent version of the client performs much better than previous versions.

Much of the time spent waiting on the blockchain to download is actually spent by the client verifying each new block that it downloads and adding it to the blockchain database and index.  Faster networking doesn't make that step occur any faster.

Using slower hardware (e.g., laptop with an atom processor) exacerbates the perception that it takes forever.

If you do have problems with getting the client to update the blockchain it might be in that you don't have reliable connectivity (e.g., a flakey wi-fi signal?) or there are firewall issues?  But do realize, the amount of data is significant -- pulling 2+ GB is a lot of network transfer.


Title: Re: Blockchain Download Question
Post by: Dice on May 28, 2012, 11:37:56 PM
Hi,

Just had a question about the Blockchain download speed. Now there is countless topics about this but I just wanted to better my understanding about this a little further.

So we all know bitcoin is P2P, like torrents are. So why is it that a download for a blockchain takes so long compared to a private tracker for a torrent?

What causes the blockchain to be so slow, is it due to the fact that the internet speeds of these nodes aren't ridiculously fast like private trackers are? Or is it a totally different ball game?

Thanks

The most recent version of the client performs much better than previous versions.

Much of the time spent waiting on the blockchain to download is actually spent by the client verifying each new block that it downloads and adding it to the blockchain database and index.  Faster networking doesn't make that step occur any faster.

Using slower hardware (e.g., laptop with an atom processor) exacerbates the perception that it takes forever.

If you do have problems with getting the client to update the blockchain it might be in that you don't have reliable connectivity (e.g., a flakey wi-fi signal?) or there are firewall issues?  But do realize, the amount of data is significant -- pulling 2+ GB is a lot of network transfer.
Thank you for taking the time to respond.

I am currently sitting on a laptop yes, it isn't new either so it may explain the issue. Though my internet speed is fast, so i guess it comes down to the laptop. Now this may be a silly question but how important is it to verify the blockchain upon specific block downloads? For instance would it be a smart idea for Bitcoin-QT to do this?


Title: Re: Blockchain Download Question
Post by: deusstultus on May 29, 2012, 03:25:53 AM
Hi,

Just had a question about the Blockchain download speed. Now there is countless topics about this but I just wanted to better my understanding about this a little further.

So we all know bitcoin is P2P, like torrents are. So why is it that a download for a blockchain takes so long compared to a private tracker for a torrent?

What causes the blockchain to be so slow, is it due to the fact that the internet speeds of these nodes aren't ridiculously fast like private trackers are? Or is it a totally different ball game?

Thanks

The most recent version of the client performs much better than previous versions.

Much of the time spent waiting on the blockchain to download is actually spent by the client verifying each new block that it downloads and adding it to the blockchain database and index.  Faster networking doesn't make that step occur any faster.

Using slower hardware (e.g., laptop with an atom processor) exacerbates the perception that it takes forever.

If you do have problems with getting the client to update the blockchain it might be in that you don't have reliable connectivity (e.g., a flakey wi-fi signal?) or there are firewall issues?  But do realize, the amount of data is significant -- pulling 2+ GB is a lot of network transfer.
Thank you for taking the time to respond.

I am currently sitting on a laptop yes, it isn't new either so it may explain the issue. Though my internet speed is fast, so i guess it comes down to the laptop. Now this may be a silly question but how important is it to verify the blockchain upon specific block downloads? For instance would it be a smart idea for Bitcoin-QT to do this?
Rather vital.  If you don't verify your blockchain, you could both have misrepresentation of your available funds, and your being an unreliable node would bog down the network.  Of course if you have a node you trust with absolute certainty, you could pull the blockchain from that machine directly (outside of the client) but even this is not ideal.


Title: Re: Blockchain Download Question
Post by: flatronw on May 29, 2012, 04:37:05 AM


Recently I had to update 14 days of history on my BTC client, on a 56Kb connection that took more than 16 hrs non-stop and pinned my router traffic at its ceiling for the entire period making the connection basically un-useable for any kind of browsing.
Because of the security issues regarding Wallets. We are all cautioned to keep wallets off-line there-fore you are forced into a regime of periodic updating.
As a noob I assume that as more BTC are mined and more transactions take place. The amount of history/transaction data will also increase proportionally beyond what it is currently.
Now I am sure that many will say, who the hell still has a 56Kb connection in this day and age? Well a huge number do still have sub 56Kb connections in the less developed parts of the world, and they consider themselves lucky!!.
This is something the developers need to consider.  Not everybody is sitting on the end of a Fibre E1 or T1 pulling down 10 MB’s on a bad day.

To encourage acceptance, BTC needs to be easily access-able by anybody who wants to use it.


Title: Re: Blockchain Download Question
Post by: MoonShadow on May 29, 2012, 04:48:46 AM


Recently I had to update 14 days of history on my BTC client, on a 56Kb connection that took more than 16 hrs non-stop and pinned my router traffic at its ceiling for the entire period making the connection basically un-useable for any kind of browsing.
Because of the security issues regarding Wallets. We are all cautioned to keep wallets off-line there-fore you are forced into a regime of periodic updating.
As a noob I assume that as more BTC are mined and more transactions take place. The amount of history/transaction data will also increase proportionally beyond what it is currently.
Now I am sure that many will say, who the hell still has a 56Kb connection in this day and age? Well a huge number do still have sub 56Kb connections in the less developed parts of the world, and they consider themselves lucky!!.
This is something the developers need to consider.  Not everybody is sitting on the end of a Fibre E1 or T1 pulling down 10 MB’s on a bad day.

To encourage acceptance, BTC needs to be easily access-able by anybody who wants to use it.

This is something that developers have considered.  You need to use a light client, not a full node.


Title: Re: Blockchain Download Question
Post by: MoonShadow on May 29, 2012, 04:51:40 AM

What causes the blockchain to be so slow, is it due to the fact that the internet speeds of these nodes aren't ridiculously fast like private trackers are? Or is it a totally different ball game?


It's a different ball game.  The largest part of bootstrapping the blockchain, either on first boot or a catchup, involves verifying each block before proceeding to the next one.  This is both a compuationally & disk access intensive process.  There are ways that future clients could improve significantly on this, but right now the focus is on primary function & security, not performance.


Title: Re: Blockchain Download Question
Post by: flatronw on May 29, 2012, 05:03:36 AM


As a noob please humour me,

What is a "light client" as opposed to a full node?  I am simply doing what I imagine all other noobs do. They have downloaded the BTC client and off they have gone!


Title: Re: Blockchain Download Question
Post by: MoonShadow on May 29, 2012, 05:13:49 AM


As a noob please humour me,

What is a "light client" as opposed to a full node?  I am simply doing what I imagine all other noobs do. They have downloaded the BTC client and off they have gone!

A 'light client' is one of a couple of slightly different hacks, all that are intended to allow the user to have a local wallet.dat while not requiring the full blockchain.  The two big ways this works are 1) blockchain headers only client and 2) split wallet.dat client.  #1) Doesn't really save much bandwidth yet, because the network doesn't (yet) support partial block downloads so right now they have to download the whole block before discarding the parts it does not need, which is all of the transactions that do not include inputs or outputs that use any of it's own addresses.  However, #2 does work at present, and one wonderful such example is BitcoinSpinner for the Android smartphone OS.  How it works is that the phone keeps the addresses & their associated private keys encrypted on the phone, while the rest of what is kept in the normal wallet.dat file is kept on an account with the BitcoinSpinner server.  The server knows your (very few) addresses, and tracks your balances for you.  When you need to send money, your phone will inform the server to whom you need to send a transaction and for how much.  The server then creates the transaction based upon it's local blockchain & what part of the wallet.dat that it possesses, and then sends that to your phone which then uses the private keys to sign the transaction, and sends it back to the server, which then sends it to the network.  Method #1 was described in the original white paper by Satoshi, but method #2 seems to be the more practical method at this time.


Title: Re: Blockchain Download Question
Post by: flatronw on May 29, 2012, 05:38:18 AM


Thank you for that clear and concise explanation. For a change, I believe I actually understood that. I take it that option 2 is the only current viable "light client" available and currently that only will run on Android or similar. So it looks like non Android users are back with the Full Node.


Title: Re: Blockchain Download Question
Post by: NothinG on May 29, 2012, 05:48:20 AM
For faster downloads, checkout the nightly blockchain. http://eu1.bitcoincharts.com/blockchain/


Title: Re: Blockchain Download Question
Post by: deusstultus on May 29, 2012, 05:50:38 AM


As a noob please humour me,

What is a "light client" as opposed to a full node?  I am simply doing what I imagine all other noobs do. They have downloaded the BTC client and off they have gone!

A 'light client' is one of a couple of slightly different hacks, all that are intended to allow the user to have a local wallet.dat while not requiring the full blockchain.  The two big ways this works are 1) blockchain headers only client and 2) split wallet.dat client.  #1) Doesn't really save much bandwidth yet, because the network doesn't (yet) support partial block downloads so right now they have to download the whole block before discarding the parts it does not need, which is all of the transactions that do not include inputs or outputs that use any of it's own addresses.  However, #2 does work at present, and one wonderful such example is BitcoinSpinner for the Android smartphone OS.  How it works is that the phone keeps the addresses & their associated private keys encrypted on the phone, while the rest of what is kept in the normal wallet.dat file is kept on an account with the BitcoinSpinner server.  The server knows your (very few) addresses, and tracks your balances for you.  When you need to send money, your phone will inform the server to whom you need to send a transaction and for how much.  The server then creates the transaction based upon it's local blockchain & what part of the wallet.dat that it possesses, and then sends that to your phone which then uses the private keys to sign the transaction, and sends it back to the server, which then sends it to the network.  Method #1 was described in the original white paper by Satoshi, but method #2 seems to be the more practical method at this time.
#2 is a decent model in that it prevents unnecessary traffic on a wallet only standpoint, but this falls back on a central 'bank' server which is hardly ideal. Analogy is not accurate, I grant. Curiously, I've just considered a resolution to this issue outside of the proposed norms that could potentially have great merit.  Will have to explore that further when I doff this newbie pall.


Title: Re: Blockchain Download Question
Post by: Stephen Gornick on May 29, 2012, 09:37:02 AM
Thank you for that clear and concise explanation. For a change, I believe I actually understood that. I take it that option 2 is the only current viable "light client" available and currently that only will run on Android or similar. So it looks like non Android users are back with the Full Node.

Desktop clients - Quick comparison chart
 - http://dre.tx0.org/compare.htm
 - http//bitcointalk.org/index.php?topic=83768.0

 - http://lovebitcoins.org/getStarted.html


Title: Re: Blockchain Download Question
Post by: MoonShadow on May 29, 2012, 05:52:19 PM


Thank you for that clear and concise explanation. For a change, I believe I actually understood that. I take it that option 2 is the only current viable "light client" available and currently that only will run on Android or similar. So it looks like non Android users are back with the Full Node.

I'm pretty sure that Electrum uses a similar method for desktop machines, but I'm not sure about how ready that client is.  The last I heard it was still beta.


Title: Re: Blockchain Download Question
Post by: flatfly on May 30, 2012, 08:27:26 AM


Thank you for that clear and concise explanation. For a change, I believe I actually understood that. I take it that option 2 is the only current viable "light client" available and currently that only will run on Android or similar. So it looks like non Android users are back with the Full Node.

I'm pretty sure that Electrum uses a similar method for desktop machines, but I'm not sure about how ready that client is.  The last I heard it was still beta.

True, but aren't all desktop clients currently alpha or beta?

Electrum has come a long way since the beginning of the year, has no known major bugs,
and its main developer (ThomasV) has proven to be extremely responsive and open to suggestions.  
FWIW, I have been comfortable using it as my main wallet for about 3 months now, and feel that it can
really be a nice first choice for new users. (To be honest, MultiBit is also VERY promising in that respect,
were it not for the lack of support for encryption at this time.)

I would suggest to give it a try to get a first-hand feeling of its learning curve and stability.


Full disclosure: I'm a big Electrum fan (as you can probably tell!) - and I also make stand-alone Windows builds for it.