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