A Community Platform to Learn, Build & Share Dapps and Stories
Who is doing this crazy thing?: @vasa-develop
SimpleAsWater Website: dappbase.clusterlabs.io
The purpose of the presentation is to explain the problem and an overview of how SimpleAsWater works.
I meet a lot of developers who ask me:
I want to build this X dapp. How can I build it?
After discussing more on what the app is going to do, we come up with an answer that usually looks like this:
Use
Uport for Auth
IPFS for Storage
Ethereum for Core Logic
And the List GOES ON...
Well, that doesn't sound easy, right?
The problem is that there is NO SINGLE PROJECT that has ALL that you NEED. Also, a lot of projects never see a light of day, however awesome they maybe. There are a lot of complex platforms/projects where lack of community interaction is really slowing down the Developer adoption, let alone the general public adoption.
A COLLABORATIVE PLATFORM, which makes it easy to use MULTIPLE PLATFORMS.
Plus you can also ADD YOUR OWN PROJECTS that OTHERS CAN USE.
Well, I know what you are thinking now...
No. We are NOT building just another WALLED GARDEN that allows you to use only the features that we want you to add to your app.
What we are trying to build is a shared platform that allows users to add their own projects that others can use.
Our goal is to use generalized standards that allow a lot of projects to the platform. And while working IPFS stack for a while I realized that projects like Libp2p, Multiformats, IPLD provide a great base to start from.
The SimpleAsWater platform is divided into different sections:
- Authentication [WIP]
- Database [WIP]
- Storage [WIP]
- Hosting [FUNCTIONAL]
- Functions [COMINNG_SOON]
- Crashlytics [COMINNG_SOON]
- Analytics [COMINNG_SOON]
- Notifications [WIP]
- Ad Service [WIP]
- Much more [ADD_YOUR_SUGGESSTIONS_HERE]
For Authentication we use DID standards spec as our core specification.
Any project that conforms with the DID spec can be listed in the Authentication section.
There are a ton of projects out there like uport, blockstack, selfkey, Jolocom who provide there own DID methods enabling decetralized authentication. But this kind of approach leads to classic software usability problems.
So, we allow all these projects to co-exist while still keeping them functional. We use IDM spec for managing multiple DIDs.
You can check out Authentication Section in SimpleAsWater.
For Storage we use IPLD as out core specification.
There are a ton of decentralized Storage projects like IPFS(well, not just storage), Sia, Storj, Ethereum Swarm, MaidSafe, etc.
The noticible thing to observe here is that all these projects use hash based data structures to store data. We use IPLD spec to traverse the data from any hash based data structure. You may also use multiple projects to store your data and then link the data in the different projects.
You can check out Storage Section in SimpleAsWater.
In web2 you have 3 parties in the advertisment ecosystem.
First is the advertiser, who has an advertisement that he wants to publish.
Second is the advertisement platform that helps advertisers to place their adds on their platforms in a targetted way, so the ads are seen by a specific set of users.
And third is the users who see the advertisements.
Now the problem here is that the middle men, the advertisement platforms take a cut for displaying ads on their platform and the users don’t get anything for bieng bombarded by tens and hundreds of ads everyday.
So, what we do is that we replace the advertisement platform with the network of users itself.
Now, Let’s suppose all the users using the dapp form a network. Each user has surfs the app and the behaviour is tracked and recorded. All of this recorded behavioural data is stored with in the users device and is never sent out of the device. Now this data is reduced to some mathmatical vector which represents the user’s behaviour.
Now, an advertiser somes with an ad, and he wants to target a specific demographic. He choses the user behaviour that he wants to target. These desired properties are also converted to a mathematical vector which represents an ideal target customer.
Now, the advertiser publishes the ad on the network of users. Now this ad goes to every users device and checks if the user behavious vector is close to the advertiser’s desired vectors. If the vectors are close enough then the ad gets displayed.
Using this way, we totally remove the need of a middle man to publish the ads. Here, the advertisers save the cut that they gave to the advertisment platform and the users can get some fee for allowing the ads to display.
SimpleAsWater is an Open Source Project Under Cluster Labs
Checkout our progress at SimpleAsWater Github