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.
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.
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.
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.
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.