Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
	helo=mx.sourceforge.net)
	by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <tamas@bitsofproof.com>) id 1Upa3N-0002yS-Ho
	for bitcoin-development@lists.sourceforge.net;
	Thu, 20 Jun 2013 08:17:13 +0000
X-ACL-Warn: 
Received: from wp059.webpack.hosteurope.de ([80.237.132.66])
	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.76) id 1Upa3L-0003bl-LC
	for bitcoin-development@lists.sourceforge.net;
	Thu, 20 Jun 2013 08:17:13 +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 1Upa3E-0002Z8-V1; Thu, 20 Jun 2013 10:17:05 +0200
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_89C91DFB-D4A3-4955-A2B1-97BF686F7F4F"
Mime-Version: 1.0 (Mac OS X Mail 6.3 \(1503\))
From: Tamas Blummer <tamas@bitsofproof.com>
In-Reply-To: <CANEZrP1MVKSNU92UrQ36sPCN0LNLKrVRXnfVwEZKhgoBFXatBA@mail.gmail.com>
Date: Thu, 20 Jun 2013 10:17:04 +0200
Message-Id: <E9A1F9E4-0A9A-4B5F-98D2-585306EB99AA@bitsofproof.com>
References: <4DE0E45E-BB48-4DFF-9C86-ACBE312B3049@bitsofproof.com>
	<CANEZrP1MVKSNU92UrQ36sPCN0LNLKrVRXnfVwEZKhgoBFXatBA@mail.gmail.com>
To: Mike Hearn <mike@plan99.net>
X-Mailer: Apple Mail (2.1503)
X-bounce-key: webpack.hosteurope.de; tamas@bitsofproof.com; 1371716231;
	c85edd7f; 
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: 1Upa3L-0003bl-LC
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:17:14 -0000


--Apple-Mail=_89C91DFB-D4A3-4955-A2B1-97BF686F7F4F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1

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.

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.

Tam=E1s Blummer
http://bitsofproof.com

On 20.06.2013, at 09:36, Mike Hearn <mike@plan99.net> wrote:

> 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


--Apple-Mail=_89C91DFB-D4A3-4955-A2B1-97BF686F7F4F
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; ">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"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-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; ">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"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; =
"><a href=3D"http://bitsofproof.com/"><span><span style=3D"color: rgb(0, =
0, 0); ">http://bitsofproof.com</span></span></a></div></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 09:36, 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">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 style=3D"">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 style=3D""><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 class=3D"HOEnZb"><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 style=3D""><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">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">Bitcoin-developm=
ent@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></body></html>=

--Apple-Mail=_89C91DFB-D4A3-4955-A2B1-97BF686F7F4F--