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