Included at the bottom of this mail is a BIP concerning our impending use of a particular services bit. 

I am making a good-faith effort to notify the community of this use and follow the BIP submission rules with a correctly formatted BIP sent to Luke jr.  He has informed me that such a BIP should be discussed on the mailing list (which is this thread) and that the BIP should document the extreme thin block protocol. 

Not an unreasonable request, however while I personally respect the many great accomplishments of individual engineers loosely affiliated with "Core", Bitcoin Unlimited has our own process for documentation and discussion on an uncensored forum located here: https://bitco.in/forum/threads/buip010-passed-xtreme-thinblocks.774/.  We would love to have any interested engineer join us there with ideas and criticisms.

But since Bitcoin Unlimited already has a process, it would be redundant and time consuming for us to adhere to your process.  If a "Core" engineer would like to spend the time to move this BIP through your process I would be eternally grateful and be willing to use a different bit or make other changes that make mutual sense.  If not, then it is up to "Core" as a group to decide whether they would like to preserve interoperability as the protocol intended by avoiding use of bit 1<<4  (except to indicate the presence of a compatible Xthin implementation), or whether they will force clients to take the sub-version field into account when determining client capabilities.

Regards,
Andrew Stone
Developer, Bitcoin Unlimited


<pre>
  BIP: XXX
  Title: Extreme thin block service bit
  Author: Andrew Stone <g.andrew.stone@gmail.com>
  Status:
  Type: Standards Track
  Created: 2016-03-07
</pre>

==Abstract==

Nodes need to communicate to each other whether or not thin block communication messages are supported.

==Motivation==

# Ensure Satoshi client interoperability

==Rationale==

Clients will use this functionality to choose peers, so a service bit is the most appropriate location.

==Specification==

# Bit (1 << 4) of the nServices flags enum located in protocol.h shall indicate the ability to handle thin block communication messages.

==Backward compatibility==

All older clients are compatible with this change. Users and merchants should not be impacted.

==Implementation==

/** nServices flags */
enum {
  ...
    // NODE_XTHIN means the node is capable of and willing to handle Xthin messages.
    NODE_XTHIN = (1 << 4),
  ... 
};

==Copyright==
This document is Public Domain.

On Mon, Mar 7, 2016 at 4:10 PM, dagurval <dagurvj+btclist@gmail.com> wrote:
Hi,

Does this functionality change peer selection? 

This bit will be used for selecting outgoing peers in Bitcoin XT.

On Mon, Mar 7, 2016 at 9:51 PM, Gregory Maxwell via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
On Mon, Mar 7, 2016 at 8:06 PM, G. Andrew Stone via bitcoin-dev
<bitcoin-dev@lists.linuxfoundation.org> wrote:
> The Bitcoin Unlimited client needs a services bit to indicate that the node
> is capable of communicating thin blocks.  We propose to use bit 4 as AFAIK
> bit 3 is already earmarked for Segregated Witness.

Does this functionality change peer selection?  If not, the preferred
signaling mechanism is probably the one in BIP 130.

Otherwise, I think the standard method for getting numbers has been to
write a BIP documenting the usage. I don't know if that is intentional
or just how things have previously happened; and I don't have much of
an opinion on it.
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev