P2P Seeded File Sync

Peer-to-peer seeded file sync would be a huge plus for this project. I have come across many ownCloud users who desire this as well. Having the ability to seed file sync for other clients would significantly offload the server and especially limited WAN or Internet links, if another client has the files nearby. You should also be able to turn on/off this feature on each client to opt-in/out of acting as a seeding peer.

Anyone have other thoughts?

8 Likes

I’m wondering if it wouldn’t be best to simply launch a P2P daemon and add the folders to NC via files_external?

sounds really useful :slight_smile:

First thing that came to my mind when I read this was IPFS. Implementation would be hairy. You’d have to add some encryption. If it was planned carefully, it could be super cool. You could have all the sync and maybe some of the sharing stuff even when connectivity to the server was bad or non-existent. First step would probably be to write a general dav client that also supports ipfs, and then, if you wanted more integration (sharing, etc.) look at the NC specific bits.

1 Like

I would also to be interested to see if this is technically possible. I wonder if you could use syncthing as a backend? Then the Nextcloud devs just have to deal with the API.

the nextcloud server have to be something like a torrent tracker for that purpose.

There are some reports of users doing this already:

So there is a way to do it. And if the LAN sync (LAN sync please) was implemented, it don’t see the use-case for this. Or even a server-2-server-sync: ownCloud server synchronisation (mirrored/redundant serving) [$275] · Issue #1190 · owncloud/core · GitHub

Oh, I know I’m doing it :wink: and it’s becoming easier and easier to set up, thanks to the IoT boom.

cough IPFS cough

I would love to see IPFS as an external storage source!

3 Likes

Hey I just thought of something… couldn’t you just mount IPFS with FUSE, use that mount’s file path for your Nextcloud data folder and finally enable Nextcloud’s server side encryption so only your Nextcloud instance could read it?

As far as I can see, this would share all of Nextcloud’s data on IPFS, encrypted so it could only be read through Nextcloud. Unless I’m mistaken, this would even mean that Nextcloud users accessing files from locations far away from the server, would actually get better performance, as their data files would be pulled from the closest IPFS node holding a copy of their data, rather than just the device hosting Nextcloud’s files.

Honestly, as long as we’re trying to get people off of centralised servers and into hosting their own data, it seems to me that offering a simple way that all users can easily have their data remotely backed up in a distributed manner is a fundamental responsibility, like security.

Until users critical data is secured against common problems like hard drive failure, computer theft and the like, most other issues pale into insignificance IMO.

2 Likes

Anyone give this a try yet? User-friendly (i.e. transparent) encryption management & syncing/browsing are two (possibly killer) features that NextCloud can bring to IPFS.

It looks like they’ve gone in a different direction to achieve the same goal of having a distributed p2p backup in Nextcloud, namely using Sia (which I hadn’t heard of before). It seems more complicated as far as I can see, but at the end of the day, it seems that you can do the same thing, namely provide storage to the network, in exchange for having the network backup your data to protect against the server being lost.

IPFS mounts via FUSE read only AFAIK.

Possible implementation paths were outlined in

There is an app in testing now:

Would like to notify my comment in that issue here to @tflidd , @Bugsbane or @rakekniven as I believe it deserves Nextcloud team attention.

We are volunteers and care about the community here.
Personally I am not involved in any product roadmap schedules.