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
> <andr...@schildbach.de <mailto:andr...@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
>     > <andr...@schildbach.de <mailto:andr...@schildbach.de>
>     <mailto:andr...@schildbach.de <mailto:andr...@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
> 



------------------------------------------------------------------------------
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

Reply via email to