Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191]
	helo=mx.sourceforge.net)
	by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <tamas@bitsofproof.com>) id 1UpaOl-000603-BT
	for bitcoin-development@lists.sourceforge.net;
	Thu, 20 Jun 2013 08:39:19 +0000
X-ACL-Warn: 
Received: from wp059.webpack.hosteurope.de ([80.237.132.66])
	by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.76) id 1UpaOj-0006D1-Ek
	for bitcoin-development@lists.sourceforge.net;
	Thu, 20 Jun 2013 08:39:19 +0000
Received: from [37.143.74.116] (helo=[192.168.1.5]); authenticated
	by wp059.webpack.hosteurope.de running ExIM with esmtpsa
	(TLS1.0:RSA_AES_128_CBC_SHA1:16)
	id 1UpaOc-0000nF-L3; Thu, 20 Jun 2013 10:39:10 +0200
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_4A2B3B2A-66B7-49FC-947F-47A201BD0F89"
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
From: Tamas Blummer <tamas@bitsofproof.com>
In-Reply-To: <CANEZrP1rK3z5LXd+q-SRd3pzP5QLoJSL=CMPviH4fFVGKWT69g@mail.gmail.com>
Date: Thu, 20 Jun 2013 10:39:10 +0200
Message-Id: <84938F7F-B75C-434B-9B7A-EC406CE42385@bitsofproof.com>
References: <4DE0E45E-BB48-4DFF-9C86-ACBE312B3049@bitsofproof.com>
	<CANEZrP1MVKSNU92UrQ36sPCN0LNLKrVRXnfVwEZKhgoBFXatBA@mail.gmail.com>
	<E9A1F9E4-0A9A-4B5F-98D2-585306EB99AA@bitsofproof.com>
	<CANEZrP1rK3z5LXd+q-SRd3pzP5QLoJSL=CMPviH4fFVGKWT69g@mail.gmail.com>
To: Mike Hearn <mike@plan99.net>
X-Mailer: Apple Mail (2.1503)
X-bounce-key: webpack.hosteurope.de; tamas@bitsofproof.com; 1371717557;
	08621cee; 
X-Spam-Score: 1.0 (+)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	1.0 HTML_MESSAGE           BODY: HTML included in message
X-Headers-End: 1UpaOj-0006D1-Ek
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Missing fRelayTxes in version
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Thu, 20 Jun 2013 08:39:19 -0000


--Apple-Mail=_4A2B3B2A-66B7-49FC-947F-47A201BD0F89
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1

Yes it is trivial. I do not think greater complexity in the system =
should keep us from addressing low complexity issues.
You can't blame me or others not trying to simplify scripts, if there is =
such a headwind simplifying a version message.
You are right there is too much fuss about this.

Tam=E1s Blummer
Founder, CEO
http://bitsofproof.com

On 20.06.2013, at 10:31, Mike Hearn <mike@plan99.net> wrote:

> You can't eliminate the complexity (yet), otherwise you wouldn't be =
able to talk to old nodes. You'll have to wait until versions prior to a =
particular version are hard-forked off and can be safely dropped at =
connect time.
>=20
> That said the reason I'm being so grumpy about this is that compared =
to the complexity in the rest of the system, this is such a trivial and =
minor detail. It's hardly even worth thinking about. I mean, we have a =
scripting language full of opcodes nobody ever figured out how to use =
and the protocol uses a mixture of byte orders, so an optional field in =
the version message is really not such a big deal :)
>=20
>=20
> On Thu, Jun 20, 2013 at 10:17 AM, Tamas Blummer =
<tamas@bitsofproof.com> wrote:
> I agree that this can be deferred until there is an actual new field =
without any harm. But then remember to update the BIP37 too saying that =
it is optional only if flag added in BIPXX is not present.
>=20
> Your argument is that this complexity is already there so why not =
preserve it. I think eliminating complexity (that has no benefit) =
strengthens the system.
>=20
> Tam=E1s Blummer
> http://bitsofproof.com
>=20
> On 20.06.2013, at 09:36, Mike Hearn <mike@plan99.net> wrote:
>=20
>> Sure but why not do that when there's an actual new field to add? =
Does anyone have a proposal for a feature that needs a new version field =
at the moment? There's no point changing the protocol now unless there's =
actually a new field to add.
>>=20
>> Anyway I still don't see why anyone cares about this issue. The =
Bitcoin protocol does not and never has required that all messages have =
a fixed number of fields per version. Any parser written on the =
assumption it did was just buggy. Look at how tx messages are relayed =
for the most obvious example of that pattern in action - it's actually =
the raw byte stream that's stored and relayed to ensure that fields =
added in new versions aren't dropped during round-tripping. Old versions =
are supposed to preserve fields from the future.
>>=20
>>=20
>>=20
>> On Thu, Jun 20, 2013 at 9:30 AM, Tamas Blummer =
<tamas@bitsofproof.com> wrote:
>> Hi Mike,
>>=20
>> The issue with the current parser is that those fields are =
conditionally optional on that there will be no subsequent fields added.
>> If there will be further fields they will become manadory.=20
>> =20
>> Why not bump the version and parse the fields as mandatory from then =
on? This would be backward compatible and cleaner
>> going forward.
>>=20
>> Tamas Blummer
>> http://bitsofproof.com
>>=20
>>=20
>> =
--------------------------------------------------------------------------=
----
>> This SF.net email is sponsored by Windows:
>>=20
>> Build for Windows Store.
>>=20
>> http://p.sf.net/sfu/windows-dev2dev
>> _______________________________________________
>> Bitcoin-development mailing list
>> Bitcoin-development@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>=20
>>=20
>=20
>=20


--Apple-Mail=_4A2B3B2A-66B7-49FC-947F-47A201BD0F89
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=iso-8859-1

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Diso-8859-1"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div =
apple-content-edited=3D"true"><div style=3D"color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: medium; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; =
"><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: =
medium; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; =
text-align: left; ">Yes it is trivial. I do not think greater complexity =
in the system should keep us from addressing low complexity =
issues.</div><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: medium; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; =
widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; text-align: left; ">You can't blame me =
or others not trying to simplify scripts, if there is such a headwind =
simplifying a version message.</div><div style=3D"color: rgb(0, 0, 0); =
font-family: Helvetica; font-size: medium; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; =
white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; =
text-align: left; ">You are right there is too much fuss about =
this.</div><div style=3D"color: rgb(0, 0, 0); font-family: Helvetica; =
font-size: medium; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; =
widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; text-align: left; "><br></div><div =
style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; "><b>Tam=E1s Blummer</b></div><div =
style=3D"color: rgb(0, 0, 0); font-family: Helvetica; font-size: medium; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; ">Founder, CEO</div><span style=3D"color: =
rgb(0, 0, 0); font-family: Helvetica; font-size: medium; font-style: =
normal; font-variant: normal; font-weight: normal; letter-spacing: =
normal; line-height: normal; orphans: 2; text-align: -webkit-auto; =
text-indent: 0px; text-transform: none; white-space: normal; widows: 2; =
word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; "><a href=3D"http://bitsofproof.com/" =
style=3D"font-family: Helvetica; font-size: medium; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; =
"><span><span style=3D"font-family: Helvetica; font-size: medium; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; color: rgb(0, 0, 0); display: inline =
!important; float: none; ">http://bitsofproof.com</span>
</span></a></span></div><a href=3D"http://bitsofproof.com/" =
style=3D"font-family: Helvetica; font-size: medium; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">
</a></div><br><div><div>On 20.06.2013, at 10:31, Mike Hearn &lt;<a =
href=3D"mailto:mike@plan99.net">mike@plan99.net</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><blockquote type=3D"cite"><div =
dir=3D"ltr">You can't eliminate the complexity (yet), otherwise you =
wouldn't be able to talk to old nodes. You'll have to wait until =
versions prior to a particular version are hard-forked off and can be =
safely dropped at connect time.<div>
<br></div><div>That said the reason I'm being so grumpy about this is =
that compared to the complexity in the rest of the system, this is such =
a trivial and minor detail. It's hardly even worth thinking about. I =
mean, we have a scripting language full of opcodes nobody ever figured =
out how to use and the protocol uses a mixture of byte orders, so an =
optional field in the version message is really not such a big deal =
:)</div>
</div><div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On =
Thu, Jun 20, 2013 at 10:17 AM, Tamas Blummer <span dir=3D"ltr">&lt;<a =
href=3D"mailto:tamas@bitsofproof.com" =
target=3D"_blank">tamas@bitsofproof.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
style=3D"word-wrap:break-word"><div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;t=
ext-transform:none;font-size:medium;white-space:normal;font-family:Helveti=
ca;word-spacing:0px">
<div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">
I agree that this can be deferred until there is an actual new field =
without any harm. But then remember to update the BIP37 too saying that =
it is optional only if flag added in BIPXX is not present.</div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">
<br></div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">
Your argument is that this complexity is already there so why not =
preserve it. I think eliminating&nbsp;complexity (that has no benefit) =
strengthens the system.</div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">
<br></div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;t=
ext-transform:none;font-size:medium;white-space:normal;font-family:Helveti=
ca;word-spacing:0px">
<b>Tam=E1s Blummer</b></div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;t=
ext-transform:none;font-size:medium;white-space:normal;font-family:Helveti=
ca;word-spacing:0px">
<a href=3D"http://bitsofproof.com/" =
target=3D"_blank"><span>http://bitsofproof.com</span></a></div></div><a =
href=3D"http://bitsofproof.com/" =
style=3D"font-family:Helvetica;font-size:medium;font-style:normal;font-var=
iant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;te=
xt-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px" target=3D"_blank">
</a></div><div><div class=3D"h5"><br><div><div>On 20.06.2013, at 09:36, =
Mike Hearn &lt;<a href=3D"mailto:mike@plan99.net" =
target=3D"_blank">mike@plan99.net</a>&gt; wrote:</div><br><blockquote =
type=3D"cite"><div dir=3D"ltr">Sure but why not do that when there's an =
actual new field to add? Does anyone have a proposal for a feature that =
needs a new version field at the moment? There's no point changing the =
protocol now unless there's actually a new field to add.<div>

<br></div><div>Anyway I still don't see why anyone cares about this =
issue. The Bitcoin protocol does not and never has required that all =
messages have a fixed number of fields per version. Any parser written =
on the assumption it did was just buggy. Look at how tx messages are =
relayed for the most obvious example of that pattern in action - it's =
actually the raw byte stream that's stored and relayed to ensure that =
fields added in new versions aren't dropped during round-tripping. Old =
versions are supposed to preserve fields from the future.</div>

<div><br></div></div><div class=3D"gmail_extra"><br><br><div =
class=3D"gmail_quote">On Thu, Jun 20, 2013 at 9:30 AM, Tamas Blummer =
<span dir=3D"ltr">&lt;<a href=3D"mailto:tamas@bitsofproof.com" =
target=3D"_blank">tamas@bitsofproof.com</a>&gt;</span> wrote:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"><div =
style=3D"word-wrap:break-word"><div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;t=
ext-transform:none;font-size:medium;white-space:normal;font-family:Helveti=
ca;word-spacing:0px">

<div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

Hi Mike,</div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

<br></div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

The issue with the current parser is that those fields are conditionally =
optional on that there will be no subsequent fields added.</div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

If there will be further fields they will become =
manadory.&nbsp;</div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

&nbsp;</div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

Why not bump the version and parse the fields as mandatory&nbsp;from =
then on? This would be backward compatible and cleaner</div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

going forward.</div><span><font color=3D"#888888"><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:left;font-style:normal;font-weight:normal;line-height:normal;text-tran=
sform:none;font-size:medium;white-space:normal;font-family:Helvetica;word-=
spacing:0px">

<br></div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;t=
ext-transform:none;font-size:medium;white-space:normal;font-family:Helveti=
ca;word-spacing:0px">

<span>Tamas Blummer</span></div><div =
style=3D"text-indent:0px;letter-spacing:normal;font-variant:normal;text-al=
ign:-webkit-auto;font-style:normal;font-weight:normal;line-height:normal;t=
ext-transform:none;font-size:medium;white-space:normal;font-family:Helveti=
ca;word-spacing:0px">

<span><span><a href=3D"http://bitsofproof.com/" =
target=3D"_blank">http://bitsofproof.com</a></span></span></div></font></s=
pan></div><a href=3D"http://bitsofproof.com/" =
style=3D"font-family:Helvetica;font-size:medium;font-style:normal;font-var=
iant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;te=
xt-align:-webkit-auto;text-indent:0px;text-transform:none;white-space:norm=
al;word-spacing:0px" target=3D"_blank">
=
</a></div><br></div><br>--------------------------------------------------=
----------------------------<br>
This <a href=3D"http://sf.net/" target=3D"_blank">SF.net</a> email is =
sponsored by Windows:<br>
<br>
Build for Windows Store.<br>
<br>
<a href=3D"http://p.sf.net/sfu/windows-dev2dev" =
target=3D"_blank">http://p.sf.net/sfu/windows-dev2dev</a><br>_____________=
__________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net" =
target=3D"_blank">Bitcoin-development@lists.sourceforge.net</a><br>
<a =
href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development" =
target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-dev=
elopment</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div></div></div></blockquote></div><br></div>
</blockquote></div><br></body></html>=

--Apple-Mail=_4A2B3B2A-66B7-49FC-947F-47A201BD0F89--