• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

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

HashEngineering

Well-known member
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

  • Dash Project Proposal - Dash Android Wallet Maintenance Q2-2017.pdf
    1,009.1 KB · Views: 126
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?
 
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.
 
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?

Thanks.
 
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.
 

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.
 
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
 
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.
 
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!
 
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.
 
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.
 
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)
 
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.
 
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.
 
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.
 
Back
Top