Pre-proposal: Dash Wallet for Android - Maintenance and Support

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
Executive Summary:
This proposal will be for bug fixes and support of the Dash Wallet for Android for 6 months. This will be submitted after the next super block.

Fee: 11 DASH per month for 6 months. 10 DASH/month for the actual work, 1 DASH/month to pay for Proposal Submission Fee.

Feedback is appreciated.

Longer Text Below (PDF is attached).:
---------------------------
1. Project Name:


Dash Wallet for Android – Support and
Maintenance


Description and Goal Statement:

In a narrative, describe project context and background. What is the business need that gave rise to this project? Describe the business drivers that created the problem, opportunity or business requirement. Examples: regulatory issues, outdated technology or technological advance, community request.

The Dash Wallet for android is a popular mobile wallet for the DASH cryptocurrency. Like any software it requires maintenance (bug fixes) and support for the users when they report issues or ask questions via email, slack or other social media sites.

Email Address / Website:

[email protected]
http://www.hashengineeringsolutions.com/dashwallet-maintenence/

Vendor:

Hash Engineering Solutions

4. Project Scope Statement

Project Purpose / Business Justification

Describe the business need this project addresses

The DASH community has a need for mobile wallets and Dash Wallet for Android (https://play.google.com/store/apps/details?id=hashengineering.darkcoin.wallet) is one such wallet. Without well maintained mobile wallet apps, the DASH ecosystem will lack critical components in seeking adoption. With respect to this proposal, the Dash Wallet for Android has increased its usage by 50% since February based on Installs on active devices reported by Google Play (from 4000 to 6000).

Hash Engineering Solutions created the Dash Wallet for Android in 2014 and has been maintaining it since.

Objectives (in business terms)

Describe the measurable outcomes of the project (e.g., reduce cost by xxxx or increase quality to yyyy). Describe what will be achieved and what will be delivered. What are the benefits that the project provides Dash? What value will this project deliver to Dash? What is the vision - what will business be like after the project is done?

The vision of this project is to improve the user experience of the Dash Wallet for Android app which is one of the few mobile apps used by the Dash Community and one of the very few that supports InstantSend for sending and receiving Dash. This will be achieved through maintenance of the app (mainly bug fixes) and technical support to the users.

This app and its continued availability on the Google Play Store will allow for greater acceptance of Dash and help increase the number of transactions on the network.

Key Deliverables

List the high-level “products” to be created (e.g., application to do aaaa, improved xxxx process, manual on yyyy)

Maintenance of the Dash Wallet for Android

Tech Support of the Dash Wallet for Android

Manual for the Dash Wallet for Android

· How to use the app

· How to address problems/bugs until the next update fixes them

Scope

Describe the boundaries of the project. What is in scope and what is not in scope (e.g. This project addresses Dash to fiat exchange process in the Internet. Direct exchanges (hand to hand) are not included in scope)?

Maintenance of the Dash Wallet includes bug fixes and importing any changes from Bitcoin Wallet for android (upstream). Changes from Bitcoin Wallet can include bug fixes, new features and optimizations. This proposal does not include adding any other new features to the Dash Wallet. Bug Fixes and Updates will be submitted to the following channels:



Support includes answering emails from users, responding to crash reports (via email also) and helping users who use other forms of communication (slack, reddit, Dash Forum, etc). Some feedback is useful and helps with fixing bugs. Additionally a manual will be written to aid with tech support. The manual will include work arounds for known issues. The avenues of providing support to users includes:



Project Milestones and Schedule

Propose exact start and end dates for Project Phases (e.g., Analysis, Planning, Construction, Delivery). What date will the actual project work start? What is the anticipated date that the project will be delivered and project team disbanded? Are there any dates that will drive the project schedule? (Examples: regulatory, vacation…). Include known milestones and/or phases.

This proposal is for a six month time period starting on 1 May 2017 and ending on 30 December 2017. Before 30 June 2017, updates will be taken from Bitcoin Wallet and integrated into Dash Wallet after thorough testing.


Success Criteria

How will we know when the project is done? How will the Dash team decide if the final deliverable is satisfactory? What measure will be used?

The measurements used will be the number of bug reports and crashes from Google Play and via email, the number of installs as counted by Google Play and the app ratings from Google Play. These measurements will be compared to previous months. For the planned major update, the Google Play and GitHub will show the versions numbers with dates. Any bug fix updates can be accessed the same way.

Major Known Risks (including significant Assumptions) Identify obstacles that may cause the project to fail.

Risk - Risk Rating (Hi, Med, Lo)

Hash Engineering Solutions is a single person. If there is illness or accident or other obligations related to personal issues or regular employment, support will be limited or delayed. Mitigation: documentation, good information about the wallet shared with the community, open source code - Medium

Disconnection from the Core Team. Mitigation: maintenance of contact with core team to synchronize technology, branding... - Medium


Constraints

List any conditions that may limit the project team’s options with respect to resources, personnel, or schedule (e.g., predetermined budget or project end date, limit on number of staff that may be assigned to the project).

The schedule of the planned upgrade to take changes Bitcoin Wallet may be impacted based on feedback from testers (if it’s limited). In the past some bugs took a long time to solve due to limited user feedback (not many crash reports sent or other descriptions from users was not sufficient to identify the issues).

External Dependencies

Will project success depend on coordination of efforts between the Dash core team, the project team and one or more other individuals or groups? Has everyone involved agreed to this interaction?

This project does not depend on interaction with the Dash Core team unless there are significant changes in the Dash Network Protocol. The recent 12.1 upgrade was such an example because of its significant and breaking changes. That did require help from the Dash Core Team, but that type of event is not foreseen for this proposal. Members of the core team have been helpful in the past and are aware of this proposal.

5. Communication Strategy (specify how the project manager will communicate to the Sponsor (Dash community) and Project Team members, e.g., frequency of status reports, frequency of Project Team meetings, etc.)

Reports will be prepared at the end of each month and will include:

· The number of and type of bugs reported by Google Play and by Email as compared with the previous month. Any actions taken (such as bug fixes) will be noted.

· The number of installs from Google Play for the month, compared to previous months.

· The overall rating and any changes from the previous month


6. Reviews Planned (indicate what reviews this project plans. Monthly reviews are recommended.)

End of Month reviews



7. Notes

Fee = 10 Dash / month for the proposal items, 1 Dash / month to cover the proposal submission cost; 6 month contract.

 

Attachments

TroyDASH

Well-known Member
Jul 31, 2015
1,251
794
183
Sounds good to me. By the way, you do raise a good point about the risk of HashEngineering being a single person. Are there any opportunities to mitigate this risk -- is there anybody else interested to volunteer (or get paid a small amount) to familiarize themselves with the android wallet and provide support or development?
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
Sounds good to me. By the way, you do raise a good point about the risk of HashEngineering being a single person. Are there any opportunities to mitigate this risk -- is there anybody else interested to volunteer (or get paid a small amount) to familiarize themselves with the android wallet and provide support or development?
You bring up a good point. I do currently get some support from a core developer, Tomasz Ludek, who does most of the user interface work. However I do get all the bug reports and many of the problems with the wallet have been with the dash protocol implementation in Java for whom there is no backup at this time. I will consider how to mitigate some of these concerns and add them to the proposal.
 

lynx

Active Member
Dec 11, 2015
364
250
133
I am going to find a second person to help me (as a backup) on tech support issues.

Since I plant to submit this proposal soon, I am wondering if the price is to high or low. What about the 6 month contract? Too long or too short?
Sounds about right. Would even pay a little more since you are hiring some help.

No need to pay for something that someone else is already doing for us:
We need a reference mobile wallet that implements all of Dash's features and updates quickly.
 
  • Like
Reactions: akhavr

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
Jaxx doesn't support InstantSend, a feature that was added to the app that this proposal will continue to fund over one year ago. In that sense, someone else is not already doing it for us. InstantSend support includes both Sending and Receiving and it does so at the protocol level with all the security that an SPV wallet can offer. The implementation closely mirrors Dash Core.

While the Jaxx wallet has many features that this Dash Wallet app doesn't have, Jaxx also generates revenue for its owners and developers from one of its features as referenced in the reddit link above. Dash Wallet for Android, like Dash Core, is open source software and does not charge commissions on any transaction (except for the required network fees). As such a proposal will be submitted.
 

TroyDASH

Well-known Member
Jul 31, 2015
1,251
794
183
I would support this at your requested about of 10 dash plus submission fee

6 months might be too long though, 3 months or even month-to-month seems to be more standard so that you can readjust price in case of major market moves one way or the other
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
I want to avoid month to month because it requires more "paperwork" and the proposal fee is 50% of what I am asking.

I will consider 3 months. In such a case I could see how it goes with reporting of results, etc.
 

joezippy

Member
May 21, 2015
112
66
78
I'll support the 3mo... I think it's critical @ this point to have a solid Android wallet... However, I also think it's important to bring in some multi-coin wallets like jaxx to the proposal table for supporting more of our network functionality like instant send... They can hire @HashEngineering to help them implement it... :) Cheers!
 

xjones

Member
May 22, 2016
79
38
58
While it's OK for this wallet to be maintained for some time more, in the long run we should be phasing out non-deterministic wallets.

Also, Dash-specific wallets are no longer a good idea. Let's face it, people are using multiple virtual currencies, and there's nothing wrong with that.

Multicurrency wallets allow for easy conversion, e.g., between Bitcoins and Dash, and that is good for everybody.

Future Dash budget funds would be better spent thus:

- Contribute funds to Coinomi so they can add instant send and perhaps private send to their existing Dash-capable multicurrency wallet.
- Contribute funds to Mycelium so they can add Dash to their Bitcoin wallet.
- Contribute funds to Electrum so they can merge dash-electrum into standard electrum, making standard electrum into a Dash-capable dual-currency wallet.

I haven't listed Jaxx above because it is too slow to be usable. if they ever get it to perform better, add it to the list above.
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
I'll support the 3mo... I think it's critical @ this point to have a solid Android wallet... However, I also think it's important to bring in some multi-coin wallets like jaxx to the proposal table for supporting more of our network functionality like instant send... They can hire @HashEngineering to help them implement it... :) Cheers!
Thanks for the support.

While it's OK for this wallet to be maintained for some time more, in the long run we should be phasing out non-deterministic wallets.

Also, Dash-specific wallets are no longer a good idea. Let's face it, people are using multiple virtual currencies, and there's nothing wrong with that.

Multicurrency wallets allow for easy conversion, e.g., between Bitcoins and Dash, and that is good for everybody.

Future Dash budget funds would be better spent thus:

- Contribute funds to Coinomi so they can add instant send and perhaps private send to their existing Dash-capable multicurrency wallet.
- Contribute funds to Mycelium so they can add Dash to their Bitcoin wallet.
- Contribute funds to Electrum so they can merge dash-electrum into standard electrum, making standard electrum into a Dash-capable dual-currency wallet.

I haven't listed Jaxx above because it is too slow to be usable. if they ever get it to perform better, add it to the list above.
The Dash Wallet for android is an HD wallet. It doesn't currently support exporting/importing xprv or the 12 word seed to other wallets.

The Dash Wallet for android probably will not support multiple coins. Unlike Coinomi, for instance, the amount of work to add another coin would be tremendous. Because it is a protocol level app, it would be syncing the blockchain of multiple coins, the app would be using a lot of battery and bandwidth.

Coinomi uses electrum servers. Therefore, if coinomi was to support Dash specific features like InstantSend or PrivateSend, then the electrum server needs to support those features. Most of the work would be done by the servers, while the app would need less changes.

I find it interesting that Dash has these selling points (InstantSend and PrivateSend), but much of the software that is out there doesn't support those features.
 

GrandMasterDash

Well-known Member
Masternode Owner/Operator
Jul 12, 2015
2,715
966
183
Thanks for the support.

The Dash Wallet for android is an HD wallet. It doesn't currently support exporting/importing xprv or the 12 word seed to other wallets.

The Dash Wallet for android probably will not support multiple coins. Unlike Coinomi, for instance, the amount of work to add another coin would be tremendous. Because it is a protocol level app, it would be syncing the blockchain of multiple coins, the app would be using a lot of battery and bandwidth.

Coinomi uses electrum servers. Therefore, if coinomi was to support Dash specific features like InstantSend or PrivateSend, then the electrum server needs to support those features. Most of the work would be done by the servers, while the app would need less changes.

I find it interesting that Dash has these selling points (InstantSend and PrivateSend), but much of the software that is out there doesn't support those features.
Does your wallet support Private Send now? (obviously I haven't used it in a very long time)
 

xjones

Member
May 22, 2016
79
38
58
The Dash Wallet for android is an HD wallet.
Thanks, I appreciate the correction. I had (incorrectly) assumed that it was not deterministic since it gave me no option to import or export seed words.

Though strictly speaking, It's a D wallet (i.e., deterministic wallet), not an HD wallet (i.e., hierarchical deterministic wallet), because it has no hierarchy. Usually HD means the initial seed is used to generate multiple accounts, each account containing its own set of deterministically-generated addresses. So for example in the bitcoin world, Coinomi and Copay are D while Mycelium with its multiple accounts is HD.

The rest of what I posted remains unchanged even in view of your correction.
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
Thanks, I appreciate the correction. I had (incorrectly) assumed that it was not deterministic since it gave me no option to import or export seed words.
Because of this statement, I plan to add the functionality to view and restore the wallet from the seed words. It was rather easy to add the function to view the seed (recovery phrase). Once implimented this app will support BIP39 (https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki), but its recovery phrases won't necessarily be compatible with any other software.


Though strictly speaking, It's a D wallet (i.e., deterministic wallet), not an HD wallet (i.e., hierarchical deterministic wallet), because it has no hierarchy. Usually HD means the initial seed is used to generate multiple accounts, each account containing its own set of deterministically-generated addresses. So for example in the bitcoin world, Coinomi and Copay are D while Mycelium with its multiple accounts is HD.
BIP32 (https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) defines Hierarchical Deterministic Wallets and "[c]lients are not required to support more than one account." Hierarchy extends beyond accounts as each account has internal and external chains, which the Dash Wallet does support. The internal chain is used for change. Even if a software implementation only supported a single account and the external chain (no branching in the heirarchy except for the keys), it would still follow BIP32.

Coinomi supports even more levels of hierarchy, even if it only supports one account per coin. Coinomi implements BIP44, which adds two more levels: purpose and cointype. Copay is listed under the "Compatible wallets" section of BIP44.

Regarding Dash Wallet, it would be possible to add multiple accounts without breaking compatibility with previous versions. I will add that to my list of future feature additions that I will be making a post about soon to gauge interest in what improvements the community would want to see in this app.
 

xjones

Member
May 22, 2016
79
38
58
BIP32 (https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki) defines Hierarchical Deterministic Wallets and "[c]lients are not required to support more than one account." Hierarchy extends beyond accounts as each account has internal and external chains, which the Dash Wallet does support. The internal chain is used for change. Even if a software implementation only supported a single account and the external chain (no branching in the heirarchy except for the keys), it would still follow BIP32.
OK I know there will be differences of opinion about this, but the BIPs are intended to help ensure software compatibility. They don't necessarily tell us what words to use in our daily lives.
 

xjones

Member
May 22, 2016
79
38
58
Because of this statement, I plan to add the functionality to view and restore the wallet from the seed words. It was rather easy to add the function to view the seed (recovery phrase). Once implimented this app will support BIP39 (https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki), but its recovery phrases won't necessarily be compatible with any other software.
There is an existing deterministic wallet Coinomi that supports dash.

And I think Jaxx is also compatible with Coinomi, i.e., the same seed words in Jaxx and Coinomi will generate the same dash addresses.

So it would be really good if you could remain compatible with both of these wallets. Less user confusion and better convenience restoring into any wallet with the same seed.
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
There is an existing deterministic wallet Coinomi that supports dash.

And I think Jaxx is also compatible with Coinomi, i.e., the same seed words in Jaxx and Coinomi will generate the same dash addresses.

So it would be really good if you could remain compatible with both of these wallets. Less user confusion and better convenience restoring into any wallet with the same seed.
I agree. There are plans in Dash Core to be an HD wallet also (https://www.dash.org/forum/threads/...-another-wallet-e-g-mobile.14545/#post-123792), for which there are plans to have the same derivation path as Coinomi and Jaxx.

I am giving thought to changing Dash Wallet for Android to use the same derivation path, but I need to retain backward compatibility with the current scheme.
 

Dashmaximalist

Active Member
Mar 16, 2017
1,008
247
133
36
maptags.in
hi guys

i have an idea that we believe can help us in scaling the user base dramatically

we want to implement facial recognition in the app and give $5 for everyone who signs up and $5 ( or even less for certain countries) to those who refer others

i have a team which is working on facial recognition and OTP verification bit in a normal app

how easy / difficult is it to integrate with the dash wallet and release it to the play store
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
This proposal period is complete, though a few things remain.
1. The release of v5.14 (which allows of for the use of recovery phrases) is underway at about 60%.
2. The F-droid release didn't work yet. The main developer for F-droid left and there is currently no answer to our issue on publishing on that service.

For the remaining weeks of this month, we will be submitting one or two updates to fix bugs that are reported by Google Play. Additionally work will begin on adding BIP44 support. This will allow full compatibility with dashwallet for iOS and some limited campatibility with other Dash wallets such as Jaxx and Exodus.
 

Dashmaximalist

Active Member
Mar 16, 2017
1,008
247
133
36
maptags.in
hi guys

can you add couple of videos that explain what dash is etc in the app ??

also a map of nearby dash merchants ( like what the blockchain app does )

are these possible , feel free to raise extra dash for these

thanks
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
hi guys

i have an idea that we believe can help us in scaling the user base dramatically

we want to implement facial recognition in the app and give $5 for everyone who signs up and $5 ( or even less for certain countries) to those who refer others

i have a team which is working on facial recognition and OTP verification bit in a normal app

how easy / difficult is it to integrate with the dash wallet and release it to the play store
For me this would be very difficult to integrate. My knowledge of additional interfaces and camera's is very limited.
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
hi guys

can you add couple of videos that explain what dash is etc in the app ??

also a map of nearby dash merchants ( like what the blockchain app does )

are these possible , feel free to raise extra dash for these

thanks
We could add a link to videos about Dash in the help section. This would have a low priority as this month we are working on fixing bugs.

This past week we found a big memory leak and made another change that resolved several users of out of memory errors, which has made this app more stable. For the rest of the month we will be monitoring feedback from emails and google play crash information and reviews.
 

Dashmaximalist

Active Member
Mar 16, 2017
1,008
247
133
36
maptags.in
Thanks guys , we are dropping facial recognition for now , so just focus on videos and merchant map

also can we clone your app from github add extra features release on Play store , would there be any issues ??
 

HashEngineering

Active Member
May 3, 2014
319
374
133
hashengineeringsolutions.com
Thanks guys , we are dropping facial recognition for now , so just focus on videos and merchant map

also can we clone your app from github add extra features release on Play store , would there be any issues ??
There will be some issues. Cloning and publishing modified source is easy. There are some difficulties, if you wish to maintain your own app and publish it to Google Play:
1. There is continual work being done by a few developers on the Dash Wallet code. We continue to issue updates to the code so users won't have as many bugs. If you clone the app, you will need to keep it updated from our source for bug fixes and new features. Although if your developers are really good and fix some bugs, I may add some of that code into my version.
2. Our app is on Google Play and only we can publish that version since we own the application id and the signing keys. If you clone your own and you will need to rename the application and maintain a separate account for it. There will be competition, but competition can be a good thing.

Of course you could also submit pull requests to our repo and we will consider adding the changes to our code.
 

Dashmaximalist

Active Member
Mar 16, 2017
1,008
247
133
36
maptags.in
Thanks a lot for lengthy reply , the main issue does Google allow cloning , I understand they place some sort of ban on guys who clone or copy other apps

If that's the case we might need to come to a collaboration sort of thing we will discuss later
Thanks