[Ndn-interest] Version-controlled file-syncing/sharing (collaboration with git-annex?)

Varun Patil varunpatil at ucla.edu
Tue Apr 15 20:24:42 PDT 2025


Hi Kyra,

> Average users could get so much value out of a simple and intuitive p2p file-syncing service that is as polished as ResilioSync, provides revision control on arbitrary files like Abstract (version control for designers), but open source like LibreVault & SyncThing, plus backed by a distributed revision/version control system (DRCS/DVCS) like SparkleShare. This would be priceless for science, design, all sorts of collaborative workspaces, and especially for backups and data redundancy.

Yes, indeed. "Ownly" is one of the more recent NDN projects that is
trying to build parts of this, albeit there is no version control at
the moment (it is more directly intended to replace Google Docs and/or
Overleaf, so the focus is on realtime collaborative editing). But it
does, for instance, provide a p2p local-first (while supporting remote
storage/backups with NDN repo) file sync service for a group of users,
and the data can be end-to-end encrypted.

One note - since this needs a network layer change, the implementation
does require a functional NDN overlay network; currently we use the
global NDN testbed for this purpose [1]. But all of this software is
open source and it is reasonably straightforward to set up an NDN
overlay of your own, or (in the furture) peer with existing overlays
like the internet.

I'll leave some references below --
GitHub repo: https://github.com/pulsejet/ownly
A slightly outdated design paper: https://arxiv.org/pdf/2407.15234v1
The app itself: https://ownly.work

> Currently, git-annex depends on Tor and Magic Wormhole to share/collaborate/sync with others. There is Hypercore by Holepunch, but since an experiment for "Distributed Git over Named Data Networking" and npChat already exists, could a collaboration between Named-Data and git-annex allow for a built-in method for connections to be made for git-annex and set the foundation—pave the way—for the perfect file synchronization/sharing app?

I'm not familiar with the details of the GitSync experiment; others
might chime in. But I want to note that the (IMO more important)
problem that NDN solves is security in these distributed-decentralized
apps, rather than just providing a p2p transport (which is just part
of the puzzle). As for retrofitting existing applications with such a
transport, this is possible in certain cases (e.g. for apps using a
pub/sub API - replacing it with an NDN equivalent like SVS-PS [2]).
But generally speaking this is non-trivial: NDN being a data-centric
architecture has no "connections", but most existing app
implementations are (unfortunately) too intricately tied up with the
TCP/IP connection model.

[1] https://named-data.net/ndn-testbed/
[2] https://named-data.net/wp-content/uploads/2022/03/Resilient_Brokerless_Publish-Subscribe_over_NDN.pdf

Best,
Varun

On Tue, Apr 15, 2025 at 2:15 PM Kyra <hello at kyra.run> wrote:
>
>
> Hello!
>
> For wider discussion, I am cross-posting an idea I added to github here: https://github.com/named-data-mobile/ndn-photo-app/issues/186
>
>> Average users could get so much value out of a simple and intuitive p2p file-syncing service that is as polished as ResilioSync, provides revision control on arbitrary files like Abstract (version control for designers), but open source like LibreVault & SyncThing, plus backed by a distributed revision/version control system (DRCS/DVCS)¹ like SparkleShare. This would be priceless for science, design, all sorts of collaborative workspaces, and especially for backups and data redundancy.
>>
>> Currently, git-annex depends on Tor and Magic Wormhole to share/collaborate/sync with others. There is Hypercore by Holepunch, but since an experiment for "Distributed Git over Named Data Networking" and npChat already exists, could a collaboration between Named-Data and git-annex allow for a built-in method for connections to be made for git-annex and set the foundation—pave the way—for the perfect file synchronization/sharing app?
>>
>> ¹ Although, it might be nice to use Pijul, which has efficint binary diffs and hopefully someday also word-by-word diffs (for example, to be the revision control system for a wiki)
>
>
> Thanks,
> Kyra
>
> _______________________________________________
> Ndn-interest mailing list
> Ndn-interest at lists.cs.ucla.edu
> https://www.lists.cs.ucla.edu/mailman/listinfo/ndn-interest


More information about the Ndn-interest mailing list