[Bitcoin-development] BIP 32 proposed changes

2014-01-26 Thread Pieter Wuille
Hello all,

based on some feedback, I've created a pull request with a rewritten
version of BIP 32, hopefully making it more readable:
* Don't reuse the terminology 'public' vs 'private' for the alternate
derivation scheme which doesn't allow computing child public keys from
parent public keys, but call them hardened.
* Add explicit type conversion functions.
* Don't use the ' suffix to mean alternate in two very different
meanings (use the 'h' suffix to mean hardened, and use CKDpriv and
CKDpub for the derivation functions that operate on private and public
keys).
* Several smaller changes.

These are just documentation changes, the semantics are unchanged.

Comments are welcome, see https://github.com/bitcoin/bips/pull/12.

-- 
Pieter

--
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=119420431iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP70/71 issue, RFD

2014-01-26 Thread Andreas Schildbach
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 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=119420431iu=/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=119420431iu=/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=119420431iu=/4140/ostg.clktrk
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP70/71 issue, RFD

2014-01-26 Thread Mike Hearn
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.dewrote:

 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 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=119420431iu=/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=119420431iu=/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=119420431iu=/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=119420431iu=/4140/ostg.clktrk___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] BIP70/71 issue, RFD

2014-01-26 Thread Mike Hearn
To be more accurate, the embedded messages already have length prefixes :-)


On Sun, Jan 26, 2014 at 11:14 PM, Andreas Schildbach
andr...@schildbach.dewrote:

 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=119420431iu=/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=119420431iu=/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