P2Pcollab
protocols for local-first peer-to-peer collaboration

About
P2Pcollab is a collaborative effort towards creating decentralized, asynchronous protocols for local-first peer-to-peer collaboration.
We develop decentralized internet protocols and tools that allow us ownership and control over our data and digital identities, and enable us to collaborate with our peers and facilitate content publishing, access and discovery, based on open protocols and open source software, without centralized censorship or opaque algorithmic bias.
We aim to shift the paradigm from centralized services with user lock-in to open, decentralized protocols with data ownership, pushing data to edge networks where we can locally access, search, discover, and collaborate, even offline.
We realize this through the research and development of local-first network protocols and data models, and their implementation as composable and reusable libraries and applications.
Design principles
We design networks & systems that empower & respect users, and ensure sustainability of hardware, software, and human resources.
The following principles guide us to achieve this.
- Local first
- network & data locality without dependency on always-on global networks & services.
- Identity & data ownership
- Full control over user data and identities
- Privacy
- Respect user privacy and minimize the amount of data and metadata exposed about users
- End-to-end security
- Only the intended recipients should be able to read data stored and transmitted in the network.
- Self-*
- Self-organization, self-optimization, self-repair of networks and systems.
- Resiliency
- Resilient networks & systems that can recover from network partitions and system failures.
- Minimalism
- Minimize software dependencies and hardware resources to reduce complexity
- Composability
- Design systems with composable and reusable components.
Design overview
Network architecture
The network architecture follows a two-tier peer-to-peer model that consists of global core network and local edge networks. Within each network the system is further organized as independent suboverlays for group communication and a common overlay for peer discovery and clustering to find suboverlay members.
Topic-based publish/subscribe
Topic-based publish-subscribe is a messaging pattern where publishers publish content to topics, which subscribers can subscribe to and receive published messages. This messaging pattern is the basis of various publishing, group communication and database replication schemes, and serves as a basic building block for our system.
The current internet stack is based on a centralized, host-based, one-to-one communication pattern, while most of our communications involve interaction within groups. IP multicast has been proposed as a group communication primitive, but it is not generally available to end-users due to security and scalability limitations.
We propose a relay-free, asynchronous peer-to-peer publish-subscribe protocol suite that provides a scalable, public key-addressed group communication primitive, that keeps user location & subscriptions private by employing brokers that store-and-forward encrypted messages for users, providing an authenticated causal multicast scheme for group communication that serves as a transport layer for secure group communication and data syncronization protocols.
It enables direct communication of mobile nodes on edge networks and also offers asynchronous communication with remote nodes through the internet via store-and-forward brokers that form a core P2P network and keep encrypted messages for mobile nodes while they are offline.
A broker acts on behalf of a user in the P2P core network. It collects subscriptions and facilitates publishing, search, and discovery of content. A user may use multiple brokers for redundancy or for different identities. Brokers can be run by users, communities, or commercial providers.
The protocol suite consists of peer sampling, subscription-based clustering, and reliable, authenticated causal multicast protocols.
Read more about the protocol design for further details.
Mergeable Data Repositories
Conflict-free replicated data types (CRDT) enable asynchronous, conflict-free collaboration on shared data repositories, and make eventual consistency possible among a set of replicas.
Authenticated CRDT operations disseminated over pub/sub to subscribers form a tamper-proof log, which is stored in mergeable data repositories and replicated to subscribers with access control on the allowed operations.
This enables decentralized collaboration on data repositories without relying on a centralized server for coordination, and allows resource-constrained mobile and IoT devices on edge networks to participate in the network.
Immutable objects
Next to mutable objects, data repositories also need to store immutable objects using a content-addressed object store that stores encrypted chunked objects in the repository. These objects are referenced from the mutable store.
Decentralized Content Recommendation, Search & Discovery
Gossip-based collaborative filtering protocols enable recommendation, search, and discovery of relevant pieces of content (e.g. news items, blog posts, etc) and data repositories with content to subscribe to, based on users' obfuscated interest profiles.
This allows discovery of relevant information in both implicit networks formed around common interests and in explicit networks based on group membership.
Further reading
- Protocol design & specification
- P2P protocol details.
- Source code & documentation
- Software modules developed so far.
- Cover image
- L-system rules for the cover image.
Community & Contact
- Email: #@p2pcollab.net
- IRC: #p2pcollab@irc.oftc.net
- XMPP: p2pcollab@chat.disroot.org
- Matrix: #p2pcollab:asra.gr
Funding
The project is supported by NLnet and the NGI0 Discovery fund of the EU's Next Generation Internet initiative.