Glad to participate as requested, though this is primarily the developers' discussion. John B
On Thu, Jun 20, 2013 at 4:31 AM, Upayavira <u...@odoko.co.uk> wrote: > Perfect. > > On Thu, Jun 20, 2013, at 03:57 AM, Michael MacFadden wrote: > > Upayavira, > > > > > > We will put a wiki page together. We will also have the discussion here. > > That said, I would like to select at least three people who sign up to > > shepherd the discussion. Everyone is welcome and the committee members > > won't have any specific authority. I am just looking for people to form > > a > > working group and commit to making sure we can define and meet some > > objectives. > > > > ~Michael > > > > On 6/19/13 6:25 PM, "Upayavira" <u...@odoko.co.uk> wrote: > > > > >I'd encourage you to fire up a wiki page and start the discussion here. > > >I suspect due to te nature of the topic, participants will quickly be > > >self selecting. > > > > > >Upayavira > > > > > >On Wed, Jun 19, 2013, at 10:11 PM, Joseph Gentle wrote: > > >> On Wed, Jun 19, 2013 at 1:26 PM, Michael MacFadden > > >> <michael.macfad...@gmail.com> wrote: > > >> >>To start, I want to build a generic P2P OT container. This is a > simple > > >> >>wrapper that contains a set of OT documents and defines a network > > >> >>protocol for keeping them in sync. The container needs to be able to > > >> >>talk to another instance of itself running somewhere else and > > >> >>syncronize documents between the two instances. > > >> >> > > >> >>Thats all I want this container to do - it should be as lightweight > as > > >> >>possible, so we can port it to lots of different languages and > > >> >>environments. I want that code running in websites, in giant server > > >> >>farms, in vim, and everywhere in between. It won't have any database > > >> >>code, network code, users or a user interface (though it'll need > APIs > > >> >>to support all of that stuff). At its core it just does OT + > protocol > > >> >>work to syncronize documents. > > >> > > > >> > I strongly suggest we separate the OT Algorithms, the application > > >>level > > >> > protocol, and the network transport layer. > > >> > > >> The network transport layer should definitely be separated out. I'd > > >> also like to separate out the OT functions themselves (a la > > >> share/ottypes). > > >> > > >> I'm imagining coupling the concurrency control system and the > > >> application level protocol. This coupling might not be needed - I > > >> don't know enough yet to be able to tell. I think we should focus on > > >> figuring out what OT system(s) to use first. > > >> > > >> >>The OT itself I imagine building along the lines of Torben Weis's > P2P > > >> >>OT theory that he made in Lightwave: > > >> >>https://code.google.com/p/lightwave/ . Briefly, every operation > gets a > > >> >>hash (like git). We add tombstones to wave's OT type and remove > > >> >>invertability, so the transform function supports TP2. We also add a > > >> >>prune function (inverse transform) which allows the history list to > be > > >> >>reordered (so you don't have to transform out on every site). The > hard > > >> >>part is figuring out which operations to sync, and which operations > > >> >>need to be reordered. I'd like to go over the details with Michael > > >> >>MacFadden and anyone else who's interested - there may well be a > > >> >>better system that we should use instead. If there is, I'd like to > > >> >>know about it now. > > >> > > > >> > I think this is another interesting area. One thing to consider is > > >>that I > > >> > am not sure if the linear model that wave used is even the right > > >>option. > > >> > If we start manipulating things like JSON Objects, Java Object, XML, > > >>or > > >> > nested documents, a hierarchical path mechanism may be best. > > >> > > >> Yes. For ShareJS's JSON OT type, operations are defined by a path (a > > >> list) and an operation at that path. I'm not convinced by this design > > >> anymore - we should definitely discuss it. > > >> > > >> > My other > > >> > instinct here is, we should make sure that we base the OT on > something > > >> > that has been proven to be correct. There has been some work to > > >>evaluate > > >> > OT systems and prove that they are correct and solve the proper OT > > >>Puzzles > > >> > and support the required properties. > > >> > > > >> > Two other things that we need to consider. Beyond TP1 and TP2, > there > > >>are > > >> > also IP1, IP2, and IP3 that you need to think about if you are going > > >>to > > >> > support group undo, which in my opinion wave needs to support. If > you > > >> > can't undo things in collaboration, then you have problems. > > >> > > >> Using tombstones, I don't know how you can implement IP3. I've a mind > > >> to abandon formal invertibility, and simply rely on undo stacks for > > >> user level actions. But if we can find an architecture which meets our > > >> needs and can support invertibility, then that would be even better. > > >> > > >> > Basically, I am not confident that we know that wave's OT or what is > > >>in > > >> > lightwave is really what we want. I am not saying that they are > not, > > >>I am > > >> > just saying that I don't think we really have stated what we NEED > > >>from the > > >> > OT and then proved that a particular approach salsifies those needs. > > >> > Simply having a demo of something that works in a toy environment is > > >> > likely to have holes that we don't see until much, much later in the > > >> > development cycle. > > >> > > > >> > My recommendation here would be for us to form a small committee to > > >>do a > > >> > literature review on the topic and to foster some technical > > >>discussion. > > >> > The result should be something in the wiki that lays out a plan that > > >>the > > >> > community can comment on. > > >> > > >> I completely agree. I don't know enough about what our other choices > > >> are. You're much better read than I am and you're better connected to > > >> the academic OT community. Would you be interested in organising / > > >> chairing this committee? > > >> > > >> >>I'm also thinking about full end-to-end encryption. Especially in > the > > >> >>wake of the PRISM stuff, I'd quite like to make something secure. > > >> >>Snowden: "Encryption works. Properly implemented strong crypto > systems > > >> >>are one of the few things that you can rely on. Unfortunately, > > >> >>endpoint security is so terrifically weak that NSA can frequently > find > > >> >>ways around it." -- > > >> > > >>>> > http://www.guardian.co.uk/world/2013/jun/17/edward-snowden-nsa-files-wh > > >>>>ist > > >> >>leblower > > >> >>. > > >> > I like this idea. There is a paper from France that talks about > > >>nested > > >> > hashing, digital signing, etc that proves the authenticity of > > >>operations > > >> > that might also be worth looking at. I will try to dig up the > > >>reference. > > >> > > >> Great! > > >> > > >> -Joseph > > > > >