Post
Topic
Board Bitcoin Discussion
Re: Broadcasting the Blockchain
by
MoonShadow
on 26/03/2014, 20:55:39 UTC
You don't always need a missed block, but if you do, there are alternative paths to aquire missed data.

So, how do you know that you missed a needed block?

Double/tripple/etc broadcasting does not solve the problem. When is the block repeated? 8 hours later? What if you are off the grid for 24 hours, or just happen to be off when the rebroadcast occurs. The issue is not "unlikely" the issue is: the system is not 100% guaranteed.

You can retransmit blocks with decreasing frequency as they get older. If you miss recent blocks, wait a little while and you get another copy. If you missed old blocks, you may have to wait a long time to get them, but you will eventually get them.

With the 'naked block' protocol being considered, you don't even need this much.  Currently, all full clients require all the data in order to completely check every block for validity, but a "light client" doesn't require this kind of certainty.  Since it's unlikely that clients receiving updates via this method would be mining, complete blocks are not necessary.  What is necessary is a complete block header chain, which only weighs in at 4 mb per year; and the merkle tree for any blocks that contain transactions that concern the client itself.  While it would be ideal to broadcast those merkle trees with the block header (i.e. the naked block, all except the actual transactions) it would be profoundly silly to broadcast every single transaction complete.