Hacker News new | ask | show | jobs
by chaxor 1119 days ago
I always assumed having a raspberry pi with a couple HDs in raid1 with IPFS or torrent would be the best way to do this.

Giving another one of these raid1 rpis to a friend could make it reasonably available.

I am very interested to know if there are good tools around this though, such as a good way to serve a filesystem (nfs-like for example) via torrent/ipfs and if the directories could be password protected in different ways, like with an ACL. That would be the revolutionary tech to replace huggingface/dockerhub, or Dropbox, etc.

Anyone know of or are working on such tech?

1 comments

If you just want to be able to sync a directory between multiple devices with encryption options I'd recommend Syncthing. It's dead easy to set up, I've currently got it on a rpi backing up all my photos from my phone while syncing my Obsidian vault beteen my phone and desktop.
Yeah that's a good suggestion for that use case. I was thinking a bit more along the lines of 2 other use cases: 1) If you have a file locally and want to send a link to friend/family member (yourself or even some random person on the internet) for a 1TB or 1MB file to download, but for it to be optionally password protected to download. 2) You want to set up a package/script to automatically download a file when started (NN weights for example) and for the download to retrieve like IPFS torrent from everyone who has that file (I.e. is running the package).

The system in (2) works ok for downloading a Dockerfile that points to an IPFS file if you put the link there; however, a considerable number of things don't fit the suggestions in (2), such as not automatically becoming a seeder of that file when downloaded or when running the package. There is also a great amount of opportunity in making the process of uploading files to IPFS much simpler. One example for the code idea would be something like git hooks, such that any time a major version of a git commit was made, a set of files would be added to IPFS for this type of distribution. Ultimately a 'plug-n-play' package to add in a specified way e.g. setup.py would be the best way to get something like that going. Then perhaps a simple program like synching or miniserve that operates on top of that functionality would allow for something more like (1).

I use Syncthing, but how prone is it to data loss of any kind? Bitrot?
The biggest problems in aware of is sync conflicts, which just make things a little difficult. If they're text files it's not so bad, since vimdiff can easily merge. But if they're encrypted or more complex formats ... :/