public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Gregory Maxwell <gmaxwell@gmail•com>
To: Pieter Wuille <pieter.wuille@gmail•com>
Cc: Bitcoin Dev <bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] Bitcoind-in-background mode for SPV wallets
Date: Thu, 10 Apr 2014 04:50:55 -0700	[thread overview]
Message-ID: <CAAS2fgTkgddRGGXuuAza-A=Dgjfr5aNF8yxDePPixN4M7Rbpyg@mail.gmail.com> (raw)
In-Reply-To: <CAPg+sBjWL_hKhWW-6i=WAHnx+Ue5JE=A9RrxnWuAYOXw19qiDw@mail.gmail.com>

On Thu, Apr 10, 2014 at 4:32 AM, Pieter Wuille <pieter.wuille@gmail•com> wrote:
> There were earlier discussions.

On this list.

> The two ideas were either using one or a few service bits to indicate
> availability of blocks, or to extend addr messages with some flags to
> indicate this information.
>
> I wonder whether we can't have a hybrid: bits to indicate general
> degree of availability of blocks (none, only recent, everything), but
> indicate actual availability only upon actually connecting (through a
> "version" extension, or - preferably - a separate message). Reason is
> that the actual blocks available are likely to change frequently (if
> you keep the last week of blocks, a 3-day old addr entry will have
> quite outdated information), and not that important to actual peer
> selection - only to drive the decision which blocks to ask after
> connection.

I think you actually do need the kept ranges to be circulated,
otherwise you might need to hunt for a very long time to find the
right nodes with the blocks you need.  Alternatively, you give up and
don't hunt and pick some node that has them all and we get poor load
distribution. I'd rather be in a case where the nodes that have the
full history are only hit as a last resort.

WRT the changing values, I think that is pretty uniquely related to
the most recent blocks, and so instead I think that should be handled
symbolically (e.g. the hybrid approach... a flag for the "I keep the
most recent 2000 blocks", I say 2000 because thats about where the
request offset historgrams flattened out) or as a single offset range
"I keep the last N=200",  and the flag or the offset would be in
addition to whatever additional range was signaled. The latter could
be infrequently changing.

Signaling _more_ and more current range data on connect seems fine to
me, I just don't think it replaces something that gets relayed.

Based on the safety against reorgs and the block request access
patterns we observed I'm pretty sure we'd want any node serving blocks
at all to be at least the last N (for some number between 144 and 2000
or so). Based on the request patterns if just the recent blocks use up
all the space you're willing to spend, then I think thats probably
still the optimal contribution...

(Just be glad I'm not suggesting coding the entire blockchain with an
error correcting code so that it doesn't matter which subset you're
holding)



  parent reply	other threads:[~2014-04-10 11:51 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-09 15:29 Wladimir
2014-04-09 15:37 ` Tamas Blummer
2014-04-09 15:41 ` Natanael
2014-04-09 15:54   ` Gregory Maxwell
2014-04-09 16:09     ` Thomas Voegtlin
2014-04-09 19:25       ` Wladimir
2014-04-10  6:04         ` Tamas Blummer
2014-04-10 11:09           ` Wladimir
2014-04-10 11:29             ` Mike Hearn
2014-04-10 11:32             ` Pieter Wuille
2014-04-10 11:43               ` Peter Todd
2014-04-10 11:50               ` Gregory Maxwell [this message]
2014-04-10 11:54                 ` Peter Todd
2014-04-10 17:30                   ` Tier Nolan
2014-04-11 16:54                     ` Gregory Maxwell
2014-05-04 21:11                       ` Tier Nolan
2014-04-09 17:31   ` Wladimir
2014-04-09 15:42 ` Brian Hoffman
2014-04-09 15:57   ` Gregory Maxwell
2014-04-09 16:09     ` Tamas Blummer
2014-04-09 15:47       ` Mark Friedenbach
2014-04-09 16:27         ` Tamas Blummer
2014-04-09 17:46           ` Peter Todd
2014-04-09 17:50             ` Tamas Blummer
2014-04-09 18:00               ` Mike Hearn
2014-04-09 18:19                 ` Wladimir
2014-04-09 18:35                   ` Justus Ranvier
2014-04-09 18:46                     ` Wladimir
2014-04-09 18:50                     ` Gregory Maxwell
2014-04-09 18:58                       ` Justus Ranvier
2014-04-09 19:33                         ` Gregory Maxwell
2014-04-09 20:12                           ` slush
2014-04-09 20:31                             ` slush
2014-04-09 20:36                               ` Mark Friedenbach
2014-04-09 21:04                                 ` Gregory Maxwell
2014-04-09 20:37                               ` Wladimir
2014-04-09 20:35                             ` Wladimir
2014-04-09 20:50                               ` slush
2014-04-09 20:55                             ` Laszlo Hanyecz
2014-04-10  6:38                             ` Mike Hearn
2014-04-10  6:50                               ` Wladimir
2014-04-10  7:09                                 ` Mike Hearn
2014-04-10  9:33                                   ` Peter Todd
2014-04-10  7:10                                 ` Tamas Blummer
2014-04-10  9:17                                   ` Mike Hearn
2014-04-10  9:39                                     ` Tamas Blummer
2014-04-10 10:40                                       ` Mike Hearn
2014-04-10 10:44                                         ` Tamas Blummer
2014-04-10 11:36                                           ` Peter Todd
2014-04-10 11:45                                             ` Mike Hearn
2014-04-10 11:52                                               ` Peter Todd
2014-04-10  9:47                                     ` Peter Todd
2014-04-09 18:04               ` Peter Todd
     [not found]   ` <CA+s+GJBpvqqu=XEojyekx5su+JfYLwz+zsbo8L0=5t6s-_b33w@mail.gmail.com>
2014-04-09 17:35     ` [Bitcoin-development] Fwd: " Wladimir
2014-04-09 16:03 ` [Bitcoin-development] " Peter Todd
2014-04-09 17:33   ` Alex Mizrahi
2014-04-09 17:38     ` Wladimir
2014-04-09 17:38     ` Peter Todd
2014-04-09 18:35 ` Kevin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAAS2fgTkgddRGGXuuAza-A=Dgjfr5aNF8yxDePPixN4M7Rbpyg@mail.gmail.com' \
    --to=gmaxwell@gmail$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=pieter.wuille@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox