ABSTRACT
Fully peer-to-peer application software promises many benefits over cloud software, in particular, being able to function indefinitely without requiring servers. Research on distributed consistency mechanisms such as CRDTs has laid the foundation for P2P data synchronisation and collaboration. In this paper we report on our experience in taking these technologies beyond research prototypes, and working towards commercial-grade P2P collaboration software. We identify approaches that work well in our experience, such as the functional reactive programming paradigm, and highlight areas in need of further research, such as the reliability of NAT traversal and usability challenges.
- [n.d.]. Electron. https://www.electronjs.org/Google Scholar
- [n.d.]. Miro. https://miro.comGoogle Scholar
- Sebastian Burckhardt, Manuel Fähndrich, Daan Leijen, and Benjamin P Wood. 2012. Cloud Types for Eventual Consistency. In 26th European Conference on Object-Oriented Programming (ECOOP 2012). Springer LNCS, volume 7313, 283--307. Google ScholarDigital Library
- Roshan Choxi, Ignatius Gilfedder, Mark McGranaghan, Jeff Peterson, Matt Tognetti, and Peter van Hardenberg. 2019. PushPin source code. https://github.com/automerge/pushpinGoogle Scholar
- Evan Czaplicki and Stephen Chong. 2013. Asynchronous functional reactive programming for GUIs. In 34th Annual SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2013). ACM, 411--422. Google ScholarDigital Library
- Facebook, Inc. [n.d.]. React. https://reactjs.org/Google Scholar
- Bryan Ford, Pyda Srisuresh, and Dan Kegel. 2005. Peer-to-Peer Communication Across Network Address Translators. In USENIX Annual Technical Conference (ATC 2005). 179--192. http://brynosaurus.com/pub/net/p2pnat.pdfGoogle Scholar
- Victor B F Gomes, Martin Kleppmann, Dominic P Mulligan, and Alastair R Beresford. 2017. Verifying strong eventual consistency in distributed systems. Proceedings of the ACM on Programming Languages (PACMPL) 1, OOPSLA (Oct. 2017). Google ScholarDigital Library
- Richard Guy, Peter Reiher, David Ratner, Michial Gunter, Wilkie Ma, and Gerald Popek. 1999. Rumor: Mobile Data Access Through Optimistic Peer-to-Peer Replication. In International Conference on Conceptual Modeling Workshops. Springer LNCS, volume 1552, 254--265. Google ScholarCross Ref
- Internet Archive. [n.d.]. HyperCard Stacks. https://archive.org/details/hypercardstacksGoogle Scholar
- Duncan Keall. 2019. How Dat works. https://datprotocol.github.io/how-dat-works/Google Scholar
- Martin Kleppmann and Alastair R Beresford. 2017. A Conflict-Free Replicated JSON Datatype. IEEE Transactions on Parallel and Distributed Systems 28, 10 (April 2017), 2733--2746. Google ScholarDigital Library
- Martin Kleppmann and Alastair R. Beresford. 2018. Automerge: Realtime data sync between edge devices. In 1st UK Mobile, Wearable and Ubiquitous Systems Research Symposium (MobiUK 2018). https: //mobiuk.org/abstract/S4-P5-Kleppmann-Automerge.pdfGoogle Scholar
- Martin Kleppmann, Victor B F Gomes, Dominic P Mulligan, and Alastair R Beresford. 2019. Interleaving anomalies in collaborative text editors. In 6th Workshop on Principles and Practice of Consistency for Distributed Data (PaPoC 2019). ACM. 3323972 Google ScholarDigital Library
- Martin Kleppmann, Stephan A Kollmann, Diana A Vasile, and Alastair R Beresford. 2018. From Secure Messaging to Secure Collaboration. In 26th International Workshop on Security Protocols (SPW 2018). Springer LNCS, volume 11286, 179--185. Google ScholarCross Ref
- Martin Kleppmann, Peter van Hardenberg, Orion Henry, and Herb Caudill. [n.d.]. Automerge. https://github.com/automerge/automergeGoogle Scholar
- Martin Kleppmann, Adam Wiggins, Peter van Hardenberg, and Mark McGranaghan. 2019. Local-First Software: You own your data, in spite of the cloud. In ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! 2019). ACM, 154--178. Google ScholarDigital Library
- R. Mahy, P. Matthews, and J. Rosenberg. 2010. RFC5766: Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN). Google ScholarCross Ref
- Milanote Pty Ltd. [n.d.]. Milanote. https://www.milanote.comGoogle Scholar
- Ragnar Mogk, Lars Baumgärtner, Guido Salvaneschi, Bernd Freisleben, and Mira Mezini. 2018. Fault-tolerant Distributed Reactive Programming. In 32nd European Conference on Object-Oriented Programming (ECOOP 2018), Vol. 109. Schloss Dagstuhl. Google ScholarCross Ref
- Mozilla Developer Network. [n.d.]. IndexedDB API. https://developer. mozilla.org/en-US/docs/Web/API/IndexedDB_APIGoogle Scholar
- Mozilla Developer Network. [n.d.]. Progressive web apps (PWAs). https://developer.mozilla.org/en-US/docs/Web/Progressive_ web_appsGoogle Scholar
- Mozilla Developer Network. [n.d.]. Same-origin policy. https://developer.mozilla.org/en-US/docs/Web/Security/Sameorigin_ policyGoogle Scholar
- Mozilla Labs. [n.d.]. PDF.js. https://mozilla.github.io/pdf.js/Google Scholar
- Brice Nédelec, Pascal Molli, and Achour Mostefaoui. 2016. CRATE: Writing Stories Together with our Browsers. In 25th International World Wide Web Conference. ACM, 231--234. Google ScholarDigital Library
- Petru Nicolaescu, Kevin Jahns, Michael Derntl, and Ralf Klamma. 2016. Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types. In 19th International Conference on Supporting Group Work (GROUP 2016). ACM, 39--49. Google ScholarDigital Library
- Arvid Norberg. 2009. BEP 29: uTorrent transport protocol. https: //www.bittorrent.org/beps/bep_0029.htmlGoogle Scholar
- Maxwell Ogden, Karissa McKelvey, and Mathias Buus Madsen. 2018. Dat -- Distributed Dataset Synchronization and Versioning. https: //github.com/datprotocol/whitepaper/raw/master/dat-paper.pdfGoogle Scholar
- Jeff Peterson, Peter Hardenberg, Matt Tognetti, Jim Pick, and Orion Henry. [n.d.]. Hypermerge. https://github.com/automerge/hypermergeGoogle Scholar
- RangerMauve. [n.d.]. How Dat discovers peers. https://rangermauve. hashbase.io/posts/how-dat-discovers-peersGoogle Scholar
- J. Rosenberg, R. Mahy, P. Matthews, and D. Wing. 2008. RFC5389: Session Traversal Utilities for NAT (STUN). Google ScholarCross Ref
- Yasushi Saito and Marc Shapiro. 2005. Optimistic Replication. Comput. Surveys 37, 1 (March 2005), 42--81. 1057980 Google ScholarDigital Library
- Marc Shapiro, Nuno Preguiça, Carlos Baquero, and Marek Zawirski. 2011. Conflict-Free Replicated Data Types. In 13th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2011). Springer, 386--400. Google ScholarCross Ref
- Stack Overflow. [n.d.]. When is localStorage cleared? https://stackoverflow.com/questions/8537112/when-is-localstorage-clearedGoogle Scholar
- Daniel H Steinberg and Stuart Cheshire. 2005. Zero Configuration Networking: The Definitive Guide. O'Reilly Media.Google Scholar
- Dominic Tarr, Erick Lavoie, Aljoscha Meyer, and Christian Tschudin. 2019. Secure Scuttlebutt: An Identity-Centric Protocol for Subjective and Decentralized Applications. In 6th ACM Conference on Information-Centric Networking (ICN 2019). ACM. 3357396 Google ScholarDigital Library
- Albert van der Linde, Pedro Fouto, João Leitão, Nuno Preguiça, Santiago Castiñeira, and Annette Bieniusa. 2017. Legion: Enriching Internet Services with Peer-to-Peer Interactions. In 26th International Conference on World Wide Web (WWW 2017). ACM, 283--292. Google ScholarDigital Library
- John Wilander. 2020. Full Third-Party Cookie Blocking and More. https://webkit.org/blog/10218/full-third-party-cookieblocking-and-more/Google Scholar
Index Terms
- PushPin: towards production-quality peer-to-peer collaboration
Recommendations
Making CRDTs Byzantine fault tolerant
PaPoC '22: Proceedings of the 9th Workshop on Principles and Practice of Consistency for Distributed DataIt is often claimed that Conflict-free Replicated Data Types (CRDTs) ensure consistency of replicated data in peer-to-peer systems. However, peer-to-peer systems usually consist of untrusted nodes that may deviate from the specified protocol (i.e. ...
Peer-assisted online storage and distribution: modeling and server strategies
NOSSDAV '09: Proceedings of the 18th international workshop on Network and operating systems support for digital audio and videoPeer-assisted online storage and distribution systems have recently enjoyed large-scale deployment gaining increased popularity for multimedia content sharing in the Internet. Such systems typically deploy dedicated servers while effectively leveraging ...
From the Editors: Collaborative Computing Community--Leveraging Single-User Applications for Multiuser Distributed Collaboration
Transparently converting existing single-user applications for real-time collaboration could significantly increase the availability and improve the usability of collaborative applications.
Comments