Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What is this? #12

Open
bedeho opened this issue Dec 26, 2019 · 9 comments
Open

What is this? #12

bedeho opened this issue Dec 26, 2019 · 9 comments
Assignees

Comments

@bedeho
Copy link

bedeho commented Dec 26, 2019

I saw this project was part of wave 4, it seems really interesting - similar to things we have thought of building at https://github.com/joystream , but documentation is quite lacking.

What is the most complete explanation of the goal here?

@jam10o-new
Copy link

tl;dr the goal of datdot is to create a decentralized pinning service for dat, akin to hashbase (which is hosted centrally by a single person), but with backend logic and reliability checking handled by substrate.

This repo will (eventually) just hold a pallet or set of pallets that will let runtime devs integrate dat and dat pinning in their runtime (think "run your own filecoin") and a runtime and node implementation using the pallets.

@bedeho
Copy link
Author

bedeho commented Dec 26, 2019

Yes that is what I thought, and it sounds like a great idea.

Where can we learn more about

  1. Timeline: when is an early version of this meant to be ready?
  2. Incentives:
    • What is paid for? only storage? only bandwidth? both?
    • Who pays for what? down
    • What scheme is used for ensuring honest service?
    • How is quality of service regulated, such as up/down speed, latency, etc.
  3. How is this model compared to existing decentralised storage network services? such as
    • Storj
    • Airweave
    • Sia
    • Filecoin

@jam10o-new
Copy link

will ping here when we have this stuff written down in a more coherent format, but currently the details are spread across a series of hackmds and recorded videocalls which aren't publicly available atm.

I'm going to dump an outline here though:

  1. We plan to have an early prototype early-to-mid January.
  2. You get paid for successful challenge-responses, where challenges are of random duration (to prevent seeders going online exclusively to respond to challenges), of a random chunk of a dat archive (to prevent only storing data of chunks that you know will be challenged).

Challenges are made for the content of a "parallel" archive (merkle tree where the chunks of the archive are signed versions of the chunks of the actual dat archive), and augmented by attestations of service quality made by randomly selected offchain peers (to ensure that seeders are actually participating in the Dat network, not just the challenge-response game) - these attestations contain optional latency and location data (up to the attester) and we plan to display this information in our UI so that users have a better idea of QoS they are receiving.

We also intend to allow users to designate "non-voting" attestors so they can fine-tune what information the chain collects for them - these attestors will be directly rewarded by the user requesting their attestation and not by minting new tokens.

Incentives are provided by minting tokens on successful challenge-response, and optionally users burning tokens per challenge in order to prioritize their archives being assigned to seeders. It is more akin to a ratio (think bittorrent seed/leech ratios) than a mined/staked cryptocurrency.

  1. The largest difference with most existing solutions in the space is that we don't intend to build a monolithic chain, but rather provide this as a tool for individual communities and substrate chains to build their own "storage communities". We also inherit the properties of the Dat protocol (high performance dynamic datasets, in contrast to static content on ipfs if you don't use ipns, which is unreliable due to it relying on changes to propagate over a DHT). Same goes for Sia, Arweave, and Storj.

[While hypercores are append-only logs, dat archives (built on top of hypercores) are intentionally not immutable, they are public-key addressed, not content-addressed. Which is a key difference with all of the solutions you've mentioned.]

Datdot is essentially a community building and management tool for existing users of the Dat network first and foremost, and we hope by making the network more useful by making it easier to persist data, more people become involved in the community and build things on Dat.

@bedeho
Copy link
Author

bedeho commented Dec 26, 2019

Thank you for this, looking forward to an update when you have more public progress, we will def. use this in our chain.

@JoshOrndorff
Copy link
Contributor

@bedeho Tomorrow at 14:00 UTC I'll host @joshua-mir (and hopefully @serapath and @ninabreznik) on Substrate Seminar to discuss the current state and future goals of datdot this project.

@ninabreznik
Copy link
Member

ninabreznik commented Feb 11, 2020 via email

@ltfschoen
Copy link
Contributor

Thanks @JoshOrndorff I found the recording https://www.youtube.com/watch?v=EuMbE6kce-I&list=PLp0_ueXY_enXRfoaW7sTudeQH10yDvFOS&index=2&t=0s

@serapath
Copy link
Member

serapath commented Feb 25, 2020

@bedeho yeah, the video might help a bit, but we are still working in documenting and specifying everything, which is why the issue is still open and not closed.

I'm sorry it all takes a bit longer then expected, but some things turned out to be a lot less straight forward then we were initially hoping for

btw. at minute 24 in the youtube recording, @joshua-mir summarizes our approach towards making it work for everyone economically :-)

@bedeho
Copy link
Author

bedeho commented Feb 25, 2020

I have already started watching, no worries, everything takes time, we are still the first eager users of this if it does what it says on the label ;)

jam10o-new pushed a commit that referenced this issue Jun 13, 2021
Switch to `parachain::ValidationParams`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants