owned this note
owned this note
Published
Linked with GitHub
---
tags: grants
---
# Apply NLnet grant - datdot / aug 2022
## Menu
* [FUNDING](https://hackmd.io/LTc1X7kmTVGq-7Nt4To8XA?both)
* [Grants Timeline](https://hackmd.io/gDDWHpPeQaGEzv2T-dW_Kg?edit)
* [Grant Programs](https://hackmd.io/hy-ZmXE1QqCgKVRgzOVWFw?edit)
### Abstract: Can you explain the whole project and its expected outcome(s).
Popular files on a P2P network have more stability and availability than files on central networks. Accessing less popular or rare files, however, can be unreliable because sharing files in a P2P network requires that at least one node in the network has the requested data, and that node must be able to connect to the node requesting the data. This requirement is occasionally hard to meet because users may have limited access to the internet or will simply turn off their computer.
What if we want other people to help us host our data?
- what incentives do they have?
- how to find them and to trust them?
- how to verify they are 'seeding' your data?
DatDot p2p hosting technology is filling this gap by connecting users into a distributed marketplace.
Peers can request hosting for their hypercore files or they can offer storage space on their computers and host data for other peers. DatDot automates the process of matchmaking and performs regular checks to make sure data is being hosted and served to the readers.
DatDot hosting network consists of two main building blocks:
- a service logic, managing storing and retreiving of the data (written in Javascript, using Hypercore protocol)
- a blockchain logic, managing incentivized relationship between hosting requests and offers (written in Rust, using Substrate framework)
Project is in progress, we have a basic proof of concept implemented (https://github.com/playproject-io/datdot-service )and are now working on improving the economic logic of the model and would like to bring the project to the phase where we could run a test network with multimple peers (not just a simulation - as we currently do while developing) - current development phase is in WIP branch.
### Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?
My team and myself have been working in the p2p ecosystem for many years - as contributors and consortium members in the Dat ecosystem (https://dat-ecosystem.org/) and as smart contract developers/educators and frontend developers in the Ethereum Foundation (2017 -2019).
I have participated in the Dat ecosystem as an educator, onboarding new developers and teaching them the basics of the Hypercore protocol (previously known as Dat protocol). Also as a user, giving feedback to the core developers and suggesting improvements in the user experience and also helping with bug fixes. I alsogave a talk at the latest online Dat ecosystem conference, presenting DatDot project https://www.youtube.com/watch?v=6fRECo-mQBw&t=1130s and co-moderating an interoperability discussion https://www.youtube.com/watch?v=hzIU5X7g7PI
And in the Ethereum Foundation I was educating on conferences on How to write smart contracts (https://www.youtube.com/watch?v=nAI_Cr5Y8JY), How to improve transparency (https://www.youtube.com/watch?v=NEhpPRFbTAQ) and working on the editor for writing smart contracts in the browser, called Remix (https://github.com/ethereum/remix-ide/graphs/contributors)
### Requested Amount
48.000 EUR
### Explain what the requested budget will be used for?
#### Does the project have other funding sources, both past and present? (If you want, you can in addition attach a budget at the bottom of the form)
We would like to hire 3 additional developers:
- hypercore/node.js developer (to help us optimize the processes of networking between peers (to ensure we don't duplicate connections and to properly clean the streams once they are not in use anymore) and to help us implement the hypercore deamon to enable users who run the datdot network access hypercore protocol from any browser)
- rust developer ( to help us implement the current improved economic logic, which runs as a chain simulation in the javascript, to rust/substrate)
- electron developer (tp help us package the rust/substrate node and hypercore deamon in a minimalist electron app which will connect to the UI in the browser)
We have received a Web3 foundation grant (45.000 EUR) at the beginning of the project (Dec 2019) but have since not applied for any additional funding.
### Compare your own project with existing or historical efforts.
Hashbase
Hosting for hypercore protocol files on a centralized server. User can paste the hypercore address and get it hosted on a server. Hashbase uses a freemium model. It is sadly not supporting the latest hypercore and hyperswarm versions. Next, it is a centralized service which can be a single point of failure.
Homebase
It is an underlying code for running a Hashbase instance. Anyone can run their own instance and offer hosting server for others. It is also not up to date.
Cobox
Cobox is an encrypted p2p file system and distributed back-up tool. With CoBox, there are no centralised servers, no data centers, and no surviellance architecture. Its just you and your peers, providing mutual support. It is sadly not incentivized and it is also difficult to discover peers who might need help seeding their data.
Filecoin
P2P hosting marketplace for IPFS based data. A very similar solution to DatDot, but based on a different protocol. IPFS protocol is a great tool for immutable data, while hypercore protocol is optimized for mutable datasets.
Siacoin
Similar to Filecoin, it is also built for another protocol, in Sia's example it is their own custom protocol. They also use a different incentivization model and charge renters of storage a full payment in advance, while DatDot charges every few blocks (if hosts succesfully provide the proof of storage and delivery)
### What are significant technical challenges you expect to solve during the project, if any?
We want to implement javascript simulation (specification) for the chain logic in rust, using a substrate module. We have the first basic implementation already implemented, but want to update it to the latest substrate version and latest specification. We hope we will be able ot translate all of the logic and complexity expressed in JS to rust 1 on 1.
Next, we have so far only ran simulations of multiple users on one machine, so the challenge we expect will definitely be to run the node on multiple computers and make them connect (which shouldn't be hard, according to Substrate framework, but we haven't done this yet)
We also want to package the rust blockchain and hypercore deamon in an electron based app that every peer can then run on their computer and connect to each other. We hope we will be able to package it in an extremely efficient way so that it is easy to download and install it on any system, which could be a challenge.
### Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
Substrate and hypercore protocol are two very vibrant communities. Substrate was developed by the team around the Ethereum co-founder Gavin Wood and the framework is a building block for Polkadot and Kusama blockchain projects. Both of these 2 projects are promoting a new generation of blockchains, where there is not one main chain, but rather many interconnected custom chains. This part of the ecosystem is therefore home for many new chains, built on top of this unique blockchain building framework, called Substrate. Many of these chains have a storage problem and because of the nature of the ecosystem, where chains can easily plug and play together, we hope our solution will be able to serve this community very well. As a project, supported by this ecosystem with a grant, we are already known to the community, so once product is ready, we will apply to talk on the events and connect to the builders directly and offer them collaboration/help wth integration https://www.dotspot.io/projects/Vision_Baker/
Hypercore protocol, however is the community we've been engaging with for the past 8 years, since the start of Node and the community around it. We've been active participants in the community and are just setting up a new chapter of the Dat ecosystem as a garden to promote technology and help developers start new projects, built on top of hypercore (aka Dat). The ecosystem has some very important projects, such as Mapeo, Cabal, Beaker browser and more. The main obstacle from becoming even more mainstream, is the fact that hypercore can not easily work in the browsers and we are looking forward to launch DatDot which will on one hand help peers earn the community token for hosting files from other peers and on the other hand also enable everyone who runs DatDot node (which is also a hypercore gateway) to finally access hypercore in any browser.
https://dat-ecosystem.org/
https://hackmd.io/d8hgmONGQ3i7bpMXtjaOUg