From pete at petertodd.org Tue Oct 27 20:40:47 2015 From: pete at petertodd.org (Peter Todd) Date: Tue, 27 Oct 2015 16:40:47 -0400 Subject: [Lightning-dev] [PATCH v3] daemon: encrypted communication (version 3) In-Reply-To: <87io5sw13z.fsf@rustcorp.com.au> References: <87twpibc7m.fsf@rustcorp.com.au> <87io5sw13z.fsf@rustcorp.com.au> Message-ID: <20151027204046.GG27905@muck> On Wed, Oct 28, 2015 at 06:11:20AM +1030, Rusty Russell wrote: > Pierre writes: > > Hi Rusty, > > > >> 5) Unknown protobuf fields are handled in the protocol as follows > >> (including in the initial Authenticate packet): > >> > >> 1) Odd numbered fields are optional, and backwards compatible. > >> 2) Even numbered fields are required; abort if you get one. > > > > I don't get it, what is it about ? > > Yes, I really need to write this up in Matsjj's lightning-core docs > repository. > > Since protobuf fields are explicitly numbered, we can use this to > deliberately break backwards compatibility in future after some > transition. > > For example, if we want to add a "currency identifier" field in HTLC, > for non-bitcoin transactions. That would be an even numbered field, > since you need to understand it. (There would also need to be some way > to indicate you support those, during connection setup or something). > > But if we want to add an optional new field, we'd make it odd, and > existing implementations could ignore it. FWIW an analogous idea is OpenPGP's "critical bit" for packets, which indicates that if the software doesn't understand the packet it should consider the signature to be invalid: https://tools.ietf.org/html/rfc4880#section-5.2.3.1 -- 'peter'[:-1]@petertodd.org 00000000000000000b3f41bf1f2b9c5547bbdaa1ab40c914ab26faf764ff16a5 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 650 bytes Desc: Digital signature URL: