That is significantly more work than posting a torrent to a tracker, with significantly less discoverability.
Is that hash at least decoupled from the content?
Edit: clarification
That is significantly more work than posting a torrent to a tracker, with significantly less discoverability.
Is that hash at least decoupled from the content?
Edit: clarification
It sure isn't! IPFS is a content-addressed network. If you want to update your site without changing it's address then you'll need a layer of indirection, such as IPNS, which allows a node on the network to redirect ipns://<my key> to an updatable content hash. This feature has been immature for a while now.
In my experience, Dat is the more mature option, though it seems to lack an official http gateway[0]. Combined with Beaker though,it makes web authoring an absolute breeze.
[0]: though unofficial public ones can be found here, as well as the tools needed to host your own https://github.com/RangerMauve/dat-gateway/
I'm toying currently with an app to do play by post d&d campaigns on Dat, I make one user create a Dat archive to hold game data, then each player has their own archive for their character, the game archive hold references to the public keys for each one, and then the application takes each character feed and merge them to present a seamless discussion.
This feels like contributing to the same document, and yet each user is in total control of their data (almost total control, because they cannot decide to erase it if other people are already seeding it). I also love the possibilities of scaling it implies : when each user hosts their own data, the number of users doesn't matter (provided they all interact in reasonably small groups, of course).
EDIT: oh btw, I can create archives on-the-fly because I'm using Beaker browser's api. I don't know if it's something possible with Dat by itself.
Suppose I wanted a group activity. Who enforces any rules? What if someone deletes something?
How does a personal swarm recover from the same user making two conflicting edits? Is it just totally borked from then on?
And about consensus... how in Dat can I have the others deny an operation in the Dat, if it violates some rule? Like if I wanted to double-spend a token, for instance. A single, non divisible token, mind you.
I don't try to build a consensus (if by that we mean conciliating possibly conflicting entries, like Stellar if doing, for example), I just merge feeds. For now, it's as simple as it gets : my feeds (one in each character's archive) are json array of objects each containing a timestamp and a message, I just concat them and sort by timestamp. Of course, this won't fly for long, I'll soon have to separate data sources in chunks and process them as stream to avoid loading everything in memory at once, but for now, it's good enough to explore what I can do with the protocol.
I have the feeling your questions could be sum up as : how do you implement authority if there is no central control of data? (my apologies if I got it wrong and make you say something you haven't). The answer is : you don't.
With a standard app on a server, if you don't enforce data integrity, one user can possibly break the application for all users. With an app like the one I'm building, an user only share their data with a small group of friends and can only affect them. If they corrupt their data, the app is only broken for them. "Congratulation, you broke your toy. Now what?" (edit: in my app case, removing that person from the group would be enough to fix the data).
Of course, this reduces seriously the scope of what kind of app you can build (forget banking apps, or anything where anonymous people interact with one an other at a public scale). I'm perfectly fine with that : I can build my usual small tool services without pondering if it's worth mantaining, renting a domain name and renting a server. I'm not trying to build uber or bitcoin.
Please note that I'm not saying that consensus protocol and security can't be implemented with Dat, I'm just saying that it doesn't matter for what I'm currently building (and which is my only experience with dat so far).
Personally, I see the dweb as internet of the early days, when we were all writing blogs and publishing tools just because we found it cool. If Dat makes it difficult for big players to launch commercial products on it, I would call that a feature (but it's too early to say if it's the case). They already have the web for that.
Is it?
Install Torrent client / IPFS client, create a torrent / add your files to it, then tell other people the torrent magnet link / ipfs link. Optionally, other people can open your magnet link / ipfs link with a web gateway site instead of installing software. (I'm not personally aware of torrent web gateways, but I assume some exist. The fact that they're popular for IPFS seems like a point for IPFS.)
>Is that hash at least decoupled from the content?
Content in both torrent magnet links and ipfs links is content-addressable. They're both based on a hash of the content. Distributing updated versions (of a torrent, or an ipfs link) is a task for a different layer.