public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [Bitcoin-development] BIP language on normative behavior
@ 2011-12-19 22:29 Gregory Maxwell
  2011-12-19 22:36 ` [Bitcoin-development] Lying about User Agent (was: BIP language on normative behavior) Luke-Jr
  2011-12-21  0:59 ` [Bitcoin-development] BIP language on normative behavior Amir Taaki
  0 siblings, 2 replies; 5+ messages in thread
From: Gregory Maxwell @ 2011-12-19 22:29 UTC (permalink / raw)
  To: Bitcoin Development

I've been arguing with Luke-JR on IRC about the interpenetration of
BIP_0014—  Gavin's recent commit uses the same version string for the
GUI interface and the daemon mode.

Luke believes this is a _violation_ of BIP_0014 and an error in
judgement on Gavin's part, and a failure to conform to the community
adopted standard. I believe Luke is mistaken: that BIP_0014 actually
don't have mandatory requirements for what you put in the version
field and even if it did, that they are in fact the same software and
should have the same name.

I don't think an agreement is likely on the second point, but the
first point highlights some ambiguity in the interpretation of BIP
language. E.g. What is permitted vs encouraged vs required.

There is well established standard language for this purpose:

https://www.ietf.org/rfc/rfc2119.txt

I strongly recommend that all BIPs be written using the RFC2119
keywords where appropriate.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Bitcoin-development] Lying about User Agent (was: BIP language on normative behavior)
  2011-12-19 22:29 [Bitcoin-development] BIP language on normative behavior Gregory Maxwell
@ 2011-12-19 22:36 ` Luke-Jr
  2011-12-21  0:59 ` [Bitcoin-development] BIP language on normative behavior Amir Taaki
  1 sibling, 0 replies; 5+ messages in thread
From: Luke-Jr @ 2011-12-19 22:36 UTC (permalink / raw)
  To: bitcoin-development

On Monday, December 19, 2011 5:29:34 PM Gregory Maxwell wrote:
> I've been arguing with Luke-JR on IRC about the interpenetration of
> BIP_0014—  Gavin's recent commit uses the same version string for the
> GUI interface and the daemon mode.
> 
> Luke believes this is a _violation_ of BIP_0014 and an error in
> judgement on Gavin's part, and a failure to conform to the community
> adopted standard. 

To clarify, I believe LYING about the client is a violation. Specifically, 
Gavin's commit intentionally reports "bitcoin-qt" for bitcoind. A common name 
for the codebase is compliant, and I don't see anything that says a version 
*must* be reported at all, let alone for a specific component, so it *could* 
comply by leaving that part off. But if there is a common part, it certainly 
isn't Bitcoin-Qt.

https://github.com/bitcoin/bitcoin/pull/715 contains a fix that should fulfil 
everyone's desires (Gavin wants security by obscurity by making bitcoind and 
Bitcoin-Qt indistinguishable; this is the default with pull #715).



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Bitcoin-development] BIP language on normative behavior
  2011-12-19 22:29 [Bitcoin-development] BIP language on normative behavior Gregory Maxwell
  2011-12-19 22:36 ` [Bitcoin-development] Lying about User Agent (was: BIP language on normative behavior) Luke-Jr
@ 2011-12-21  0:59 ` Amir Taaki
       [not found]   ` <201112202007.49399.luke@dashjr.org>
  2011-12-21  9:27   ` Andy Parkins
  1 sibling, 2 replies; 5+ messages in thread
From: Amir Taaki @ 2011-12-21  0:59 UTC (permalink / raw)
  To: bitcoin-development

[-- Attachment #1: Type: text/plain, Size: 4681 bytes --]

A few weeks back I was in discussion with the IANA on getting a bitcoin URI accepted in the standard. As a prerequisite I had to read 5 huge documents. I did not end up writing that RFC.

Skilled developers have even less time than I do. While this particular RFC is really nice for keeping ambiguity at bay, it is one of many small rules that bring marginal improvements. "Rule creep" (like feature creep) starts off with good intentions but degenerates into a situation like Wikipedia or any other system with a heavy bureaucracy that can use the rules for lawyering against you.

We want to encourage skilled developers to help set the standards and participate in discussions. Beyond using good grammar and using the correct formatting (and I even help with those), I defer on the site of trusting common sense and human judgement :)

However this is a good RFC, and I will advise any future BIP contributors to read it. It offers good suggestions.

About what Luke says:

I kind of agree with him. The intention was to specify software stacks rather than end applications. This allows us to more carefully track software evolution and behaviour throughout the network. bitcoin-qt need not be tied to the Satoshi code-base and may in the future use other core systems through its intermediary layer. BitcoinJava has given rise to a bunch of other application like Android Bitcoin and MultiBit- however they are both BitcoinJava derivatives.

However BIPs are a community consensus thing. It depends on the mutual consent of everybody and if there is a commonly agreed sentiment against the wording of an Accepted (or even Active) BIP then it can be amended ad-hoc.

The purpose of BIPs is to enhance development by 1. providing a stable system environment for programmers to work towards an accepted standard 2. serve as an equaliser for smaller groups (the third party clients vs the current behemoth client) by giving them a voice or platform.

And they can only function by those who want them to function.

But personally, I really do think splitting bitcoin-qt into XXX and bitcoin-qt is a smart idea. Starting from lowest to top part of the system is smart: http://www.useragentstring.com/pages/Firefox/

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0a2) Gecko/20110613 Firefox/6.0a2

Mozilla is the application suite (Mozilla Thunderbird, Mozilla Firefox, ...)

Gecko is the rendering engine
Firefox is the end application

In the original intention for BIP_0014, that would map to:

/Gecko:20110613/Firefox:6.0a2/Mozilla:5.0/

With something like WebKit, it becomes easy to see why that would be useful. You can suddenly do a network wide scan of all browsers using WebKit, rather than having to maintain a database of all WebKit enabled browsers.

So if this is contentious.

Then discuss. I'll update the BIP according to what everyone decides they like.


:)



________________________________
 From: Gregory Maxwell <gmaxwell@gmail.com>
To: Bitcoin Development <bitcoin-development@lists.sourceforge.net> 
Sent: Monday, December 19, 2011 10:29 PM
Subject: [Bitcoin-development] BIP language on normative behavior
 
I've been arguing with Luke-JR on IRC about the interpenetration of
BIP_0014—  Gavin's recent commit uses the same version string for the
GUI interface and the daemon mode.

Luke believes this is a _violation_ of BIP_0014 and an error in
judgement on Gavin's part, and a failure to conform to the community
adopted standard. I believe Luke is mistaken: that BIP_0014 actually
don't have mandatory requirements for what you put in the version
field and even if it did, that they are in fact the same software and
should have the same name.

I don't think an agreement is likely on the second point, but the
first point highlights some ambiguity in the interpretation of BIP
language. E.g. What is permitted vs encouraged vs required.

There is well established standard language for this purpose:

https://www.ietf.org/rfc/rfc2119.txt

I strongly recommend that all BIPs be written using the RFC2119
keywords where appropriate.

------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development

[-- Attachment #2: Type: text/html, Size: 6368 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Bitcoin-development] BIP language on normative behavior
       [not found]   ` <201112202007.49399.luke@dashjr.org>
@ 2011-12-21  1:14     ` Amir Taaki
  0 siblings, 0 replies; 5+ messages in thread
From: Amir Taaki @ 2011-12-21  1:14 UTC (permalink / raw)
  To: bitcoin-development

[-- Attachment #1: Type: text/plain, Size: 936 bytes --]

OK, give me a shout on IRC. It is a lot of work though, so be prepared. Bring bags of patience :)



________________________________
 From: Luke-Jr <luke@dashjr.org>
To: Amir Taaki <zgenjix@yahoo.com> 
Sent: Wednesday, December 21, 2011 1:07 AM
Subject: Re: [Bitcoin-development] BIP language on normative behavior
 
On Tuesday, December 20, 2011 7:59:00 PM Amir Taaki wrote:
> A few weeks back I was in discussion with the IANA on getting a bitcoin URI
> accepted in the standard. As a prerequisite I had to read 5 huge
> documents. I did not end up writing that RFC.

I also contacted the IANA about getting the bitcoin URI spec accepted on their 
index, however never heard back. If you want, please have whoever you 
discussed it with get in touch with me. Either way, please be sure whatever 
they index is compliant with the spec on the wiki as-is (especially not being 
BTC unit specific, as this is clearly non-scalable).

Luke

[-- Attachment #2: Type: text/html, Size: 1600 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Bitcoin-development] BIP language on normative behavior
  2011-12-21  0:59 ` [Bitcoin-development] BIP language on normative behavior Amir Taaki
       [not found]   ` <201112202007.49399.luke@dashjr.org>
@ 2011-12-21  9:27   ` Andy Parkins
  1 sibling, 0 replies; 5+ messages in thread
From: Andy Parkins @ 2011-12-21  9:27 UTC (permalink / raw)
  To: bitcoin-development, Amir Taaki

[-- Attachment #1: Type: Text/Plain, Size: 927 bytes --]

On 2011 December 21 Wednesday, Amir Taaki wrote:

> In the original intention for BIP_0014, that would map to:
> 
> /Gecko:20110613/Firefox:6.0a2/Mozilla:5.0/
> 
> With something like WebKit, it becomes easy to see why that would be
> useful. You can suddenly do a network wide scan of all browsers using
> WebKit, rather than having to maintain a database of all WebKit enabled
> browsers.

This seems excellent to me.

I think most developers want to do the right thing when it comes to standards, 
and it is only the inflexibility or ambiguity of a standard that means they 
don't.

This heirarchical method lets every client supply all the information they 
have -- nobody has to make a decision to leave something out.  The internal 
debate they would have "is my gui version more important than my protocol 
engine version?" is unnecessary.



Andy

-- 
Dr Andy Parkins
andyparkins@gmail.com

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-12-21  9:27 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-19 22:29 [Bitcoin-development] BIP language on normative behavior Gregory Maxwell
2011-12-19 22:36 ` [Bitcoin-development] Lying about User Agent (was: BIP language on normative behavior) Luke-Jr
2011-12-21  0:59 ` [Bitcoin-development] BIP language on normative behavior Amir Taaki
     [not found]   ` <201112202007.49399.luke@dashjr.org>
2011-12-21  1:14     ` Amir Taaki
2011-12-21  9:27   ` Andy Parkins

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox