LoFiRe - Local-First Repositories for Collaborative Decentralized Applications
LoFiRe is a decentralized, collaborative data repository with authentication, access control, and change validation. It is built on local-first data storage, synchronization, and change notification protocols that aim to protect privacy by minimizing metadata exposed to intermediaries.
We want to empower communities, organizations, and individuals to collaborate and share knowledge in a decentralized way while retaining ownership and control over their data with adequate privacy and security guarantees.
Here’s a selection of applications LoFiRe can be used for that we intend to develop once we are ready with the underlying infrastructure:
- Decentralized wikis & knowledge bases with semantic graph data models
- Project collaboration and publishing tools
- Structured discussion and decision making tools
- Personal information management tools
- Local-first search & discovery of relevant information and repositories
Communities and organizations (including DAOs) need tools for interaction and collaboration, sharing knowledge and publishing content.
Decentralized, local-first collaboration with privacy & security guarantees, authentication, and permissions while maintaining data ownership is a key building block for collaborative decentralized applications,
such as wikis, knowledge bases, structured discussion and decision making tools, however it is still not a solved problem:
most collaboration tools available are centralized,
while the few decentralized ones are missing either privacy, security, or asyncronicity properties.
LoFiRe enables local-first, asynchronous collaboration and data storage within communities while respecting privacy and maintaining data ownership, and provides foundations for developing local-first decentralized applications and community overlay protocols.
LoFiRe can be used by decentralized applications that use Conflict-free Replicated Data Types (CRDTs) as their data model. It is designed to support collaboration and knowledge sharing within communities and organizations. It does not depend on any specific blockchain, does not have a token, and it can synchronize its membership from external sources: initially we want to support Ethereum-based authentication.
Communities and organizations (including DAOs) can use it to support secure and authenticated interaction of their members through wikis, knowledge bases, structured discussions and decision making tools.
Progress & Validation
We have done extensive research and protocol design that was supported by an NGI grant,
and published the design and protocol specifications of LoFiRe
that serves as the basis for the implementation we are going to do.
We have also requested and incorporated feedback from other projects and researchers working on decentralized internet and peer-to-peer protocols.
Differentiation (from other projects)
Centralized collaboration systems lock in users together with their data with no possibility of offline use nor data portability (e.g. NextCloud, CryptPad, various wikis).
Decentralized collaboration tools based on CRDTs aim to tackle this, but they’re still missing end-to-end encryption, cryptographic authentication, and permissions (e.g. Automerge, Yjs).
Radicle is a decentralized code collaboration network with Git support that uses cryptographic identities, and employs a P2P gossip protocol for repository replication.
As it is intended for code collaboration, it relies on manual merges and does not use CRDTs that would allow collaboration on all kinds of data, not just source code.
LoFiRe aims to improve on this by researching & developing decentralized, local-first collaboration protocols and tools with data ownership, portability and offline use, while ensuring that privacy & security guarantees are built into the protocols.
The core team consists of:
- tg-x: distributed systems researcher, systems & network engineer, software architect
- nikoplp: software engineer specialized in semantic web, P2P, security, application design
With a few more collaborators for the development.
Grant Request $
- 100k USD
What the Funds Are For
The funds are for the further research and development of LoFiRe.
The source code we publish under the Apache 2.0 & MIT open source licenses.
We are going to implement the following components in Rust over a 6-month period:
- lofire-repo: repository structure, encryption, synchronization
- lofire-node: P2P node with sync, pubsub and broker protocols
- lofire-eth: synchronize repository membership from the Ethereum blockchain
- demonstration of functionality
The work consists of the following milestones:
Repository structure & storage:
repository structure with branches, commits, and object storage.
synchronization of two branches
object query and response routing over the network,
and external repo requests for non-members
P2P pub/sub protocol:
pub/sub subscriptions and event dissemination
Edge network protocols:
discovery, sync, and pub/sub protocols over LANs
provides access to the pub/sub and data store for end-user devices asynchronously
synchronize repository membership with with an external source:
DAO membership stored on the Ethereum blockchain.
a simple tool to demonstrate the usage & functionality of the implementation
We are looking for collaborators and projects that would like to use our protocols to develop decentrantrized applications and collaboration tools for various use cases.