Re: [Bitcoin-development] Lock protocol version numbers

2011-11-05 Thread Jordan Mack
 > If clients break the network protocol/do not comply properly with it,
 > they should be disconnected and shunned. Hard love. We don't want any
 > ambiguity in the protocol.

 > However my feeling about the user-agent string is that it is a vanity
 > item, but here we'd be enforcing a format that everybody can
 > understand and read.

I agree with Amir completely on both these points.

With something as critical as financial transactions, no exceptions can 
be made. The reported client and version should be ignored completely. 
If a client does not comply with the protocol, they must be rejected 
outright.

It is not in the best interest, or ability, to attempt to micromanage 
how developers choose to use the information given. Recommendations and 
guidelines can be made, but how they choose to implement is ultimately 
their decision. In my opinion, clear and concise definition of the 
protocol, and strict adherence in the mainline client, are the best 
options available.

The protocol version should be indicated so that it can properly be 
handled. Neither the name of the client, or it's version, need to be 
reported in this. Protocol validation should ignore this completely.

I do not believe that leaving out the client name and version entirely 
is the best option though. As silly as it may seem to some, vanity and 
recognition are very strong motivators. We want to encourage more 
supporters to the scene, not scare them away. The additional data 
provided by this could also be used for calculating various statistics. 
It sounds like BitcoinJ and BitDroid have already found ways of adding 
it in anyway. I believe it is in the best interest of the developers to 
formalize how this information will be included, and use it to their 
advantage.

TL;DR: Adhere strictly to the protocol, and reject clients that do not. 
Add a user agent string of some kind, but keep it separate from the 
protocol version.


--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-05 Thread Amir Taaki


On Saturday, November 05, 2011 12:17:58 PM Christian Decker wrote:
>> Sorry for shooting this approach down, but I'm against it. User-agent
>> strings are an extremely bad idea as it would lead developers to start
>> making communication choices depending on the client type.
> This can be necessary in some cases. What happens when some popular client is 
> found with a subtle bug, and cannot otherwise be differentiated from other 
> similar-functionality clients? I have found User-Agent very valuable when 
> dealing with the wide variety of miner bugs when I have enabled new 
> functionality/behaviour on Eligius.

I can agree with this point though. If clients break the network protocol/do 
not comply properly with it, they should be disconnected and shunned. Hard 
love. We don't want any ambiguity in the protocol.

Fail hard and fast.

However my feeling about the user-agent string is that it is a vanity item, but 
here we'd be enforcing a format that everybody can understand and read. Lets 
say with libbitcoin- I'm sure that users of libbitcoin would like to have their 
client name in the string somehow. This was we can quickly understand which 
code-bases are being used and all the variants that exist build on those 
code-bases.

Together with system information (how many Linux users are there?) and various 
system settings (how many 32bit users are there), and so on.
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-05 Thread Luke-Jr
On Saturday, November 05, 2011 12:17:58 PM Christian Decker wrote:
> Sorry for shooting this approach down, but I'm against it. User-agent
> strings are an extremely bad idea as it would lead developers to start
> making communication choices depending on the client type.

This can be necessary in some cases. What happens when some popular client is 
found with a subtle bug, and cannot otherwise be differentiated from other 
similar-functionality clients? I have found User-Agent very valuable when 
dealing with the wide variety of miner bugs when I have enabled new 
functionality/behaviour on Eligius.

--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-05 Thread Christian Decker
Sorry for shooting this approach down, but I'm against it. User-agent
strings are an extremely bad idea as it would lead developers to start
making communication choices depending on the client type. User-Agents in
HTTP are only useful if the clients (browsers) do not adhere to a well
defined behavior. I see the version string more as a kind of vanity point
(xyz peers are using my network code) and it would be bad to base choices
on it.
For protocol choices we already have a good mechanism in place (nServices)
to negotiate capabilities.

I for one vote for keeping it as simple as possible, just a simple string,
without any further meaning.

On Sat, Nov 5, 2011 at 4:39 PM, Amir Taaki  wrote:

> From talking with Patrick Strateman (phantomcircuit), he suggested this
> idea (which I will elaborate more on in the BIP):
>
> User-agent strings are a good starting point, however they aren't easy for
> parsing so we'll make a small modification to them.
>
> We need a hierarchy from protocol, variant, gui, flavour, build
>
> /Satoshi:314700/bitcoin-qt:0.4/
>
> How does that sound? In BitcoinJ's case:
>
> /BitcoinJ:0.2/AndroidBuild:0.8/
>
> Thoughts:
>
> - Do we need a freely defined comments field?
>
> /BitcoinJ:0.2[iPad; U; CPU OS 3_2_1]/AndroidBuild:0.8/
> /Satoshi:314700/bitcoin-qt:0.4[Ubuntu Oneiric]/
>
> --
> *From:* Christian Decker 
> *To:* Mike Hearn 
> *Cc:* Amir Taaki ; "
> bitcoin-development@lists.sourceforge.net" <
> bitcoin-development@lists.sourceforge.net>
> *Sent:* Saturday, November 5, 2011 2:45 PM
> *Subject:* Re: [Bitcoin-development] Lock protocol version numbers
>
> On BitDroid I stopped updating the protocol version at 31700 and set the
> string to be both Version and Client, just like BitcoinJ :-)
>
> On Sat, Nov 5, 2011 at 3:32 PM, Mike Hearn  wrote:
>
> BitCoinJ already sets the subver field to its name and version.
>
>
>
> --
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> ___
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
>
>
>
>
>
>
> --
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> ___
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-05 Thread Amir Taaki
>From talking with Patrick Strateman (phantomcircuit), he suggested this idea 
>(which I will elaborate more on in the BIP):


User-agent strings are a good starting point, however they aren't easy for 
parsing so we'll make a small modification to them.

We need a hierarchy from protocol, variant, gui, flavour, build

/Satoshi:314700/bitcoin-qt:0.4/

How does that sound? In BitcoinJ's case:

/BitcoinJ:0.2/AndroidBuild:0.8/

Thoughts:

- Do we need a freely defined comments field?

/BitcoinJ:0.2[iPad; U; CPU OS 3_2_1]/AndroidBuild:0.8/
/Satoshi:314700/bitcoin-qt:0.4[Ubuntu Oneiric]/




From: Christian Decker 
To: Mike Hearn 
Cc: Amir Taaki ; "bitcoin-development@lists.sourceforge.net" 

Sent: Saturday, November 5, 2011 2:45 PM
Subject: Re: [Bitcoin-development] Lock protocol version numbers


On BitDroid I stopped updating the protocol version at 31700 and set the string 
to be both Version and Client, just like BitcoinJ :-)


On Sat, Nov 5, 2011 at 3:32 PM, Mike Hearn  wrote:

BitCoinJ already sets the subver field to its name and version.
>
>
>--
>RSA(R) Conference 2012
>Save $700 by Nov 18
>Register now
>http://p.sf.net/sfu/rsa-sfdev2dev1
>___
>Bitcoin-development mailing list
>Bitcoin-development@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-05 Thread Christian Decker
On BitDroid I stopped updating the protocol version at 31700 and set the
string to be both Version and Client, just like BitcoinJ :-)

On Sat, Nov 5, 2011 at 3:32 PM, Mike Hearn  wrote:

> BitCoinJ already sets the subver field to its name and version.
>
>
>
> --
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> ___
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-05 Thread Mike Hearn
BitCoinJ already sets the subver field to its name and version.
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Jeff Garzik
On Wed, Nov 2, 2011 at 7:22 PM, Christian Decker
 wrote:
> The mainline client (independently from the GUI) has been referenced to as
> "Satoshi" client. I personally like the name as a homage, but I guess it all
> comes down to the decision of the maintainers.

That's how I take it to mean:  "satoshi client" is the client
-started- by satoshi, that is actively distributed through
github.com/bitcoin/bitcoin and bitcoin.org-linked downloads.  Changing
to QT doesn't change the lingo.

-- 
Jeff Garzik
exMULTI, Inc.
jgar...@exmulti.com

--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Christian Decker
The mainline client (independently from the GUI) has been referenced to as
"Satoshi" client. I personally like the name as a homage, but I guess it
all comes down to the decision of the maintainers.

Regards,
Chris

On Thu, Nov 3, 2011 at 12:07 AM, Luke-Jr  wrote:

> On Wednesday, November 02, 2011 6:55:27 PM Amir Taaki wrote:
> > I think calling it Satoshi is apt homage to the person who made the
> > original client reference protocol.
>
> My point is that the "Satoshi client" was the wxWidgets client, which was
> retired by 0.5.
>
>
> --
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> ___
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Luke-Jr
On Wednesday, November 02, 2011 6:55:27 PM Amir Taaki wrote:
> I think calling it Satoshi is apt homage to the person who made the
> original client reference protocol.

My point is that the "Satoshi client" was the wxWidgets client, which was 
retired by 0.5.

--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Amir Taaki
Cool thread. I enjoyed reading that :) Thanks for sharing.



From: Christian Decker 
To: Amir Taaki 
Cc: "bitcoin-development@lists.sourceforge.net" 

Sent: Wednesday, November 2, 2011 10:42 PM
Subject: Re: [Bitcoin-development] Lock protocol version numbers


Just for reference: https://github.com/bitcoin/bitcoin/pull/63
The issue resulted in my most useless pull request fixing two variables :-)

I second the use of sub_version_num as a Client and Version identifier.

Regards,
Chris


On Wed, Nov 2, 2011 at 11:33 PM, Amir Taaki  wrote:

Point taken.
>
>
>About the sub_version_num though. I prefer to let the field by defined clients 
>however they wish, with just a guideline suggestion that IDENTIFIER VERSION is 
>a format they should follow.
>
>
>The idea being that different projects would have different release scheduling 
>schemes and it'd be restrictive to lock people into the popular major.minor 
>system.
>
>
>So for the current bitcoin to find out the version number of other clients (if 
>it was needed), it would have to parse the number from the string:
>
>
>"Satoshi 0.5"
>
>
>Although there would be little reason for this with a sane protocol versioning 
>scheme.
>
>
>If we're agreed then I'll start on that BIP.
>
>
>
>________
>From: Gavin Andresen 
>To: Amir Taaki 
>Sent: Wednesday, November 2, 2011 9:34 PM
>Subject: Re: [Bitcoin-development] Lock protocol version numbers
>
>Good idea.
>
>Sounds perfect for a BIP
>
>
>On Wed, Nov 2, 2011 at 5:23 PM, Amir Taaki  wrote:
>> Hey,
>> Can we lock the version numbers to be the protocol version (which changes
>> rarely) and instead use the sub_version_num field + revision number for
>> individual builds?
>
>-- 
>--
>Gavin Andresen
>
>
>
>--
>RSA(R) Conference 2012
>Save $700 by Nov 18
>Register now
>http://p.sf.net/sfu/rsa-sfdev2dev1
>___
>Bitcoin-development mailing list
>Bitcoin-development@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Amir Taaki
Bitcoin is the protocol. The client protocol identifier needs a unique name. It 
is not a public name that anybody ever sees except protocol developers.

For instance with libbitcoin, there might be several clients using it, but 
they'd all have the same protocol identifier.

I think calling it Satoshi is apt homage to the person who made the original 
client reference protocol.

Satoshi
BitcoinCommunityOriginal
...

Take your pick.




From: Luke-Jr 
To: "bitcoin-development@lists.sourceforge.net" 

Cc: Amir Taaki 
Sent: Wednesday, November 2, 2011 10:46 PM
Subject: Re: [Bitcoin-development] Lock protocol version numbers

On Wednesday, November 02, 2011 6:33:12 PM Amir Taaki wrote:
> "Satoshi 0.5"

What is "Satoshi 0.5" anyway? 0.5's server is bitcoind and GUI is Bitcoin-Qt; 
the wx GUI client is gone, which is more or less what "Satoshi" referred to in 
the past...--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Luke-Jr
On Wednesday, November 02, 2011 6:33:12 PM Amir Taaki wrote:
> "Satoshi 0.5"

What is "Satoshi 0.5" anyway? 0.5's server is bitcoind and GUI is Bitcoin-Qt; 
the wx GUI client is gone, which is more or less what "Satoshi" referred to in 
the past...

--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Christian Decker
Just for reference: https://github.com/bitcoin/bitcoin/pull/63
The issue resulted in my most useless pull request fixing two variables :-)

I second the use of sub_version_num as a Client and Version identifier.

Regards,
Chris

On Wed, Nov 2, 2011 at 11:33 PM, Amir Taaki  wrote:

> Point taken.
>
> About the sub_version_num though. I prefer to let the field by defined
> clients however they wish, with just a guideline suggestion that IDENTIFIER
> VERSION is a format they should follow.
>
> The idea being that different projects would have different release
> scheduling schemes and it'd be restrictive to lock people into the popular
> major.minor system.
>
> So for the current bitcoin to find out the version number of other clients
> (if it was needed), it would have to parse the number from the string:
>
> "Satoshi 0.5"
>
> Although there would be little reason for this with a sane protocol
> versioning scheme.
>
> If we're agreed then I'll start on that BIP.
>
> --
> *From:* Gavin Andresen 
> *To:* Amir Taaki 
> *Sent:* Wednesday, November 2, 2011 9:34 PM
> *Subject:* Re: [Bitcoin-development] Lock protocol version numbers
>
> Good idea.
>
> Sounds perfect for a BIP
>
>
> On Wed, Nov 2, 2011 at 5:23 PM, Amir Taaki  wrote:
> > Hey,
> > Can we lock the version numbers to be the protocol version (which changes
> > rarely) and instead use the sub_version_num field + revision number for
> > individual builds?
>
> --
> --
> Gavin Andresen
>
>
>
>
> --
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> ___
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Amir Taaki
Point taken.

About the sub_version_num though. I prefer to let the field by defined clients 
however they wish, with just a guideline suggestion that IDENTIFIER VERSION is 
a format they should follow.

The idea being that different projects would have different release scheduling 
schemes and it'd be restrictive to lock people into the popular major.minor 
system.

So for the current bitcoin to find out the version number of other clients (if 
it was needed), it would have to parse the number from the string:

"Satoshi 0.5"

Although there would be little reason for this with a sane protocol versioning 
scheme.

If we're agreed then I'll start on that BIP.




From: Gavin Andresen 
To: Amir Taaki 
Sent: Wednesday, November 2, 2011 9:34 PM
Subject: Re: [Bitcoin-development] Lock protocol version numbers

Good idea.

Sounds perfect for a BIP

On Wed, Nov 2, 2011 at 5:23 PM, Amir Taaki  wrote:
> Hey,
> Can we lock the version numbers to be the protocol version (which changes
> rarely) and instead use the sub_version_num field + revision number for
> individual builds?

-- 
--
Gavin Andresen--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Christian Decker
I don't really get what you want to achieve with this. The protocol will be
slow down evolution (hopefully) soon, while the clients will continue
releasing at a similar rhythm. It took long enough to decouple the protocol
version from being bumped each client release, now doing the inverse
coupling makes no sense.

Regards,
Chris
On Wed, Nov 2, 2011 at 10:23 PM, Amir Taaki  wrote:

> Hey,
>
> Can we lock the version numbers to be the protocol version (which changes
> rarely) and instead use the sub_version_num field + revision number for
> individual builds?
>
> Satoshi 0.4
> BitcoinJava 120311
> bitcoin-js 6
>
> Like so. Otherwise we will have version bumping insanity :)
>
>
> --
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> ___
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


[Bitcoin-development] Lock protocol version numbers

2011-11-02 Thread Amir Taaki
Hey,

Can we lock the version numbers to be the protocol version (which changes 
rarely) and instead use the sub_version_num field + revision number for 
individual builds?

Satoshi 0.4
BitcoinJava 120311
bitcoin-js 6

Like so. Otherwise we will have version bumping insanity :)
--
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development