skip to main content
10.1145/3380787.3393683acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

PushPin: towards production-quality peer-to-peer collaboration

Published:27 April 2020Publication History

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.

References

  1. [n.d.]. Electron. https://www.electronjs.org/Google ScholarGoogle Scholar
  2. [n.d.]. Miro. https://miro.comGoogle ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Roshan Choxi, Ignatius Gilfedder, Mark McGranaghan, Jeff Peterson, Matt Tognetti, and Peter van Hardenberg. 2019. PushPin source code. https://github.com/automerge/pushpinGoogle ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. Facebook, Inc. [n.d.]. React. https://reactjs.org/Google ScholarGoogle Scholar
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarCross RefCross Ref
  10. Internet Archive. [n.d.]. HyperCard Stacks. https://archive.org/details/hypercardstacksGoogle ScholarGoogle Scholar
  11. Duncan Keall. 2019. How Dat works. https://datprotocol.github.io/how-dat-works/Google ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarCross RefCross Ref
  16. Martin Kleppmann, Peter van Hardenberg, Orion Henry, and Herb Caudill. [n.d.]. Automerge. https://github.com/automerge/automergeGoogle ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. Milanote Pty Ltd. [n.d.]. Milanote. https://www.milanote.comGoogle ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarCross RefCross Ref
  21. Mozilla Developer Network. [n.d.]. IndexedDB API. https://developer. mozilla.org/en-US/docs/Web/API/IndexedDB_APIGoogle ScholarGoogle Scholar
  22. Mozilla Developer Network. [n.d.]. Progressive web apps (PWAs). https://developer.mozilla.org/en-US/docs/Web/Progressive_ web_appsGoogle ScholarGoogle Scholar
  23. Mozilla Developer Network. [n.d.]. Same-origin policy. https://developer.mozilla.org/en-US/docs/Web/Security/Sameorigin_ policyGoogle ScholarGoogle Scholar
  24. Mozilla Labs. [n.d.]. PDF.js. https://mozilla.github.io/pdf.js/Google ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. Arvid Norberg. 2009. BEP 29: uTorrent transport protocol. https: //www.bittorrent.org/beps/bep_0029.htmlGoogle ScholarGoogle Scholar
  28. 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 ScholarGoogle Scholar
  29. Jeff Peterson, Peter Hardenberg, Matt Tognetti, Jim Pick, and Orion Henry. [n.d.]. Hypermerge. https://github.com/automerge/hypermergeGoogle ScholarGoogle Scholar
  30. RangerMauve. [n.d.]. How Dat discovers peers. https://rangermauve. hashbase.io/posts/how-dat-discovers-peersGoogle ScholarGoogle Scholar
  31. J. Rosenberg, R. Mahy, P. Matthews, and D. Wing. 2008. RFC5389: Session Traversal Utilities for NAT (STUN). Google ScholarGoogle ScholarCross RefCross Ref
  32. Yasushi Saito and Marc Shapiro. 2005. Optimistic Replication. Comput. Surveys 37, 1 (March 2005), 42--81. 1057980 Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarCross RefCross Ref
  34. Stack Overflow. [n.d.]. When is localStorage cleared? https://stackoverflow.com/questions/8537112/when-is-localstorage-clearedGoogle ScholarGoogle Scholar
  35. Daniel H Steinberg and Stuart Cheshire. 2005. Zero Configuration Networking: The Definitive Guide. O'Reilly Media.Google ScholarGoogle Scholar
  36. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  38. John Wilander. 2020. Full Third-Party Cookie Blocking and More. https://webkit.org/blog/10218/full-third-party-cookieblocking-and-more/Google ScholarGoogle Scholar

Index Terms

  1. PushPin: towards production-quality peer-to-peer collaboration

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            PaPoC '20: Proceedings of the 7th Workshop on Principles and Practice of Consistency for Distributed Data
            April 2020
            98 pages
            ISBN:9781450375245
            DOI:10.1145/3380787

            Copyright © 2020 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 27 April 2020

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Acceptance Rates

            PaPoC '20 Paper Acceptance Rate14of23submissions,61%Overall Acceptance Rate34of47submissions,72%

            Upcoming Conference

            EuroSys '24
            Nineteenth European Conference on Computer Systems
            April 22 - 25, 2024
            Athens , Greece

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader