JurajKubelka / Logoot
Monticello registration
About Logoot
The is an implementation of "Logoot: A Scalable Optimistic Replication Algorithm for Collaborative Editing on P2P Networks."
Abstract of the paper
Massive collaborative editing becomes a reality through leading projects such as Wikipedia. This massive collaboration is currently supported with a costly central service. In order to avoid such costs, we aim to provide a peer-to-peer collaborative editing system. Existing approaches to build distributed collaborative editing systems either do not scale in terms of number of users or in terms of number of edits. We present the Logoot approach that scales in these both dimensions while ensuring causality, consistency and intention preservation criteria. We evaluate the Logoot approach and compare it to others using a corpus of all the edits applied on a set of the most edited and the biggest pages of Wikipedia.
Implementation details
This solution uses Trantor framework. There is also Logout-Undo solution that we have in the TODO list. You are welcome to contribute :-)
Download
Gofer it
smalltalkhubUser: 'JurajKubelka' project: 'Logoot';
configuration;
loadBleedingEdge.
Use Cases
Todo Application
You can also check a simple use case downloading Todo application:
Gofer it
smalltalkhubUser: 'EvanDonahue' project: 'Todo';
configuration;
loadBleedingEdge.
Execute and see example:
TodoApp openOneServerOneClient.
You can check a short video (20 secs).
Text Editor
You can download a simple text editor using gtoolkit5 image and following configuration:
Gofer it
smalltalkhubUser: 'JurajKubelka' project: 'Logoot';
configurationOf: 'LogootBlocBrick';
loadBleedingEdge.
You need to switch into Bloc universe (World menu / Bloc / Switch universe) and execute:
LogootBrickPlayground openOneServerOneClient.
or see a short video.
TODO
- Implement Logout-Undo
- Abstract Logoot framework; it can be used for ordered collection of any objects.
