Subject: [Bitcoin-development] P2P feature discovery (was Re: BIP 33 - Stratized Nodes)

From: Jeff Garzik <[email-masked]>
Date: Wed, 16 May 2012 14:18:27 -0400

On Wed, May 16, 2012 at 12:34 PM, Amir Taaki <[email-masked]> wrote:
> Please check out my proposal,
>
> https://en.bitcoin.it/wiki/BIP_0033
>
> I want to use the existing Bitcoin protocol to provide this functionality in order to maintain compatibility. This proposal does not affect current Bitcoin clients, but allows the parallel system to operate alongside and sometimes intersect with the main Bitcoin network in a positive way.

I do not object to the concept, but the discovery process should be
improved.  Even venerable SMTP has a better, more flexible
capabilities discovery process.

Instead of further overloading service bits in the version message, or
altering the version message, let us instead make feature discovery an
easy, flexible, extensible process.

We can add new commands without impacting older nodes, so let's create
a new command "get-features" (or pick your name) that returns a list
of key/value pairs.  The key is a string, the value type is determined
by the key.

Standard behavior of clients would be to send "get-features" after
seeing remote version info, as part of the initial connection
handshake.

In any case, the basic point is to move FAR away from fighting over a
limited, inflexible resource (service bits in "version" msg) to
something string-based and easily extensible.

I can create this as BIP 34, if people wish.

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