[ ] create milestones and issues for 3 months from the [datdot concept]
[ ] transition as many of our hackmd's into github repo readmes and/or issues
[ ] update our sequence diagram and combine it with the substrate API you have written down and with the brotli encoding will all put it into a first draft of some kind of official "specification" which i will add to the datdot-research repo
We will be using SRML for balances, sudo and write our own module dat-verify (=substrate logic (node))
it will verify hypercores in substrate runtime
we will use datrs (or something inspired by it) to make that work
details:
randomly selects dat archives and emits events
verifies data coming in from the service
make the node run on docker
implement structs for Proof and Node
implement and harden randomness
implement timing logic
add on-initialize logic
add register_backup to add and count users
implement logic to submit dat addresses for pinning
implement unregistering and initial challenge-response
We will implement adapter.js (=js service that reacts to the node)
it will use polkadot.js.org api and hypercore js libraries to encode and decode hypercores
we will use dat sdk and/or dat-store's service.js to communicate with adapter.js
details:
listening for events on the node
submitting data to the node (proofs and archives) or responding with the merkle proof from the dat archives
Deliverables:
We will deliver a working SRML module
We will create a docker container that runs a substrate node using the module
We will deliver a basic javascript module as a helper to interact with the node
We will record a screencast that explains how a user can spin up one of those Substrate nodes.
Once the node is up, it will be possible to send test transactions that will show how the new functionality works and will create a screencast which shows step by step how it works
Month 2 (Month 2)
Implement basic economics & UI logic
We will use the balances module to:
create a simple credit based system
by pinning you mint credits, by having your archive pinned, you burn credits
mint amount should be > than the burn amount to solve bootstrapping.(the burn amount should be defined by a market)
when you submit the dat you also set the price you're willing to pay for the service
priority service: users who pin more have priority to get their data pinned first
details:
Write a basic module that calls balances to mint and burn balances based on the outcomes of dat-verify
implement minting tokens if you are seeding (earning) and successfully solve challenges
implement burning creators' tokens when their data is pinned (payment)
implement a rough and basic UI for expert users to try out the system as a whole
run a little closed alpha (community) test and monitor and analyse usage to improve the economic model
We will write detailed documentation and create a screencast to show how to use it
Deliverables:
We will deliver a refined working SRML module
We will deliver a refined javascript module that helps interacting with the node
We will deliver a basic web UI which works with a locally running substrate node
We will create a docker container that runs all of this
We will record a screencast that explains how a user can spin up the docker and use it
Month 3 (Month 3)
Implement refine economics, UI and write documentation
We will run a public beta and monitor and analyse usage to improve the economic model
We will implement a convenient UI/UX
it will use and wrap the work from previous milestones to make it easy for each of the user roles:
pinners (seeders)
register to become pinners
get random dats to pin
they get paid for their work
dat creators (requestors)
they submit dats to be pinned to keep their data available while their devices are offline
node operators (should be seeders)
run substrate node
have to have enough disk space
reliable connection
get paid only when they seed (proof = succesful challenge )
paid in tokens (minted when each payment needs happen)
data consumers (public)
reads the data
we will use electron to build a desktop task bar application
details:
registering availability and requesting pinning
We will write detailed documentation and create video workshops for users to understand how to use it
Deliverables:
We will deliver a working electron task bar application to run the substrate node and UI
We will write a small report with the results from the analysis of our public beta
We will refine and describe the economic model we are using
We will record a screencast to show how to install and use the electron app to pin your data or let it be pinned
We will write detailed documentation which explains all features and how to use them
Future Milestones
We plan to further improve the electron app and the substrate node and economics around it to make datdot work reliable in production.
This might require further grant applications and eventually we might be able to be self sustainable, but that depends on the economic model
we will end up using. One big motivation for us is to use this as a reliable building block for future and past projects, where people need to manage their personal data
@todo
milestone2: 13.07.2020 - ????datdot#22
spec: make presentable spec after public w3f wave4 announcementdatdot-ui#1
datdot-uidatdot-node-rust#12
What is this? after posting link to latest specification in datdot-researchdatdot-research
repodatdot#16
specify datdot apidatdot#38
iframe apidatdot#14
package datdot in docker appdatdot#24
encoding compatible hypercoresdatdot#32
post project updatesdatdot#29
web3 grant status updatesdatdot-research#1
datdot-researchdatdot-chain#1
datdot-chaindatdot-service#1
datdot-servicedatdot-research#5
ensure quality of datdot servicedatdot#23
user feedback and community channelsplayproject-io/roadmapping
previous roadmap:
datdot#1
milestone1: 2019.08.23 - 13.07.2020future roadmapping:
datdot#69
milestone 3datdot#70
backlogmilestones from below:
milestones
Month 1
Month 2
Month 3
Development Roadmap
Milestone 1 (Month 1)
Implement basic JS & Substrate logic
balances
,sudo
and write our own moduledat-verify
(=substrate logic (node))hypercores
in substrate runtimeadapter.js
(=js service that reacts to the node)polkadot.js.org
api and hypercore js libraries to encode and decode hypercoresdat sdk
and/ordat-store's service.js
to communicate withadapter.js
Deliverables:
Month 2 (Month 2)
Implement basic economics & UI logic
balances
module to:Deliverables:
Month 3 (Month 3)
Implement refine economics, UI and write documentation
electron
to build a desktop task bar applicationDeliverables:
Future Milestones
We plan to further improve the electron app and the substrate node and economics around it to make
datdot
work reliable in production. This might require further grant applications and eventually we might be able to be self sustainable, but that depends on the economic model we will end up using. One big motivation for us is to use this as a reliable building block for future and past projects, where people need to manage their personal data