Pages:
Author

Topic: Will the block chain size ever become too large? - page 2. (Read 20405 times)

member
Activity: 82
Merit: 10
Also, what is "too big".

Just a couple of years ago I built a .75 TB array to backup other machines and run a few VMs from.

Now the 250 GB disks in that were shoved into a couple of desktops, and that ENTIRE array was copied (with plenty of extra space) onto 1 disk.... and then, onto a new 5 and some change (available space) array. "Big" today, can be peanuts in a few years.

Though 300 million tx a day will still be a lot, but, by the time it happens, it will be less than it is now just by virtue of everything else scaling up, and well... though I dunno.... it still does seem like a lot per block. Seems like pruning will be important, with that much churn, I would bet there will be accounts that can have their entire existence purged...once it goes to zero, does it matter that it EVER had anything in it? Which mean, eventually blocks which have had all their tx purged, end up being pruned all the way down to its headers and top level hash derived from all the transactions that were purged.

it will be interesting to see how effective that is at keeping the size of the chain down.
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
Mike astutely identifies the bottleneck as the CPU power to verify transaction signatures. I've been doing some profiling and over 90% of the CPU time of the (non-generating) client is spent in ECDSA_verify.

Of course this is easily solvable using GPUs. So not a bottleneck anymore i guess.
legendary
Activity: 1708
Merit: 1010
The reason I'm thinking about it now, is because I would like to see bitcoin stay as decentralized as possible.  If it is left till later, then there are two undesirable outcomes:

1. Big corporations step in and take the role of bitcoin managers.
2. With the centralization of the currency, it is then easy for government agencies to step in and regulate.

This is one of the reasons I would like to see the block size limited to 2-4k.  With something so small, the chain can exist on a 500GB HD for 2000 years and reasonably downloadable for 46 years (assuming 10GB download in a day).  This keeps it within reach of the small operator who wants to compete with the big banks.  If we want to see the currency traded freely for many years into the future, we need to look at (and solve) the problems now.

There will be some centralization, but what you really fear is a de facto monopoly.  This is, for all practical purposes, impossible.  The size of the blocks is irrelevant, since the only part of the block that is permanent is the 80 byte header.  The rest can be purged eventually, after the transactions have been referenced.
Hal
vip
Activity: 314
Merit: 4276
See this analysis by [mike] looking at similar transaction loads and what that would mean for mining servers:

https://bitcointalksearch.org/topic/m.34469

Mike astutely identifies the bottleneck as the CPU power to verify transaction signatures. I've been doing some profiling and over 90% of the CPU time of the (non-generating) client is spent in ECDSA_verify.

There are plans for lightweight clients that would not download blocks, just headers. Then they would be sent details of transactions involving them. Only the big iron would keep the block chain.
member
Activity: 72
Merit: 10
The reason I'm thinking about it now, is because I would like to see bitcoin stay as decentralized as possible.  If it is left till later, then there are two undesirable outcomes:

1. Big corporations step in and take the role of bitcoin managers.
2. With the centralization of the currency, it is then easy for government agencies to step in and regulate.

This is one of the reasons I would like to see the block size limited to 2-4k.  With something so small, the chain can exist on a 500GB HD for 2000 years and reasonably downloadable for 46 years (assuming 10GB download in a day).  This keeps it within reach of the small operator who wants to compete with the big banks.  If we want to see the currency traded freely for many years into the future, we need to look at (and solve) the problems now.
legendary
Activity: 1652
Merit: 2301
Chief Scientist
We've talked about these kinds of scaling issues in the past, and we've got a ways to go until they become an issue.

I still strongly believe that we shouldn't worry about them until they actually start to become a problem.

Long before we get to 300 million transactions per day there will be big companies spending lots of engineering dollars on their own highly optimized versions of bitcoin.

I bet there will be alternative, secure-and-trusted, very-high-speed network connections between major bitcoin transaction processors.  Maybe it will just be bitcoin transactions flying across the existing Visa/MasterCard/etc networks (I have no idea what their transaction clearing/processing networks look like or how they work).

Instead of worrying about "what will we do when we are wildly successful" we should be worrying about "what should we do RIGHT NOW so we become wildly successful."
member
Activity: 72
Merit: 10
I've been thinking about this problem as well.  If bitcoin is to go mainstream, there needs to be a way to deal with a huge number of transactions.  Here is an example of the math...

In a population of 300 million, estimate everyone does one transaction per day on average.  The current block generation is about one every 10 minutes, or 6 an hour, or 144 per day.  If you divide 300 million by 144, you get 2.08 million transactions per block.  If the minimum size per each transaction is around 100 bytes (I'm just guessing here), then each block is going to be around 200 million bytes.

So, I see the following issues:

1. Huge bandwidth problems.  (144*200 million bytes is 28 Gigs per day.)
2. Storage issues. (28 Gigs per day is 10 Tera bytes per year)
3. Computational issues. (The current block size is around 1-2k.  Computing a hash for 200 MB is going to be much different.)

Here are a few other things I've thought about:

* What happens in the future when you issue a request to send someone funds and do not attach a fee for processing?  If no-one takes your request to process the funds, will the funds stay in "limbo"?
* I was thinking a good way to deal with the huge number of transactions is to mix bitcoin transactions with something like the ripple project (http://ripple-project.org/), or perhaps semi-centralized bitcoin clearing entities.
* Given the huge number of potential transactions per day, perhaps the block size needs to be limited to 2-4k.  This would force the above idea and keep the block chain manageable.
donator
Activity: 826
Merit: 1060
Does every Bitcoin instance on a peer node download this entire block chain? 
At this time, yes, every bitcoin app downloads its own copy of the full block chain.

This is not absolutely necessary. Several levels of optimization are available; it's just a "simple matter of programming".

In the future, big nodes (e.g. those operated by exchangers) will download the whole block chain, but the "average joe" will run a "bitcoin lite" that just downloads the data needed to support his own use of bitcoin.
newbie
Activity: 47
Merit: 0
As I understand Bitcoin P2P network, there is a block chain that holds a record of every transaction that ever happened.

Does every Bitcoin instance on a peer node download this entire block chain?  If so, at some point won't it become untenable to
download the entire chain as it gets larger and larger ?

I hope that I'm missing something here, but I'm concerned that as the volume of transactions increases we'll have to make some changes to how many of the blocks we keep track of in the nodes.
Pages:
Jump to: