[Bitcoin-development] Why are we bleeding nodes?

Tamas Blummer tamas at bitsofproof.com
Mon Apr 7 19:50:26 UTC 2014


You have to load headers sequantially to be able to connect them and determine the longest chain.

Blocks can be loaded in random order once you have their order given by the headers.
Computing the UTXO however will force you to at least temporarily store the blocks unless you have plenty of RAM. 

Regards,

Tamas Blummer
http://bitsofproof.com

On 07.04.2014, at 21:30, Paul Lyon <pmlyon at hotmail.ca> wrote:

> I hope I'm not thread-jacking here, apologies if so, but that's the approach I've taken with the node I'm working on.
> 
> Headers can be downloaded and stored in any order, it'll make sense of what the winning chain is. Blocks don't need to be downloaded in any particular order and they don't need to be saved to disk, the UTXO is fully self-contained. That way the concern of storing blocks for seeding (or not) is wholly separated from syncing the UTXO. This allows me to do the initial blockchain sync in ~6 hours when I use my SSD. I only need enough disk space to store the UTXO, and then whatever amount of block data the user would want to store for the health of the network.
> 
> This project is a bitcoin learning exercise for me, so I can only hope I don't have any critical design flaws in there. :)
> 
> From: tamas at bitsofproof.com
> Date: Mon, 7 Apr 2014 21:20:31 +0200
> To: gmaxwell at gmail.com
> CC: bitcoin-development at lists.sourceforge.net
> Subject: Re: [Bitcoin-development] Why are we bleeding nodes?
> 
> 
> Once headers are loaded first there is no reason for sequential loading. 
> 
> Validation has to be sequantial, but that step can be deferred until the blocks before a point are loaded and continous.
> 
> Tamas Blummer
> http://bitsofproof.com
> 
> On 07.04.2014, at 21:03, Gregory Maxwell <gmaxwell at gmail.com> wrote:
> 
>> On Mon, Apr 7, 2014 at 12:00 PM, Tamas Blummer <tamas at bitsofproof.com> wrote:
>>> therefore I guess it is more handy to return some bitmap of pruned/full
>>> blocks than ranges.
>> 
>> A bitmap also means high overhead and— if it's used to advertise
>> non-contiguous blocks— poor locality, since blocks are fetched
>> sequentially.
>> 
> 
> 
> ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud.http://p.sf.net/sfu/13600_Cloudbees
> _______________________________________________ Bitcoin-development mailing list Bitcoin-development at lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/bitcoin-development

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140407/c7bb2295/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140407/c7bb2295/attachment.sig>


More information about the bitcoin-dev mailing list