[Bitcoin-development] BIP: Custom Services

Jeff Garzik jgarzik at exmulti.com
Mon Aug 13 14:24:41 UTC 2012


On Mon, Aug 13, 2012 at 3:41 AM, Stefan Thomas <moon at justmoon.de> wrote:
> I was working on some custom protocol extensions for Bitcoin that I
> wanted to experiment with and I noticed that in order to enable nodes to
> announce these services the only mechanism the protocol currently
> provides is to use one of the 64 bits of the services field. This is
> obviously a resource that will run out quickly if we all just help
> ourselves, so I set out to come up with a standardized way to announce
> custom protocol extensions, without using up NODE_* flags.
>
> Please kindly review my solution:
>
> https://en.bitcoin.it/wiki/User:Justmoon/BIP_Draft:_Custom_Services

heh, this is not a new idea.  I even implemented a pull request for
service discovery myself, which simply consisted of querying the list
of supported commands:
https://github.com/bitcoin/bitcoin/pull/1471

On IRC, I proposed several alternatives including modifying 'version'
(which you did) and a new "getcaps" (get capabilities) command to be
added in protocol_version X.

gmaxwell seems continually unenthused, and made a valid point about
service advertisement:  these capabilities are not advertised with
CAddress, so how does one usefully discover and make use of them?
What are real world use cases, that cannot be solved with nService
bits?

My only response is a weak one:  inevitability.  It seems likely that
-somebody- will implement their own P2P commands for their own client
subset, even if only a simple "use 'getstatus' with strSubVer matching
/FooClient/"

Therefore, if it is inevitable, we might as well make some basic rules
about how to extended your P2P command set.

-- 
Jeff Garzik
exMULTI, Inc.
jgarzik at exmulti.com




More information about the bitcoin-dev mailing list