# Blockathon DAO: DatDot Workshop
----
### Who Am I?
----
@jam10o wherever (twitter, tg, here)
Formerly:
Ethereum nerd.
Parity Tech tech support engineer & builders program.
Nowadays:
Kusama network councilor [until Council is hopefully obsoleted]
Some kid floating around in Social VR spaces
----
### What/Who is DatDot?
----
[@ninabreznik](https://twitter.com/ninabreznik)
[@serapath](https://twitter.com/serapath)
of playproject.io & wizardamigos.com
this page hopefully grows: https://datdot.org/#supplyTree
You? ([We're hiring!](https://datdot.org/#news))
----
We used to say:
"Filecoin, but for hypercores, instead of IPFS."
----
More accurately:
"A data availability and finality layer for hypercores."
----
Built with Substrate and Hypercore Protocol.
----
Hypercores are *technically* blockchains.
EXCEPT:
You can throw out the idea that [you should not store data "onchain"].
----
Why am I (a part of the DatDot team) giving out bounties for people building on hypercores?
----
DatDot intends to be a service layer for any hypercore-protocol based project - you can self-host today, but we want to help you turn that into something deploy-and-forget in the future!
----
So, how do we accomplish DatDot's goals for hypercores?
----
- Proof of storage
- Proof of delivery
- Decoupling payment from rewards
- Economic design geared *exclusively towards service provision*
----
## Proof of storage
----
Peers that sign up to host data only know:
What they are meant to be hosting
They do not know:
When their hosting will be verified,
What parts of their hosting will be verfied,
----
They cannot grab data just-in-time, because they are cryptographically challenged on a transparently re-encoded form of the data in question, not the canonical hypercore encoding.
----
Proof of delivery
----
Peers that sign up to host data must be honestly participating in the hypercore swarm.
----
They report:
* If the expected hoster is present in the expected peer swarm.
* If the expected hoster successfully responded to the challenge made.
* Performance metrics like latency.
----
For both proof types, we:
* randomize the attestors requested to make the challenges,
* randomize when the challenges are made,
* request attestors to create a new anonymous keypair to make the challenge.
----
## Decoupling payment from rewards / Economic design geared *exclusively towards service provision*
----
When DatDot is live, we do not want any network tokens created for it to be used for speculative purposes
(service providers should be able to rely on the value of the income from a fixed amount of work, service requestors should be able to rely on the amount of service they receive for a fixed amount of value)
----
Service provision is rewarded in untransferable resource-based tokens, convertable to a value token
----
Value token undergoes a constant demurrage, it must be spent for service provision or it is lost
----
Converting resources to value tokens burns the resource tokens and mints value tokens
----
Paying for services partially burns value tokens, and partially rewards public good initiatives.
----
We want to have a deep liquidity pool between the value token and something people can cash out easily, like KSM or DOT, but we shall see. :sweat_smile:
----
In summary:
* if you try to speculate, you will lose money.
* if you try to hoard wealth, you will lose money.
* if you try to pay yourself, you will lose money.
* money goes from service requestors -> service providers and positive externalities (dependencies, maintainance). that is it.
----
More on hypercores
----
Fundamental limitations:
----
* One Writer, Many Readers
* Append-only
* No global context (other than peer discovery)
----
Fundamental advantages:
----
* encrypted by default (not suitable for private communication by default).
* highly performant, efficient propagation of updates and data to peers.
* Does the heavy lifting (holepunching, discovery) for you!
----
Primitives to play with:
----
[Hyperswarm](https://github.com/hyperswarm/hyperswarm)
- raw connections and peer discovery.
[Hypercore](https://github.com/hypercore-protocol/hypercore) ([*hypercore-next*](https://github.com/hypercore-protocol/hypercore-next))
- distributed append only logs (uses hyperswarms)
More:
Hyperdrive, Hyperbee, Hypertrie, Autobase (https://github.com/hypercore-protocol)
----
Mentors for Blockathon:
----
Me (for high level hypercore stuff, but also can help out if you're doing anything Substrate related!),
@serapath (hardcore vanilla js expert, ask about anything hypercore too)
----
Bounties:
----
Our bounties are cumulative, I really hope we see a team attempt to claim all three!
----
Bounty 1: Dynamic Data Storage
2 KSM each, for up to 3 Winners
----
Tl;dr - demonstrate usage of persistent storage of app data in a hypercore, and share that data among peers using your product for extra resilience.
Example - https://github.com/hypercore-protocol/hyperspace
----
Bounty 2: Distributed Caching
3 KSM each, for up to 3 winners
----
Tl;dr - allow users to make api queries to your api of choice (cam be an api you've created for your product) via reading a local hypercore instead of HTTP/RPC calls to a central API endpoint.
----
Bounty 3: Live Content
2 KSM each, for up to 3 winners
----
Be it text, voice, or video chat, or broadcast streaming - demonstrate the realtime capabilities of the hypercore stack.
Example - https://dazaar.com
----
Resources:
https://hypercore-protocol.org/guides/
https://hackmd.io/@jam10o/HygATgJf9#/0/15
More details:
https://github.com/blockathondao/blockathon-dao#hypercore
These slides:
https://hackmd.io/@jam10o/HygATgJf9#/
{"metaMigratedAt":"2023-06-16T21:27:18.792Z","metaMigratedFrom":"Content","title":"Blockathon DAO: DatDot Workshop","breaks":true,"contributors":"[{\"id\":\"3b2e5222-ca9c-4a97-bdc3-9bade6d710ec\",\"add\":6165,\"del\":335}]"}