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

Reply via email to