Subject: Re: [Bitcoin-development] Fwd: Service bits for pruned nodes

From: Jeff Garzik <[email-masked]>
Date: Tue, 30 Apr 2013 16:11:47 -0400

On Tue, Apr 30, 2013 at 3:27 PM, Andy Parkins <[email-masked]> wrote:
> On Tuesday 30 April 2013 19:04:59 Jeff Garzik wrote:
>
>> The format currently used by bitcoind would be just fine --
>> blocks/blkNNNN.dat for raw data, size-limited well below 1GB.  Just
>> need to add a small metadata download, and serve the raw block files.
>
> That doesn't seem very generic.  It's tied far too much to the current storage
> format of bitcoind.

Hardly.  The storage format is bitcoin protocol wire format, plus a
tiny header.  It is supported in multiple applications already, and is
the most efficient storage format for bitcoin protocol blocks.

> Wouldn't it be better to add support for more bitcoin-protocol-oriented HTTP
> requests?  Then any client can supply the same interface, rather than being
> forced to create blkNNNN.dat on the fly?

You don't have to create anything on the fly, if you store blocks in
their native P2P wire protocol format.

>  http://bitcoind.example.com/block/BBBBBBBBBBBBBBBBBBBBBBB
>  http://bitcoind.example.com/tx/TTTTTTTTTTTTTTTTTTTTTTTT
>  http://bitcoind.example.com/block/oftx/TTTTTTTTTTTTTTTTTTT
>  http://bitcoind.example.com/peers
>  http://bitcoind.example.com/peer/nnn
>
> Essentially: block explorer's raw mode but in every bitcoind.  The hardest
> operation for light clients is finding out the block that contains a
> particular transaction -- something that bitcoind already knows.

This is a whole new client interface.  It's fun to dream this up, but
it is far outside the scope of an efficient HTTP protocol that
downloads blocks.

Your proposal is closer to a full P2P rewrite over HTTP (or a proxy thereof).

-- 
Jeff Garzik
exMULTI, Inc.
[email-masked]