Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194]
	helo=mx.sourceforge.net)
	by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <gcbd-bitcoin-development@m.gmane.org>)
	id 1W7Xz1-0007Vc-3v for bitcoin-development@lists.sourceforge.net;
	Sun, 26 Jan 2014 22:15:15 +0000
Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of m.gmane.org
	designates 80.91.229.3 as permitted sender)
	client-ip=80.91.229.3;
	envelope-from=gcbd-bitcoin-development@m.gmane.org;
	helo=plane.gmane.org; 
Received: from plane.gmane.org ([80.91.229.3])
	by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.76) id 1W7Xyz-0003fw-Na
	for bitcoin-development@lists.sourceforge.net;
	Sun, 26 Jan 2014 22:15:15 +0000
Received: from list by plane.gmane.org with local (Exim 4.69)
	(envelope-from <gcbd-bitcoin-development@m.gmane.org>)
	id 1W7Xyr-0004oP-9f for bitcoin-development@lists.sourceforge.net;
	Sun, 26 Jan 2014 23:15:05 +0100
Received: from f052020014.adsl.alicedsl.de ([78.52.20.14])
	by main.gmane.org with esmtp (Gmexim 0.1 (Debian))
	id 1AlnuQ-0007hv-00 for <bitcoin-development@lists.sourceforge.net>;
	Sun, 26 Jan 2014 23:15:05 +0100
Received: from andreas by f052020014.adsl.alicedsl.de with local (Gmexim 0.1
	(Debian)) id 1AlnuQ-0007hv-00
	for <bitcoin-development@lists.sourceforge.net>;
	Sun, 26 Jan 2014 23:15:05 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bitcoin-development@lists.sourceforge.net
From: Andreas Schildbach <andreas@schildbach.de>
Date: Sun, 26 Jan 2014 23:14:52 +0100
Message-ID: <lc41cf$fdd$1@ger.gmane.org>
References: <lc3tm6$9ko$1@ger.gmane.org>	<CANEZrP2F-1aqzBfUB82riWOwTABf1arbx70FdQ-XndQ91m_QqA@mail.gmail.com>	<lc3utn$m8u$1@ger.gmane.org>
	<CANEZrP0GLcSf0B-bW7jZq5m+wdkBLe_iEok-XCCOFASGAthtug@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Complaints-To: usenet@ger.gmane.org
X-Gmane-NNTP-Posting-Host: f052020014.adsl.alicedsl.de
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
	rv:24.0) Gecko/20100101 Thunderbird/24.2.0
In-Reply-To: <CANEZrP0GLcSf0B-bW7jZq5m+wdkBLe_iEok-XCCOFASGAthtug@mail.gmail.com>
X-Spam-Score: -0.9 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,
	no trust [80.91.229.3 listed in list.dnswl.org]
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	-0.0 SPF_HELO_PASS          SPF: HELO matches SPF record
	1.1 DKIM_ADSP_ALL          No valid author signature,
	domain signs all mail
	-0.0 SPF_PASS               SPF: sender matches SPF record
	-0.5 RP_MATCHES_RCVD Envelope sender domain matches handover relay
	domain
X-Headers-End: 1W7Xyz-0003fw-Na
Subject: Re: [Bitcoin-development] BIP70/71 issue, RFD
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: Sun, 26 Jan 2014 22:15:15 -0000

Just keep in mind that if it turns out we need to retrofit messages with
length prefixes I fear we will have to restart with new mime-types. The
nature of prefixes being always at the start means this rules out simply
incrementing a protocol version number.

Correcting myself:

> it might be a good idea to apply this to all messages if any.

Of course I only mean the "root" messages, namely PaymentRequest,
Payment, and PaymentACK. The embedded messages don't need length prefixes.


On 01/26/2014 11:00 PM, Mike Hearn wrote:
> I think for "binding" the payment protocol to those transports we should
> indeed use protobuf varint length prefixes. But it's unnecessary for all
> cases. Unless Gavin feels it'd be better to be consistent everywhere and
> is willing to change the spec and code - as far as I know though we're
> trying to ship 0.9rc1 soonish .....
> 
> 
> On Sun, Jan 26, 2014 at 10:32 PM, Andreas Schildbach
> <andreas@schildbach.de <mailto:andreas@schildbach.de>> wrote:
> 
>     Bluetooth, Wifi Direct, HTTP request/responses via broken proxies, smoke
>     signals... basically anything that is a stream rather than a file.
> 
>     Right, NFC NDEF and QR codes are not affected, so we can skip the
>     delimiter for these mediums.
> 
> 
>     On 01/26/2014 10:24 PM, Mike Hearn wrote:
>     > Which medium is this an issue for? As you note, for files and HTTP
>     > responses it's not a problem in practice. i'd guess nor for NFC
>     tags nor
>     > QR codes.
>     >
>     >
>     > On Sun, Jan 26, 2014 at 10:11 PM, Andreas Schildbach
>     > <andreas@schildbach.de <mailto:andreas@schildbach.de>
>     <mailto:andreas@schildbach.de <mailto:andreas@schildbach.de>>> wrote:
>     >
>     >     I'm experimenting with BIP70/71 (payment protocol) usage in
>     face to face
>     >     payments (more on that soon).
>     >
>     >     I've excountered an issue with the protobuf format. Protobufs
>     are not
>     >     self-delimiting. That means if you're reading from an undelimited
>     >     stream, you will read endlessly because you don't know how
>     much to read.
>     >
>     >     The current BIP70 implementations probably work because
>     they're reading
>     >     either from a file or from an HTTP resource which sets the
>     >     Content-Length header. Trouble is the Content-Length header is
>     optional,
>     >     and also there are many kinds of streams that don't have this
>     built-in
>     >     delimiting mechanism.
>     >
>     >     The Java protobuf API solves this by offering delimited I/O, like
>     >
>     >     payment.writeDelimitedTo(os);
>     >
>     >     This writes the size of the message as a varint before writing
>     the data.
>     >     I don't know about protobuf implementations for other
>     languages but I'd
>     >     expect them to offer something compatible.
>     >
>     >     However, this leading varint is an incompatible change and
>     would need to
>     >     be added to the spec.
>     >
>     >     I specifically encountered this with PaymentMessage and
>     PaymentACK, but
>     >     it might be a good idea to apply this to all messages if any.
>     Open for
>     >     discussion.
>     >
>     >
>     >    
>     ------------------------------------------------------------------------------
>     >     CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>     >     Learn Why More Businesses Are Choosing CenturyLink Cloud For
>     >     Critical Workloads, Development Environments & Everything In
>     Between.
>     >     Get a Quote or Start a Free Trial Today.
>     >    
>     http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>     >     _______________________________________________
>     >     Bitcoin-development mailing list
>     >     Bitcoin-development@lists.sourceforge.net
>     <mailto:Bitcoin-development@lists.sourceforge.net>
>     >     <mailto:Bitcoin-development@lists.sourceforge.net
>     <mailto:Bitcoin-development@lists.sourceforge.net>>
>     >     https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>     >
>     >
>     >
>     >
>     >
>     ------------------------------------------------------------------------------
>     > CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>     > Learn Why More Businesses Are Choosing CenturyLink Cloud For
>     > Critical Workloads, Development Environments & Everything In Between.
>     > Get a Quote or Start a Free Trial Today.
>     >
>     http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>     >
>     >
>     >
>     > _______________________________________________
>     > Bitcoin-development mailing list
>     > Bitcoin-development@lists.sourceforge.net
>     <mailto:Bitcoin-development@lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>     >
> 
> 
> 
>     ------------------------------------------------------------------------------
>     CenturyLink Cloud: The Leader in Enterprise Cloud Services.
>     Learn Why More Businesses Are Choosing CenturyLink Cloud For
>     Critical Workloads, Development Environments & Everything In Between.
>     Get a Quote or Start a Free Trial Today.
>     http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
>     _______________________________________________
>     Bitcoin-development mailing list
>     Bitcoin-development@lists.sourceforge.net
>     <mailto:Bitcoin-development@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today.
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> 
> 
> 
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>