Proposal “dash-platform-incubator-phase-2“ (Completed)Back

Title:Dash Platform Incubator - Phase 2
Owner:andyfreer2020
Monthly amount: 155 DASH (10497 USD)
Completed payments: 3 totaling in 465 DASH (0 month remaining)
Payment start/end: 2020-05-15 / 2020-08-12 (added on 2020-05-17)
Votes: 1168 Yes / 5 No / 0 Abstain

Proposal description

Dash Proposal: Dash Platform Incubator - Phase 2

1. Summary

This proposal provides a “Phase 2” to the Dash Platform Incubator proposal (https://www.dashcentral.org/p/dash-platform-incubator) to extend bounty funding for the development of tools, resources and Dapps for Dash Platform on EvoNet for a further 3 months.

Phase 1 was successful in helping to incentivize the community devs who are creating the basic tools, infrastructure and online resources they needed to get started working with the recently released Dash Platform protocol from DCG, as well as identifying the need for available dapp-signing Platform Wallets necessary for end-users to operate 3rd party Dapps, interacting with Core devs to help them identify issues and test assumptions with real-world usecases, and laying the foundations to the 3rd party developer ecosystem we want to have in place to allow them to create useful mainstream applications on Dash when the Evolution upgrade is released on mainnet.

Phase 2 is looking to extend the bounty program for another 3 months and scale the funds and output, with a focus on delivering sample Web Dapps using the tools and wallets created from Phase 1, and further road-test the protocol prior to Mainnet release.

The ultimate goal of this strategy is to both help our main goal of Evolution itself… the ability for end-users to signup to Dash as an integrated, decentralized crypto internet-service by Username, that they can access and use as easily as they do with Facebook, Amazon, Netflix or Google, and secondly to help to construct the infrastructure and tools that will enable and inspire devs to build-out apps and services as Dapps that those users will want to use, and these funds, if awarded, will continue to aim to play a key part in achieving that.

2. Phase 1 Review

Phase 1 bounties were initially focused on tools to help new devs build on Platform with things like a block explorer, infrastructure, various tools that they need, the basics of which are now in place (details for all bounties are linked in the Audit section below).  

The latter half of Phase 1 has been focused on creating some working Platform Wallets, that enable signup of users to Dash with a unique username, and signing State Transitions with those names, a feature that devs need to build web and mobile dapps, both in library format for Dapp vendors and in a working wallet UX for end-users.  Note that DCG is upgrading Dash Wallet on iOS / Android to a Platform Wallet with an integrated frontend for the DashPay Dapp, Evolution’s flagship p2p/c2c payments feature, but generic dapp-signing in the wallet part isn’t planned until post-MVP (presumably due to factors such as needing to upgrade existing clients and resource limitations), so we decided to fund some quick/lightweight alternatives for EvoNet with bounties so devs can start building and testing 3rd party Dapps on EvoNet today.

Developer bounties were created for alternative Platform Wallet implementations by the community in the form of the Chrome Wallet and Evo Wallet projects, along with a Web Dapp Sample bounty and associated library bounties that together will provide a template for building fully working frontend Dapps on EvoNet which will now become the focus of Phase 2.  

I think that because right now DCG is focused on developing a single reference Dapp (DashPay, along with the underlying Platform protocol), it’s quite important that we explore non-DashPay dapps to ensure that the protocol is road-tested with a lot more commercial usecases to validate assumptions on key features such as the Username implementation, DAPI connectivity, DashJS etc, as well as building developer skill sets, reputations and working code before Mainnet, and this funding is key to that goal.  

I also think it’s been a really valuable experience to have community devs interacting with DCG devs, trying out their code, feeding back, and DCG devs iterating and helping a lot to patch issues and keep the community work going and I think everyone appreciates those efforts.  

3. Phase 1 Highlights

A selection of the rewarded bounties from Phase 1 are given below, status ‘completed’ means no further work is planned, ‘phase completed’ means current work is completed but future work is planned. ‘Open’ bounties are available to anyone to claim or to specific devs if they are status ‘open (reserved)’. Full details of all bounties are given in the audit section at the end and the rules are on Trello along with the actual bounty definitions that developers are working on and claiming.  

Please note that right now, EvoNet is midst-upgrade therefore some of the deploy links, all of which passed testing as part of their claims, might be broken at the time of writing and should be working again when EvoNet becomes more stable again after a coming data-wipe/upgrade which should be this week (starting May 18th).  There is also a connectivity error (Error #13) which is quite prevalent right now from DashJS to do with bad nodes on Evonet which should also be fixed by DCG devs in the next upgrade.

3.1 Chrome Wallet

A Platform Wallet from @readme to enable easy signup of a Dash Username and related functions, delivered as a Chrome browser extension.

Status: Phase Completed
Bounty: https://trello.com/c/XAwKVTjL/28-chrome-wallet
Site: https://github.com/readme55/Dash-Chrome-Wallet/releases
Source: https://github.com/readme55/Dash-Chrome-Wallet
Devs: @readme, @cloudwheels
Rewarded: 34 Dash

3.2 Web Dapp Sample

This sample web dapp POC works together with Chrome Wallet to form the basis we’ll need for actual Web Dapp development / usage, i.e. the ability to signup to Dash and then signin and use apps in a browser (or mobile device) via Usernames.  When used in conjunction with Chrome Wallet, it enables browser users (with an extension in Chrome or Firefox) to signup to Dash, then sign up to the Web Dapp Sample webapp, login and tweet simple messages through a PIN provided by the wallet and notifications to authenticate actions in the Dapp’s frontend.  It uses a proxied request / response pattern via documents for authentication to work with the current protocol which needs optimizing, the UX is alpha and connectivity glitches are frequent on the current EvoNet version, but it provides an exciting first glimpse into how Web Dapps will work and is an important first step as part of Evolution’s Web 3.0 strategy that we intend to build-on with the Phase 2 Strategy detailed below.

Status: Stage Completed
Bounty: https://trello.com/c/MsnBjQ15/29-web-dapp-sample
Site: http://wds.dashmachine.net:8082/
Source: https://github.com/dashmachine/web-dapp-sample
Devs: @cloudwheels
Rewarded: 22 Dash

3.3 Evo Wallet

EvoWallet is an alternative Platform Wallet implementation to Chrome Wallet that will enable usage with Web Dapp Sample (and any future Dapp) purely from a browser without requiring an extension install, and was created to offer the easiest possible UX for signups to Dash and subsequent Dapp authentication, where any browser user can click a link and try Dapps on EvoNet without any barriers. Evo Wallet was forked from Platform Console and had a dependency from the Chrome Wallet code (which has recently been completed) and will use auto-faucet topups for fee-payments.

Status: Open (Reserved)
Bounty: https://trello.com/c/MJrfbOp3/33-evowallet
Site:  http://evowallet.io/
Source: https://github.com/evowallet/evowallet/tree/bounty2
Devs: @dashameter
Rewarded: 3 Dash

3.4 Platform Console

A tool that includes a basic Platform Wallet to help devs easily create Dash Usernames plus retrieval / management of underlying identities, contracts, documents, etc. Originally started as a DCG project, the core devs requested it be brought to a working functional / UX state by the community.

Status: Completed
Bounty: https://trello.com/c/Xezls3IC/9-platform-console
Site: http://console.dashevo.io/
Source: https://github.com/dashameter/dash-platform-console/tree/develop
Devs: @dashameter, @cloudwheels
Rewarded: 11.25 Dash

3.5 Memo Dash Demo

A Twitter alternative Web Dapp introduced in DCG to road-test Dapp features in a usable form on the VMN prototype (since deprecated by EvoNet).  With the REACT frontend almost completed and the contract logic / client flow working on EvoNet’s predecessor, it’s the obvious candidate for a first fully-fledged Dapp to create on the latest EvoNet protocol. This bounty was to resurrect the code to test the UX, but it’s not wired to EvoNet yet, which will be the focus in Phase 2.

Status: Phase Completed
Bounty: https://trello.com/c/Kzn8JX12/12-memo-dash-dapp
Site: https://memo.dashdevs.org/
Source: https://github.com/alexdcox/memo-dash-prototype/tree/feature/fix-build
Devs: @xodus3
Rewarded: 0.75 Dash

3.6 Platform Explorer

One thing missing and requested by community devs was a block explorer for the Platform Chain so this bounty was to fork a basic Tendermint explorer to provide a view into the L2 blockchain, and the scope has since morphed into a larger tool to enable wider exploration of L2 data such as State Transitions, Contracts, Documents, Usernames, Identities to help developers navigate and see what's happening at a lower level to aid debugging and testing.  Currently data views are basic but this will be expanded in Phase 2.

Status: Phase Completed
Site: https://pce.cloudwheels.net/ (currently down until the next EvoNet data-wipe)
Bounty: https://trello.com/c/ezAfj6lG/18-tendermint-block-explorer
Source: https://github.com/cloudwheels/dappforce-tendermint-explorer
Devs: @cloudwheels
Rewarded: 3 Dash

3.7 Pay-To-Username tipping POC

Proof of concept to enable tipping to a username (gets paid to the underlying identity, which multiple usernames can share in the current protocol, so ambiguous who actually sent it, which will hopefully be fixed in the protocol soon).  Paying directly to usernames without using meta data isn’t best practice or private but it could be useful for blind tipping / donations and this code enables that.

Status: Completed
Bounty: https://trello.com/c/ojljh1EP/36-pay-to-username-tipping-poc
Site: http://tipping.dashmachine.net/
Source: https://github.com/dashmachine/tipping
Devs: @cloudwheels
Rewarded: 4 Dash

3.8 Automated Faucet

EvoNet faucet API, to make it easier to use developer tools (such as Platform Wallet flows) and can be adapted in future to fund Dash signups on Mainnet.  The faucet can be called as a service, without manual user action / captcha, to enable auto-funding when creating Usernames in Platform tools, using a rate limiter to prevent abuse, but also has a basic UI for end-users.

Status: Phase Completed
Site: https://csb-k2nzi.netlify.app/
Bounty: https://trello.com/c/SoO5dtDj/32-automated-faucet
Source: https://github.com/riongull/dash-faucet-lambda
Devs: @rion
Rewarded: 2 Dash

3.9 Get Identity from Mnemonic

Lib enabling the retrieval of Identities from DAPI from an input mnemonic from JS clients such as a browser, needed by various Platform tools.

Status: Completed
Bounty: https://trello.com/c/LoFua90X/44-get-identity-from-mnemonic
Site: http://getidentity.dashmachine.net/
Source:  https://github.com/dashmachine/identity-from-mnemonic
Devs: @cloudwheels
Rewarded: 3 Dash

3.10 Platform-UserID Secure Messaging Library

Library needed for secure Username handling and messaging in Dapps and Platform Wallets, for JS clients including browsers.

Status: Open (Reserved)
Bounty: https://trello.com/c/qPtO4KF9/42-platform-userid-secure-messaging-library
Site: https://www.npmjs.com/package/dashmachine-crypto
Source: https://github.com/dashmachine/dashmachine-crypto#readme
Devs: @cloudwheels
Rewarded: 4 Dash

3.11 Python DAPI Bindings

Library for basic DAPI access from Python clients, this is a part of a series of bounties to expand Platform integration to a variety of languages such as Python, C#, Go and Rust.

Status: Completed
Bounty: https://trello.com/c/o7Rf2ETW/15-python-dapi-bindings
Source: https://github.com/10xcryptodev/dapi-client-py
Devs: @10xcryptodev
Rewarded: 2.5 Dash


4. Phase 2 Strategy

The goal of Phase 2 is primarily to deliver working Dapps that users can access completely via a standard web browser, i.e. without an install, using the tools now available from Phase 1.  

The aim will be to provide the Dash community with usable demonstrations of Dash’s new features across key verticals such as social media, point-of-sale and E-commerce, road-test the Protocol from a commercial and security perspective and provide example code that Dapp devs can reuse in their own projects.

Secondarily we’ll continue to fund tool bounties and any other work that helps Dapp development on Platform as it arises and that falls within scope / budget.

As the goal of the fund at this stage is to kickstart projects that help Platform developers rather than finance independent commercial products, the types of Dapps we’ll fund will be generic, ‘sample’ Dapps selected primarily to educate and build a pool of reusable how-to code to help commercial devs get their projects started, whilst at the same time testing Platform features, connectivity and performance on EvoNet to help and expedite the Core dev’s work.

If community devs want to spin-off any of these or other Dapps into independent commercial products and the value propositions are good, I’ve offered to help where I can on the commercial or technical side, including the option to raise separate proposals on a per-project basis if the projects exceed the scope / capacity / purpose of this fund.

The amount being requested has increased ~3x from the original, to reflect that the Dapp projects we want to fund now are larger than the tools from the Phase 1 work, requiring more developers with different skills working together on each project.  The amount also factors in additional overheads in administering these larger bounties and to that aim we’ll start allocating a % of the funds to bounties that help spec, administer, test, QA and document other bounties in Phase 2 which will offer more opportunities for non-devs with the relevant skill sets to get involved to help execute and manage the bounties effectively.  

In terms of expectations, it should be noted that the user experience of these Dapps won’t reach their full potential until we are closer to Mainnet, with EvoNet itself being a bridge to that where both reliability and features are being bootstrapped as mentioned earlier.  It’s common for connectivity errors to occur whilst network code is being matured, data to get wiped during upgrades and there’s features not implemented or implementations that don’t fully meet Dapp requirements yet that require workarounds, and we’re relying on Platform devs to complete that process and they’re under a lot of pressure.  Therefore I think it’s useful to appreciate that we’re on a test environment right now and the quickest route to completing the Evolution upgrade on Mainnet is through supporting, prioritizing and resourcing both the Core and community developers who are creating that software as much as possible.

The first Dapp project that will be funded if this proposal is awarded will be the Memo Dash Dapp mentioned above, followed by other dapps as funds and developer availability allow.  If the funds aren’t awarded, there’s currently around 24.5 Dash unallocated in the fund reserved for Memo that we can use to at least start the work needed.

The other Dapps for Phase 2 will be selected from the community ideas list: https://docs.google.com/document/d/1NQbRk38I-43FIGcy2FyK4DW_Er_FknpMB2IQprul-Ec/edit?usp=sharing

I’ve detailed my preference for 2 of these below, but the exact roadmap will be determined based on what community devs want to do because all work is via incentives and therefore by choice.

4.1 Memo Dash

Memo Dash (working title) was a 'demonstrator' Web-Dapp that was intended to show how  a Twitter alternative could be built as a Dash Dapp.  The Dapp shows how to build an app like Memo.Cash in a fully decentralized and easy-to-use way i.e. a seamless UX without needing to trust a 3rd party website or use a legacy wallet.

The value proposition is to have an uncensorable, permanent and cryptographically provable way to create and verify tweets from Dash Usernames.

The Dapp illustrates key Evolution features such as being able to signup and login to a 3rd party web application using a Dash username, interact socially and create content using a unique profile that other users can verify the ownership of, without trust in a 3rd party or installation of any software (including obviously needing to run a full node).

Memo Dash was partially completed in DCG on the VMN prototype but was deprecated with the upgrade to the Platform chain version (i.e. EvoNet).  Therefore most of the frontend can be reused but the contract and vendor’s server code need to be recreated on the new version and the REACT frontend wired to this via DashJS.

Link for the site that will be wired to EvoNet is here: https://memo.dashdevs.org/
Source code: https://github.com/alexdcox/memo-dash-prototype/tree/feature/fix-build

4.2 POS Sample

POS Sample is a Dapp intended to enable pay-by-name at a point-of-sale, such as a till in a restaurant or at a drive-through window.

The goal is to provide a seamless/optimized POS/Retail experience on Dash Platform and Dash Usernames, making the process as simple and attractive to the user/merchant as possible, including a more sophisticated B2C pre/post payment flow than in a C2C wallet like DashPay with things like orders, payment requests, refunds, exceptions, coupons etc.

Requirements and flows have already been mapped out with DCG and a leading Dash payment provider, so the plan will be that once this sample is complete, we can fork it to a separate project for that partner so they can go-live once Platform is released on mainnet, which is the kind of case where a separate proposal is probably necessary.

This Dapp is at the design stage so the contract and merchant frontend/backend UX need to be developed to the agreed flows as part of this bounty but we can reuse / fork much of it from community code from other bounty work.

4.3 E-Commerce Sample

This Dapp will be a fork of the POS Sample, but aimed at online-merchants.  

The goal will be to provide the seamless pay-by-name flow from POS Sample but for an online purchase with basic product list/detail, basket and checkout functions, to enable any merchant to quickly set up an online store taking one-click pay-by-name Dash payments.

This Dapp is at the concept stage and will be designed and developed after POS Sample is complete to learn and reuse code from there.


5. Terms

This proposal will just inherit / continue the same terms from the original proposal including the updated ‘Reservations’ feature as they are working out well so far: https://www.dashcentral.org/p/dash-platform-incubator


6. Auditing

As per the Phase 1 proposal terms, everything in the bounty program from communication to code is open-source, and therefore publicly available / auditable, with all funds paid from (and change returned to) the receive address shared between both proposal phases (XbFb9b1qaoLykngDbUwBVBFwSHuwQRhSqc).

Bounties: https://trello.com/b/FPJzDcok/dash-bounty-board
Website: https://dashdevs.org/bounties/
Claims: https://docs.google.com/spreadsheets/d/1mhXlo4ylqWLLSYN4MGiLWlp7Gq3jrsDt0kB701dwMNU/edit?usp=sharing
Discussion: https://discord.gg/mU79ZWx
Funds: https://chainz.cryptoid.info/dash/address.dws?XbFb9b1qaoLykngDbUwBVBFwSHuwQRhSqc.htm
Previous proposals: https://www.dashcentral.org/p/dash-platform-incubator

Thanks

Andy Freer
Dash Developer

Show full description ...

Discussion: Should we fund this proposal?

Submit comment
 
4 points,4 months ago
fyi, to enable verification of the text of this proposal displayed above, I signed the proposal description text with the payment address private key, and included the sig in the "txtsig" qstring param in the gobject that was submitted. Full text/details are here: https://pastebin.com/qYEjD1U1
Reply
0 points,4 months ago
Yes, of course, yes.
Reply
1 point,4 months ago
Yes YES yeS for each month.
Reply
2 points,4 months ago
Awesome.
Good Luck !
Reply
1 point,4 months ago
YES
Reply
1 point,4 months ago
An easy yes! I don't think much needs to be said here. Go forth and prosper!
Reply
2 points,4 months ago
Easy yes from me.
Reply
2 points,4 months ago
A big yes from me.
Reply
1 point,4 months ago
Great work @andy easy yes!
Reply
0 points,4 months ago
thank you... credit goes to the Core and community devs doing all the work for this :)
Reply