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 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 <<a = href=3D"mailto:mike@plan99.net">mike@plan99.net</a>> 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"><<a href=3D"mailto:tamas@bitsofproof.com" = target=3D"_blank">tamas@bitsofproof.com</a>></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. </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"> </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 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--