Skip to content

Instantly share code, notes, and snippets.

@Cybnate
Last active January 5, 2016 01:43
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save Cybnate/dcc3cd4f682754314486 to your computer and use it in GitHub Desktop.
Android NuBits client

Proposal for Android client for NuBits



Custodian Cybnate
Submission Date 22-Nov-2014
Revision 0.2*
Related Proposals None
Requested Grant Amount 3650 NBT
Custodial Fee 300 NBT
. .
NuBits Grant Address | BMKEuGtHL1E7kVGrweGn7VyK6tJACvYs8h Vote Amount | 3950 NBT

Date granted: | 27-Nov-2014



Abstract

This document represents a proposal to act as a custodian in support of the Nu decentralized network. The terms outlined in this document represent actions that will be taken if Nu Shareholder consensus is achieved by casting votes for the unique pairing of the Custodian's NuBits grant address and requested amount, BMKEuGtHL1E7kVGrweGn7VyK6tJACvYs8h | 3950.

This proposal will be confirmed by the Nu Shareholders if this voting pair is written within the majority of blocks:

  • solved during a 10,000 block span;
  • and that majority of blocks solved also represents a majority of the coin age destroyed during the same blockspan.

Once the 5001 valid vote is cast, and the coin age requirement has been met, the network will automatically generate and deposit 3950 NuBits (NBT) into the custodial grant address. This can be a wallet address under control of the Custodian or a designated Nu4commit project if this infrastructure is available at the time.

The Custodian enters into a commercial contract with the designated developer in order to deliver an Android client for NuBits only (not for NuShares). The main purpose of this proposal is to have a stock standard mobile Android client available as soon as possible in order to create demand for NuBits. Further developments may occur, but are not part of this proposal.

The Android client is a so-called light weight wallet. This means that no initial blockchain download is required and that the wallet is available almost instantly. The private keys are safely held local on the Android device. The Custodian maintains the back-end. Costs for hosting are included for the first 18 months. Arrangements are made with developer regarding publication of the app on Google app platform for the next 3 years.

The contract will have a clause that in case of delays beyond 21 days in the development due to the developer's inability, performance rebates on the agreed contractual amount will be enacted.



Goals

This proposal is a standard custodial grant for development of the NuNet ecosystem. The key objective is to increase demand of NBT by providing ways of practical applications to improve its daily usage.

This proposal will satisfy the following goals:

  1. Increase the demand of NuBits by providing wallet software for NuBits on a new platform (Android)

    This enables usage without PC. Use cases are remittances, access to a currency for people without access to a bank and to send and receive money to your friends, family or businesses you are dealing with.

  2. Marketing, showing that the NuBits ecosystem is actively being developed

    Many people will gauge a new currency on the availability of tools and applications beyond the standard wallet. This proposal shows the first steps are being made.

  3. Providing a template for future developments

    This is the first proposal for a development outside core development. Hopefully it inspires other aspiring custodians and it intents to set a standard for future proposals.



Justification

This proposal intends to deliver a development in the short term. The benefit is that we will have a valuable working application without having to wait for someone taking up a bounty or volunteer. Instead the development is contracted against a fixed rate by a developer with a track record. This will ensure delivery in the short term.

Developer fee (3,200 NBT) is estimated on similar work done recently and appears to be reasonable given the amount of time and skills required. The contract between developer and custodian is a fixed price contract.

Custodian's fee (300 NBT) is a contribution to the Custodian costs for contracting developer, arranging payments, providing progress reports and attending to discussions and responding to questions about Development on public forum.

Maintenance fee (450 NBT) is the cost to cover the hosting of the backend of the Android app. This includes hosting for 18 months, a domain name, SSL certificate(s), DDOS protection and mobile client optimisations through Cloudflare.




Grant Delivery

Contract start After contract sign-off and transfer of 50% of the agreed sum (1600 NBT) to the Developer, the Developer starts coding the agreed Development and has 21 days to do so. The Custodian provides at least weekly updates or ensures the Developer will do so in a public thread on discuss.nubits.com. This may include screenshots of the Development.

Development time The Development (NuBits Android wallet) will be delivered in 3 weeks after signing off the contract between Custodian and Developer. The sign-off should take place within 7 days after the Grant has obtained the required votes by the Shareholders and the Grant is transferred into the Custodian's designated address.

Testing and handover Once the Development is finished and tested by the Developer a beta version will be released on Google App Market for testing by the community during 2 weeks. During that time the community has the ability to test and provide feedback and bug reports to Developer. Developer will solve all bugs impacting the normal expected functionality related to the conversion to NuBits before releasing a final version to Google App Market. Release of the final version of the Development triggers the final payment (50% of agreed sum minus performance rebates if applicable) to the Developer and transfer of the custodian and maintenance Fees to the Custodian. The Custodian will make a copy of all the delivered code.

Unexpected termination of contract and remaining funds Any remaining NuBits will be transferred to an address for core NuNet development. When this proposal is approved and the contract between Custodian and Developer is prematurely terminated for reasons beyond control of the Custodian all the NuBits including the Custodian's fee will be transferred to an address for other NuNet development instead. To determine the receiver of those funds a motion may be raised.

Termination of service After 12-15 months the Custodian will gauge the appetite of the Nushares stakeholders whether they like to invest in continuation of this service and with that continue to cover the maintenance fee for another 12-18 months after the agreed 18 months period. When this is not the case notifications on the NuBits forum will appear before the service is shut down and at least 1 month in advance. Transfer of hosting services to another Custodian is also an option after this 18 month period.


Commitment to Transparency

Reporting

The grant will be transferred into an account in control by the custodian. The contractual payments to the developer will be published in a public thread on discuss.nubits.com. The current state of the grant can be verified at all times through the blockchain.

Progress on development will occur at least on a weekly bases, either by the developer or by the custodian in a public thread on discuss.nubits.com.

In the situation the App is more successful than the hosting was designed for, the Custodian will report the risks and issues occurring or expected in a timely matter. Measurements will be; observed downtime, traffic-, memory- and CPU usage and feedback from end-users.


Accountability

This proposal, when passed by the Nu Shareholders will be considered binding and the Custodian will proceed with the execution of the proposal as described. If at any point during the operation Nu Shareholders deem the elected custodian to be conducting actions that they feel differ from what is described here, a fully certified motion (majority of votes cast) will be required to make amendments.




Key Risks

The following key risks has been identified:

Risk 1

  • Developer does not finish the job due to unavailability, unability or unwillingness. Mitigation: A contract between Custodian and Developer will exist describing the terms of disengagement. Contractual payments will be split in twice, 50% in advance and 50% on successful delivery. Contract breach will damage his reputation in cryptocoin community.

Risk 2

  • Developer is not able to finish the product due to restricted access to certain parts of source code. Mitigation: Investigate in advance with developer whether wallet API can be used. If not feasible, identify the required information which may be provided by the core developers by other means than full access to the source code (e.g. snippets of code or examples). Investigate whether a less feature rich client is feasible within the constraints.

If the Custodian determines that the Grant doesn't meet the intended objectives, the Custodian will provide public notification of the issue on the Custodian's reporting site. Should that be required, the Custodian reserves the right to propose a motion to adjust the terms to maximize the Grant's usefulness to the Nu Shareholders.

Although the Custodian will do everything in their control to deliver to the objectives, the Custodian will not be held liable for claims of lost profits related to delays in the delivery, non-delivery or as a result of the operations of the Development.

Risk 3

  • Uptake exceeds expectations and affects service levels of App in next 18 months Mitigation: Custodian will monitor relevant server data and respond to users facing issues with reliability or availability. When it appears that these are caused by the underlying infrastructure, the Custodian will propose changes in a motion (if no further costs) or a custodial grant covering any additional costs to improve the infrastructure. The Custodian will try to keep the service levels up on a best effort bases, until an additional grant or motion to sustain acceptable service levels going forward has been passed to address any issues and risks occuring or being raised.




Custodian Information

Contact

  • BitMessage Address: BM-NB6Fs5U3Rvi6WEnCZ6F2WehUBjkxD7bz

  • Nu Community ID: Cybnate

Past Performance

This is the first Nu custodial grant proposal submitted by Cybnate.

Cybnate has built a trustworthy reputation in the Peercoin community. Examples are running the fundraising for the Peercoin video and reporting the payment to the creator in creative and transparent ways to the community and donators. More recently Cybnate has set up and prepared a charter for the Peercoin Marketing Fund with River333 and successfully convinced donators to fund this. Several proposals have successfully requested grants via a voting mechanism and delivered real value to the Peercoin community. This is still on-going.

Cybnate has been working and gaining experience with cryptocoins since October 2013 and is a long-term Peercoin investor and NuShares holder.

The details presented in this document should be used to gauge the perceived ability to meet the terms presented in this proposal, and voting-eligible members of the Nu community are encouraged to raise any questions, concerns, or recommendations for improvement prior to reaching their own personal decision.




Supplementary Materials

Product description / scope

The Development is an open source Android client based on the Schildbach architecture for use with Nubits (NBT). Further details about the base code can be found here: https://github.com/schildbach/bitcoin-wallet. Screenshots are provided here: https://play.google.com/store/apps/details?id=de.schildbach.wallet&hl=en. The code, the example screenshots and the Functionality are referred to as the Development. NuBits (NBT) is a new cryptocurrency based on a Peershares blockchain which is based on the Peercoin blockchain.

###Functionality

With exception to the Abe explorer API used for block hash validation, no registration, web service or cloud will be needed for end user. The wallet is de-centralized and peer to peer. The initial blockchain download will be headers only. Subsequent block downloads will be full blocks.

  • Display of NuBits (NBT) amount in NBT (display in mNBT and µNBT is obsolete given the nature of NBT)
  • Conversion to and from national currencies involving fiat exchange rates in many currencies with ability to set default fiat currency
  • Sending and receiving of NBT via NFC, QR-codes or NuBits URIs (NuBits URIs don't exist yet)
  • Address book for regularly used NBT addresses.
  • When you're offline, you can still pay via Bluetooth.
  • System notification for received coins.
  • App widget for NBT balance.
  • Ability to make backups (protobuf format)
  • Generate new addresses
  • Specify the amount sent in your own fiat currency
  • QR codes and scanning integration
  • Address book
  • Customisation of UI with NuBits colours and Roboto font.
  • No advertisements

There won't be any specific NuBits/NuNet features e.g.:

  • Parking
  • Use of NuShares or related functionality

Known issues with base source code:

  • App can be slow with timeouts on older or slower devices
  • No password/PIN when sending coins

As a side effect of the architecture of the App this grant also delivers a simple blockchain explorer. This is provided as is without any NuBits specific enhancements or functions.

Hosting of the blockexplorer backend for 18 months (delivered by Custodian)

  • Server will have Cloudflare PRO protection
  • Server will be backed up automatically in the cloud.
  • Server will have a low grade SSL certificate There won't be any automatic failover or secondary servers as part of this grant.

The Developer will not be required to fix known issues as stated above or deliver included functionality beyond the above as part of this Agreement.

The Custodian intends to continue to work with Developer and/or others to improve the product over time. Any addition of functionality or fixing of known issues, or strengthening of the App will be scoped into a new grant proposal when required.

###License The license is GPLv3 for the Android client and AGPLv3 for the back-end (ABE explorer). This cannot be changed. On delivery/final payment we will be able to make a snapshot of both code bases in order to guarantee the ability of ongoing development by the community. Custodian will add one copy (fork) to their GitHub to secure the final code.

@Cybnate
Copy link
Author

Cybnate commented Nov 29, 2014

Updated with grant information

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment