Project Title
LoFiRe - Local-First Repositories for Collaborative Decentralized Applications
Description
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.
Manifesto/Vision
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
Problem
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.
Solution
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.
Product Features
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.
Team
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. -
DAG synchronization:
synchronization of two branches -
Object queries:
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 -
Broker protocol:
provides access to the pub/sub and data store for end-user devices asynchronously -
Ethereum-based authentication:
synchronize repository membership with with an external source:
DAO membership stored on the Ethereum blockchain. -
Demo:
a simple tool to demonstrate the usage & functionality of the implementation
Help Requested
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.