dat-ecosystem-archive / DEPs

Dat Enhancement Proposals. Contains all specs for the Dat protocol, including drafts. [ DEPRECATED - see https://github.com/hypercore-protocol/hypercore-proposals for similar functionality. More info on active projects and modules at https://dat-ecosystem.org/ ]
https://dat-ecosystem.github.io/DEPs
167 stars 17 forks source link

Discussion: compatibility/gateway layer with IPFS #42

Closed DonaldTsang closed 6 years ago

DonaldTsang commented 6 years ago

Hi, I am a user of IPFS who would like to know more about Beaker/Dat
Example: https://github.com/hydrusnetwork/hydrus (anime collection platform with IPFS)
Example 2: https://github.com/Siderus/Orion and https://github.com/Siderus/Orion/issues/133
Here are some questions:

  1. Does Dat require Beaker to run, and if not, is there a standalone client like Orion/qBitTorrent?
  2. How easy would it be for a Python library like Hydrus to use Dat?
  3. Does Dat have context-defined chunking and de-duplication like IPFS?
  4. Does Dat use content-based addressing?
bnewbold commented 6 years ago

Hi @DonaldTsang,

  1. Dat does not require Beaker. There is a desktop application as well as a nodejs command-line app for sharing dat folders.
  2. Currently, the only working protocol implementation is in javascript/nodejs. You would need to write python code yourself to talk to javascript (or the command line tool) to interact with Dat. How easy this would be depends on how comfortable you are with Dat, Python, and Javascript. I don't know of anybody who has tried, but maybe it's easy!
  3. Dat can support context-defined chunking and some forms of de-duplication, but the reference implementations (javascript) currently implements neither by default. The de-duplication that Dat supports is within a single hypercore "feed" (eg, single shared folder) only, not across "all public data in Dat ever", which IPFS at least in theory deliver. AKA, if you and I both create new Dat folders from scratch with the same 100 MByte file in both, the protocol will never detect this duplication.
  4. Dat uses some content-addressed data structures internally, but at a high level does not use content-based addressing or discovery of peers. Instead, it uses a cryptographic key for addressing and discovery.

You might be interested in this stackoverflow thread I responded to: https://stackoverflow.com/questions/44859200/what-are-the-differences-between-ipfs-and-hyperdrive

bnewbold commented 6 years ago

I'm gong to close this thread now, as it's more of a question about how Dat works and less about protocol development. @DonaldTsang you can ask more questions on stackoverflow, or the https://github.com/datproject/discussions repo is a better place to discuss in github issues.

DonaldTsang commented 6 years ago

@bnewbold got it, was expecting this to be more a possible feature