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.