How does MaidSAFE compare to Dat?

I just read the Dat whitepaper, and I wonder what the MaidSAFE team thinks of it. I realize they started later but they have already shipped working implementations and the protocol syncs things. It is modular and has layers whose implementations can be switched out, eg swarm discovery can use DNS or Kademlia Mainline DHT (160 bit).

I realize MaidSAFE uses a different Kademlia DHT with larger key sizes AND is more private (eg doesn’t leak IP addresses past the first hop). But are there any plans to be interoperable with the dat protocol?

I realize also that MaidSAFE is written in Rust. But Dat is agnostic to implementation details.

Just curious what you see as advantages or points of contrast between the two projects, and if they can be made compatible. Obviously since you guys use Beaker Browser you have thought about it…

In my understanding, the Dat protocol covers data addressing and transfer, where SAFEnet additionally covers storage:

  • With dat I need to keep my data online (i.e. myself or some peers with access to the data) for you to be able to get my data.
  • With SAFEnet I instead pay for the network (i.e. anyone wanting to earn SAFEcoin, without getting access to the data) to keep the data alive.

There is protocol (rules and principles), and there is implementation (proof of concept).

Dat and SAFEnet are both language-agnostic in principle.

Dat is currently implemented in Nodejs, where SAFEnet is currently implemented in a mixture of Rust (core parts) and Nodejs (user-facing parts).

Anything can be built around SAFEnet, including horribly bad constructs. I suggest to read various discussions about bridging SAFEnet and CLEARnet for more on that topic.

I suspect that sensible direct compatibility with dat is hindered by dat at its core relying on identifiers(URLs) for access control. See e.g. here: https://lwn.net/Articles/763574/

1 Like

In Dat, storage is a special case of transferring to whatever computers you designate for storage.

Both protocols split things up into chunks etc. but Dat doesn’t seem to do consensus or Proof of Resource.

I think if history had been different then SAFE network could have been implemented on top of Dat (which started later than SAFE, but then again so did Rust language) and simply add the SAFE specific stuff on top, and end up very interoperable with the Dat ecosystem and also benefit from the growing community which is constantly refining ways of syncing, hole punching, webrtc, etc. and it is all in Javascript.

On the other hand, since SAFE relies on close consensus it is vulnerable to sybil attacks so it wouldn’t be able to interoperate with a huge network anyway as Sybil attacks can only be mitigated by gradually vetting each new entrant and making sure at every point that the new entrants do not overwhelm the existing network.