3 ms·
I consider dat:// to be the better protocol, in part because of what you mentioned. Other advantages are the lack of duplicating data on disk (IPFS makes a copy
by zaarn 7y ago
I consider dat:// to be the better protocol, in part because of what you mentioned. Other advantages are the lack of duplicating data on disk (IPFS makes a copy of all data it shares) as well as having a versioned history of all changes. That way app owners can'tp ublish malicious versions while preventing people from using the non-malicious ones.
Essentially, dat:// behaves like BitTorrent but the torrent data can change.
The only downside for both protocols I can think of is that the integration story outside the browser and CLI tools is very poor (there is no FFI/C lib Ic an bind my Rust app to)
- macawfish 7y agoDat-rs exists but seems to be on pause.
- yoshuaw 7y agoDatrs dev here. I implemented all of the Hypercore feed protocol last year. The next step was to add the networking layer, which was blocked on async IO in Rust. So that's what I've been working on this year (the Runtime project). Datrs development should be unblocked again soon, starting by moving the fs layer over to async IO. And then tackling the network layer.
- macawfish 7y agoAwesome to hear that! Thank you so much for your work!
- pabs3 7y agoThere is a BitTorrent extension for updatable torrents: https://www.bittorrent.org/beps/bep_0046.html https://www.bittorrent.org/beps/bep_0046.html
- zaarn 7y agoYeah but there isn't any client that supports it. Or more importantly, easy-to-use libraries that allow me to use it in my projects.
- asark 7y ago> (there is no FFI/C lib Ic an bind my Rust app to) Language choices in both have set off my "this is doomed to obscurity" alarm bells for precisely that reason. You don't write the reference implementation for a new Internet protocol—especially the core library for it, and especially a very complex one—in a language that can't easily be included in most other languages. So, probably C. Dat in particular seems great but ain't no way I'm relying on a large JS project for anything I don't absolutely have to, on my own time, especially if it deals with my files.
- eudoxus 7y agoWith regards to IPFS (don't have much experience with Dat), I have a hard time understanding how choosing Go to implement their protocol, as well as Javascript makes it doomed for obscurity. A lot of distributed/decentralized applications and platforms are being written in Go. This is the first time I've heard this argument. Not to mention you can call into Go funcs over shared libs from C. Rust is a great language definately, but not using it is a completely sane design choice. C has been a source of a number of security issues due to memory management, that type safe languages solve. Not to mention, there are various parts of the IPFS/LibP2P stack that are being written in Rust by other teams.