Bitcoin Forum
May 09, 2024, 04:22:10 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: What prevents the blockchain from becoming impossibly large?  (Read 2552 times)
taltamir (OP)
Full Member
***
Offline Offline

Activity: 196
Merit: 100


View Profile
February 21, 2013, 01:14:13 AM
 #1

2009-01-03 - bitcoin introduced according to wikipedia
2012-09-21 - blockchain ~3GB - according to https://bitcointalk.org/index.php?topic=63844.msg1209059#msg1209059
2013-02-20 - my bitcoin data folder is 13.4GB (6GB for "blocks" subfolder + 172MB chainstate subfolder + 7.07GB for blkindex.dat and blk0001.dat through blk0003.dat)

At this rate it bitcoin will become unusable due to the chain files becoming too large to store.
Is there any mechanism in place (or one that is being designed) to prevent this? If so, where can I find more info about the mechanism for preventing data chain bloat?
1715271730
Hero Member
*
Offline Offline

Posts: 1715271730

View Profile Personal Message (Offline)

Ignore
1715271730
Reply with quote  #2

1715271730
Report to moderator
1715271730
Hero Member
*
Offline Offline

Posts: 1715271730

View Profile Personal Message (Offline)

Ignore
1715271730
Reply with quote  #2

1715271730
Report to moderator
In order to get the maximum amount of activity points possible, you just need to post once per day on average. Skipping days is OK as long as you maintain the average.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715271730
Hero Member
*
Offline Offline

Posts: 1715271730

View Profile Personal Message (Offline)

Ignore
1715271730
Reply with quote  #2

1715271730
Report to moderator
farlack
Legendary
*
Offline Offline

Activity: 1311
Merit: 1000



View Profile
February 21, 2013, 01:16:01 AM
 #2

We're all going to need 10tb ssd to use bitcoin Cheesy
kinghajj
Member
**
Offline Offline

Activity: 66
Merit: 10


View Profile
February 21, 2013, 01:18:13 AM
 #3

Quote
To enable this, the blockchain uses a merkle tree to organize the transaction records in such a way that client software can locally delete portions of its own database it knows it will never need, such as earlier transaction records of Bitcoins that have changed ownership multiple times.

https://en.bitcoin.it/wiki/Bitcoin#Confirmations

AFAIK, however, this is still unimplemented in the main Bitcoin client. But at least a solution is known.
taltamir (OP)
Full Member
***
Offline Offline

Activity: 196
Merit: 100


View Profile
February 21, 2013, 01:27:33 AM
 #4

Quote
To enable this, the blockchain uses a merkle tree to organize the transaction records in such a way that client software can locally delete portions of its own database it knows it will never need, such as earlier transaction records of Bitcoins that have changed ownership multiple times.

https://en.bitcoin.it/wiki/Bitcoin#Confirmations

AFAIK, however, this is still unimplemented in the main Bitcoin client. But at least a solution is known.

That is reassuring...
But if every client out there deletes the same old transactions wouldn't that be a problem?
Does the client not still need to at least initially download and verify every transaction in the chain before it can start pruning?
Would that introduce reliance on central servers who store the data everyone else is deleting?
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1006


View Profile
February 21, 2013, 01:35:56 AM
 #5

Well, you could easily run one of these "central servers" yourself too.

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
gmaxwell
Staff
Legendary
*
Offline Offline

Activity: 4172
Merit: 8419



View Profile WWW
February 21, 2013, 01:38:01 AM
 #6

Is there any mechanism in place (or one that is being designed) to prevent this? If so, where can I find more info about the mechanism for preventing data chain bloat?
The maximum growth rate is limited to 52GBytes/yr by the rules embedded in the system— meaning a $100 1TB HDD can store around 20 years of Bitcoin history..  The users of bitcoin would be foolish indeed to change the Bitcoin protocol to permit more size than that until computers and storage are advanced enough that the increased burden wouldn't be problematic.
grondilu
Legendary
*
Offline Offline

Activity: 1288
Merit: 1076


View Profile
February 21, 2013, 05:27:19 AM
 #7

But if every client out there deletes the same old transactions wouldn't that be a problem?

It would be a bad thing if an old transaction is totally forgotten, indeed.  It's quite unlikely to happen, though.  Say the probability for one client to forget a given transaction is p.   Then the probability for all clients to forget it, assuming the probabilities are independant, is p^N, where N is the number of clients.   So it is quite unlikely.

Quote
Does the client not still need to at least initially download and verify every transaction in the chain before it can start pruning?

Normally, yes.   But I'm not sure it's absolutely necessary.  If a spent transaction has been forgotten by all the network it means all clients have agreed to acknowledge this transaction to be valid and the bitcoins spent.  So you have to trust the network as a whole, as you do when you suppose that a majority of the computing power is honest.

Quote
Would that introduce reliance on central servers who store the data everyone else is deleting?

Such servers would not be "central" since anyone could make one at any time.

Littleshop
Legendary
*
Offline Offline

Activity: 1386
Merit: 1003



View Profile WWW
February 21, 2013, 05:27:22 AM
 #8

Is there any mechanism in place (or one that is being designed) to prevent this? If so, where can I find more info about the mechanism for preventing data chain bloat?
The maximum growth rate is limited to 52GBytes/yr by the rules embedded in the system— meaning a $100 1TB HDD can store around 20 years of Bitcoin history..  The users of bitcoin would be foolish indeed to change the Bitcoin protocol to permit more size than that until computers and storage are advanced enough that the increased burden wouldn't be problematic.


You just worked against your own point.   If a $100 drive can currently hold 20 years of history, allowing a 4x increase would not be problematic.   Also $105 will buy 2x the storage you quoted.  

Allowing a 4x increase in transactions would still allow 10 years of blockchain to be stored on a $105 drive.  This is not a problem.

foo
Sr. Member
****
Offline Offline

Activity: 409
Merit: 250



View Profile
February 21, 2013, 05:37:23 AM
 #9

2013-02-20 - my bitcoin data folder is 13.4GB (6GB for "blocks" subfolder + 172MB chainstate subfolder + 7.07GB for blkindex.dat and blk0001.dat through blk0003.dat)

Windows is lying to you. The block files in blocks\ and its parent directory are hardlinked and should only be counted once. You can delete blk0001.dat through blk0003.dat and blkindex.dat.

I know this because Tyler knows this.
ArticMine
Legendary
*
Offline Offline

Activity: 2282
Merit: 1050


Monero Core Team


View Profile
February 21, 2013, 06:25:17 AM
 #10

2013-02-20 - my bitcoin data folder is 13.4GB (6GB for "blocks" subfolder + 172MB chainstate subfolder + 7.07GB for blkindex.dat and blk0001.dat through blk0003.dat)

Windows is lying to you. The block files in blocks\ and its parent directory are hardlinked and should only be counted once. You can delete blk0001.dat through blk0003.dat and blkindex.dat.

On GNU/Linux (Ubuntu 12.04) my .bitcoin folder size is 7.7 GB. Anything more is just Microsoft Windows bloat that can be addressed by defenestrating (replacing Windows with GNU/Linux on) the computer in question.

Concerned that blockchain bloat will lead to centralization? Storing less than 4 GB of data once required the budget of a superpower and a warehouse full of punched cards. https://upload.wikimedia.org/wikipedia/commons/8/87/IBM_card_storage.NARA.jpg https://en.wikipedia.org/wiki/Punched_card
taltamir (OP)
Full Member
***
Offline Offline

Activity: 196
Merit: 100


View Profile
February 21, 2013, 06:58:37 AM
 #11

Is there any mechanism in place (or one that is being designed) to prevent this? If so, where can I find more info about the mechanism for preventing data chain bloat?
The maximum growth rate is limited to 52GBytes/yr by the rules embedded in the system— meaning a $100 1TB HDD can store around 20 years of Bitcoin history..  The users of bitcoin would be foolish indeed to change the Bitcoin protocol to permit more size than that until computers and storage are advanced enough that the increased burden wouldn't be problematic.
So, if bitcoin becomes widely successful and we get max grow, in 20 years it could reach 1.04TB chain and in 100 years 5.2TB chain? We are nearing the physical limits of miniaturization (barring subatomic computing)
And if litecoin succeeds too that means double that... then we can add namecoin...

But even if just bitcoin it seems excessive. 6.3GB already hurts on an SSD bootdrive.

Quote
It would be a bad thing if an old transaction is totally forgotten, indeed.  It's quite unlikely to happen, though.  Say the probability for one client to forget a given transaction is p.   Then the probability for all clients to forget it, assuming the probabilities are independant, is p^N, where N is the number of clients.   So it is quite unlikely.
This assumes transactions are deleted randomly using a strong RNG rather then based on a ruleset or a weak RNG.

Quote
Windows is lying to you. The block files in blocks\ and its parent directory are hardlinked and should only be counted once. You can delete blk0001.dat through blk0003.dat and blkindex.dat.
Thank you for clarifying.
The folder is now 6.32GB but no real change occured in the free space on the drive when deleted. (or if they did it was a few hundred megs at most and I didn't notice).
Are database and chainstate folders also part of it?

Quote
On GNU/Linux (Ubuntu 12.04) my .bitcoin folder size is 7.7 GB. Anything more is just Microsoft Windows bloat that can be addressed by defenestrating (replacing Windows with GNU/Linux on) the computer in question.
Unfortunately most games are for windows... so my gaming system is windows, and my gaming system is the one with a powerful enough GPU to mine on.
notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
February 21, 2013, 07:06:39 AM
 #12

Is there any mechanism in place (or one that is being designed) to prevent this? If so, where can I find more info about the mechanism for preventing data chain bloat?
The maximum growth rate is limited to 52GBytes/yr by the rules embedded in the system— meaning a $100 1TB HDD can store around 20 years of Bitcoin history..  The users of bitcoin would be foolish indeed to change the Bitcoin protocol to permit more size than that until computers and storage are advanced enough that the increased burden wouldn't be problematic.
So, if bitcoin becomes widely successful and we get max grow, in 20 years it could reach 1.04TB chain and in 100 years 5.2TB chain? We are nearing the physical limits of miniaturization (barring subatomic computing)
And if litecoin succeeds too that means double that... then we can add namecoin...

But even if just bitcoin it seems excessive. 6.3GB already hurts on an SSD bootdrive.

Quote
It would be a bad thing if an old transaction is totally forgotten, indeed.  It's quite unlikely to happen, though.  Say the probability for one client to forget a given transaction is p.   Then the probability for all clients to forget it, assuming the probabilities are independant, is p^N, where N is the number of clients.   So it is quite unlikely.
This assumes transactions are deleted randomly using a strong RNG rather then based on a ruleset or a weak RNG.

Quote
Windows is lying to you. The block files in blocks\ and its parent directory are hardlinked and should only be counted once. You can delete blk0001.dat through blk0003.dat and blkindex.dat.
Thank you for clarifying.
The folder is now 6.32GB but no real change occured in the free space on the drive when deleted. (or if they did it was a few hundred megs at most and I didn't notice).
Are database and chainstate folders also part of it?

Quote
On GNU/Linux (Ubuntu 12.04) my .bitcoin folder size is 7.7 GB. Anything more is just Microsoft Windows bloat that can be addressed by defenestrating (replacing Windows with GNU/Linux on) the computer in question.
Unfortunately most games are for windows... so my gaming system is windows, and my gaming system is the one with a powerful enough GPU to mine on.

Steam for linux is working nicely.  There are a few small glitches occasionally, but it's technically still in beta.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
taltamir (OP)
Full Member
***
Offline Offline

Activity: 196
Merit: 100


View Profile
February 21, 2013, 07:31:06 AM
 #13

Steam isn't the only platform for games... but I might switch even my gaming machine to it Smiley.

Back to topic, I was thinking, could clients not compile a snapshot of current ownership of all coins on the 1st of each year and trade those to each other (assembling the snapshot from processing all the transactions rather then from trying to capture what the status is on exactly the 1st). Those snapshops are then chained together in their own merkele tree.
They are repeatedly verified by the network up to a point. And transaction history older then 5 years is discarded (instead relying on the less granular yearly snapshots).
Perhaps monthly is better then yearly, not sure.

Dumb idea or a plausible long term solution?
kangasbros
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1006



View Profile
February 21, 2013, 08:35:52 AM
 #14

Is there any mechanism in place (or one that is being designed) to prevent this? If so, where can I find more info about the mechanism for preventing data chain bloat?
The maximum growth rate is limited to 52GBytes/yr by the rules embedded in the system— meaning a $100 1TB HDD can store around 20 years of Bitcoin history..  The users of bitcoin would be foolish indeed to change the Bitcoin protocol to permit more size than that until computers and storage are advanced enough that the increased burden wouldn't be problematic.


I think 52 GBytes/yr is not that much. It could easily be 512 GBytes/yr, and still not a big deal.

But then again, I definitely think that transactions should not be free. There should be some cost to making a transaction. I don't want to store others transaction spam just for fun.

HorseRider
Donator
Legendary
*
Offline Offline

Activity: 1120
Merit: 1001


View Profile
February 21, 2013, 11:02:05 AM
 #15

Is there any mechanism in place (or one that is being designed) to prevent this? If so, where can I find more info about the mechanism for preventing data chain bloat?
The maximum growth rate is limited to 52GBytes/yr by the rules embedded in the system


You mean the 1MB block size limit will lead to this? Is there any possibility that the we change this limit? Why would we have to have this limit except for the protecting the bitcoin from DDoS? I start to be really curious about the block size limit recently.

16SvwJtQET7mkHZFFbJpgPaDA1Pxtmbm5P
Piper67
Legendary
*
Offline Offline

Activity: 1106
Merit: 1001



View Profile
February 21, 2013, 11:16:44 AM
 #16

2013-02-20 - my bitcoin data folder is 13.4GB (6GB for "blocks" subfolder + 172MB chainstate subfolder + 7.07GB for blkindex.dat and blk0001.dat through blk0003.dat)

Windows is lying to you. The block files in blocks\ and its parent directory are hardlinked and should only be counted once. You can delete blk0001.dat through blk0003.dat and blkindex.dat.

On GNU/Linux (Ubuntu 12.04) my .bitcoin folder size is 7.7 GB. Anything more is just Microsoft Windows bloat that can be addressed by defenestrating (replacing Windows with GNU/Linux on) the computer in question.

"Defenestrating!" Hard LOL!
Zangelbert Bingledack
Legendary
*
Offline Offline

Activity: 1036
Merit: 1000


View Profile
February 21, 2013, 11:47:52 AM
 #17

It's really inverse defenestration, because it doesn't involve throwing things out of windows but throwing Windows out of things.
markm
Legendary
*
Offline Offline

Activity: 2940
Merit: 1090



View Profile WWW
February 21, 2013, 11:54:37 AM
 #18

It's really inverse defenestration, because it doesn't involve throwing things out of windows but throwing Windows out of things.

Think "to throw out windows".

-MarkM-

Browser-launched Crossfire client now online (select CrossCiv server for Galactic  Milieu)
Free website hosting with PHP, MySQL etc: http://hosting.knotwork.com/
Zangelbert Bingledack
Legendary
*
Offline Offline

Activity: 1036
Merit: 1000


View Profile
February 21, 2013, 11:58:19 AM
 #19

That's a good workaround.
streblo
Full Member
***
Offline Offline

Activity: 165
Merit: 100


View Profile
February 21, 2013, 06:51:45 PM
 #20

What prevents the blockchain from becoming impossibly large?
It depends on if you denominate "large" in bytes or dollar cost. If the former, then nothing; the blockchain will inexorably become impossibly large (which is good!). If the latter, then the exponentially decreasing price of storage costs will counter blockchain growth.


TL;DR: As long as the time taken for the blockchain size to double is longer than 14 months, the dollar cost to store the blockchain will exponentially decrease.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!