Proposal to develop a NuBits Android wallet - Final version now available

Thank you for the follow-up, @MatthewLM. That makes sense to me.

Well, at least that is the intention :smile:

I’m way over due with an update on the NuBits Android development, so here is one:

  • Explorer appears to be stable. I’m having some issues with the SSL certificate request, but hope to sort that in next few days. Once that is done I can also add the Cloudflare service to protect the explorer and optimise the mobile wallet. Once all confirmed I will publish the NuBits only explorer domain name so it can be tested and verified by a wider audience.

  • I’ve created a NuBitsj repository on Matthew’s request. We will populate that repo and the others once we think it is fit for beta testing by the community.

  • Unfortunately there is an issue with making certain NuBitsj messages recognised by the NuBits client. Without the source code, Matthew is relying on the core devs to provide further information. There is a risk that this delays the delivery, but I’m still hoping the devs can make themselves available to progress this and sort this soon.

3 Likes

Further updates as of today:

  • The issue with NuBitsj has been solved thanks to NuBits devs.

  • Matthew will do the testing of the App in next 36 hours. Hope it passes…

  • I’ve organised the Cloudfare account which is now ready to use. Server-side SSL still not working due to verification issues, but worst case we can do without and rely on Cloudflare’s SSL till this is sorted. This shouldn’t be a showstopper and most people won’t notice as the SSL lock in the browser will show anyway.

The coincidence of the first release with Christmas is a bit unfortunate as both Matthew and myself will be mostly unavailable for those two days. Although I might get a first version of the APK in next 36 hours, I won’t be able to test much until the 27th, but I will aim to publish the blockexplorer and the Android APK for sideloading soon thereafter.

Will aim for another update before I’m going off-line. Christmas starts 12 hours earlier than GMT over here :slight_smile:

2 Likes

Here is another update:

  • Matthew has delivered a working APK! Can confirm that with some testing of basic functionality.
  • Getting SSL up and running on block explorer took a bit more time than expected, but we managed to make that working yesterday
  • After I turned on Cloudflare we apparently have another SSL issue with Cloudflare which doesn’t seem to recognise our SSL certificate. Waiting on support to answer my request for help.

As soon as this is sorted I expect to publish a copy of the APK in the cloud to start the agreed 14 days of testing by the community. Will also publish all the code and the location. Hope this will all be fixed in next day or so. The test version is just that, and will be replaced by a final version after the 14 days of testing and then officially published on Google App store.

I’m looking forward to share this great App and the NuBits blockexplorer with you and tell everything you want to know about it.

Stay tuned.

Edit: update, Cloudflare issue sorted. It just takes some time to confirm the certs apparently. Have asked Matthew to upload the sources as soon as he is available so I can publish the test version of the app.

6 Likes

Ok, it is getting late here, so here is a little teaser with the NuBits Abe blockexplorer which supports the Android App. Will publish the App and further instructions first thing in my morning after Matthew updated the repos. Stay tuned.

Click -> NuBitsexplorer.nu

The explorer only shows the NuBits transactions and is a bit limited, but it works and you can lookup transactions and it even has an API. It doesn’t auto-refresh.

1 Like

TEST Version 1.0 of Android App released!!

30-12-2014 (GMT)

Today I can finally share with you the result of the work done by Matthew and myself on the development of the NuBits Android wallet. Thanks for your patience in the last few days. We can now confirm it is stable, functional and working according to specifications.

Disclaimer
Please note that this is a TEST APK version in a production environment with real NBT and that you have to be prepared to loose any coins and re-install the application in 14 days time. Please backup and encrypt your wallet before adding coins to it. There are also ways to export the private keys but that is not for the uninitiated (search for Bitcoin ABE Android private keys export and replace Bitcoin with NuBits). Please use small amounts to test and nothing more you can afford to loose.

Download link
All right, with that disclaimer out of the way, here is the download link: MEGA
Updated 3-Jan-15 (now links directly into Https without using redirect)
MEGA
You can find the blockchain explorer here: https://svr1.nubitsexplorer.nu

You may need to install an APK manager/installer to sideload this TEST App. This won’t be required for the final version which will be published on Google Apps. I’ve attached a few pictures at the bottom of this post, so you can see how it should look like.

Source code:
The repository for the ABE explorer here: GitHub - Cybnate/NuBits-Abe-explorer
The repository for nubitsj here: GitHub - Cybnate/NuBitsj
And the wallet itself here: GitHub - Cybnate/NuDroid

Here is the link to the original contracted work: Android NuBits client · GitHub
Please check the link (especially the functionality section) before submitting any issues.

Submitting Issues
Please use this thread to submit any issues/bugs and I will compile them for the dev. It is important to raise issues rather sooner than later as after the 14 days period the developer will be paid for his work and is no longer formally obliged to fix issues according to the contract.

Wish-list
I’m also welcoming a wish-list, but keep it a bit down to earth and feasible. Some have already been mentioned in the gist, but happy to add to this list. As the code is open source people are free to add pull requests with fixes after the 14 day -period when the code is final for this first release. However I’m not promising any new releases until I have been able to contract or arrange a developer to test any PRs and compile the code.

Why use this App over the other Android app

  • This App is paid by the NuBits shareholders and not in control of a third party or competing entity.
  • Although I don’t accept any formal liability I can be morally held accountable to ensure this App continues to work as per the custodial grant. As the hosting has been pre-paid for at least 18 months I will commit doing so or ensuring it will be done.
  • This App can be changed, tweaked and tailored by the community as they wish. I intend to raise at least one proposal based on input from the community for a custodial grant to release an improved version.
  • This App has an address book. Good to track your transactions and add e.g. your friend’s names to them
  • This App is optimised for mobile and is likely faster (no guarantees).
  • Add your own trusted peer node (or run it uniquely)
  • (advanced) Source code is available so you could set up your own trusted server and compile the App to connect to your own server
  • Check out the features in the gist as there are a few more…

Enjoy testing the App!

Pictures of the App:

The home screen. Tips:

  • Fiat currency defaults to your country code, click a fiat currency and add as default on top bar to change it
  • Click on QR-code to enlarge it
  • Click scan to scan a QR code

The network monitor. Check here whether your blockchain is up to date and to which peers you are connected

And finally the settings:

Please have a look yourself for more :smile:

The testing period ends on Tuesday 13 January 2015 at 23:59:59 (GMT).

Known issue log:

  • 02-Jan-15 4:21am (GMT) When selecting a transaction and selecting setting and then browse in the brown bar, it should you link to the transaction in the blockexplorer. However the link is broken in the domain name which results in a message that the webpage is not available.
  • 02-Jan-15 11:10pm (GMT) Issue fixed (clear browser cache first). Don’t need apk update for this one.
3 Likes

The App is working well. it installed without issue and all the standard functions are working as expected.
I have sent and received NuBits, generated new addresses, added labels, added trusted peers and generally tried to break it.
Had a simple crash when sending NBT but the crash report interface worked perfectly when I restarted the wallet, so a debug log is on it’s way. It’s entirely likely that it’s my insistence on running flaky custom ROMs that is to blame though.

I’l continue trying to break it over the next few days and be sure to report back here with anything that I find.

1 Like

I’m having a bit of trouble. I have three devices, all of which are unable to catch up with the blockchain. They get stuck at different heights though…

my initial sync took ~20 minutes. it did pause a fair few times but never seemed stuck.
might be worth force quitting and restarting

I had to quit the apps about two times. Maybe I was just impatient.
First of three wallets synched now. Testing commences :slight_smile:

My observations:

As I said, I have three devices.
I’ve send one transactions with three outputs to each of the devices.
The app was open and running on all of them, all apps were synced. The devices did not go to sleep mode, I kept the displays active.
The first device recognized the transaction after one minute, the other two needed five and five and a half.
My feeling is, that the app does not keep up with the relatively low block timing.

Have the CPU peaking now on the blockexplorer. So running at capacity if you all trying at once. Will continue to monitor this and assess whether I need to add CPU power. Thanks for the feedback.

Edit: this was a peak for a few minutes. Possibly memory/CPU constraints, but need to dive into this. If it is just three devices syncing then we might have to upscale a bit. Will keep an eye on the logs, please don’t constrain any further testing.

I’ll halt it for today.

Furthermore, I’ve tried sending and receiving with and without trusted peers. Without trusted peers was a bit faster.
No crashes on any of my droids (Sony Xperia Z1 Compact - 4.4.4, Acer Iconia A1 (rev. 1) - 4.4.2, Moto G (rev. 1) - 4.4.4)

Seems fantastic so far. Performance needs adjustment, but you guys seem to be on it :slight_smile:

1 Like

Still trying to figure out whether the slow syncing at times is App related (low intervals or sleeps) or server related or worse a combination of them. Will share my thoughts with Matthew and see what we can improve.

I’ll try it again tomorrow… stop watch is ready.

Great Job! I’ll send to the Chinese community

1 Like

A – Sony Xperia Z1 Compact (trusted peer – among others)
B – Acer Iconia A 1 (no peer setup)
C – Moto G (trusted peer – forced)

UTC + 1

#1 - 12:49
T
000:00:38.593 (A)
T
000:00:37.157 ©
T
000:00:36.522 (B)

#2 - 12:52
T
000:06:06.973 (B)
T
000:03:10.389 (A)
T
000:00:03.162 ©

#3 - 13:00
T
000:01:44.086 (A)
T
000:01:43.917 (B)
T
000:00:03.030 ©

2 - no peers connected to B when checked after 5 minutes
3 - A & B showed the transaction only as the transaction got one confirmation

1 Like

Thanks for sharing the test results. Your results confirm my own results that it is good to have your own nearby trusted peer uniquely configured. I did also notice that it drops connections after a while which makes sense otherwise you would have a resource hog and a lot of battery drain on your mobile. However this makes it a bit slow when you wake it up and it needs to find nodes before updating the blockchain. I suppose it is similar when you start-up your PC wallet.

Maybe something for the wish-list to be able to temporarily force to keep the connection(s) to 1 or more peers in order to speed up expected incoming transfers and payments.

Looking at the statistics on the server, it can easily cope with the load. It looks it only got stressed when 3 or more devices at the same time are making payments or synchronising as you tried yesterday. The Nu daemon also takes a bit of resource (up to 32% CPU and 33% memory) when a new block comes through. When all these events coincide it might temporarily slow down and disk swap a bit, but this is clearly not the main constraint.

On a different note, I also started to write down some use case and required functionality for shapeshift support in the Android client.

Here is one of the scenarios as a teaser. Will share more and hope on feedback later.

Use case Success Bitcoin:
Alice want to pay merchant Bob. Bob only accepts Bitcoin. Alice scans the Bitcoin QR code and the App translates the address and the BTC amount into the designated fields. Her App queries the latest Shapeshift rate and maximum allowed coins. Based on the rate the number of NBT required is presented to Alice. Alice approves the amount and the rate and sends the coins. The App shapeshifts the NBT into BTC and sends the coins to the designated BTC address.
(Note, need to have the fiat value (e.g. USD), the BTC value (second row?) and the NBT value in the ‘Send’ screen)
Optional: Alice has completed the field email address in Settings. When that is true the App sends Alice a confirmation of the payment (using Shapeshift API for sending email).

4 Likes

Once the Android app gets used frequently and not just for testing it will occur that lots of devices are making payments or are synchronizing. I think this needs to be prepared for.

I’ve made some tests with the app as well. Here are the tests and the results:

  • Installation and synchronization went smoothly and in very little time
  • Receiving and sending NBT: check
  • Creating a new receiving address: check
  • Creating a password protected backup: check
  • Assistant for sending the backup via email (filling in useful information in the body of the email): check

I need to test it a little bit more (e.g. restoring a backup), but I’m impressed how well this app works and how easy it is to use it!

I appreciate that connections are dropped after some time, because the impact on the battery would be horrible. That’s for sure not what a user expects: to have an app that drains the battery…
And even if you have several hours to sync and don’t have WiFi available, it’s only a matter of very little time until there are peers connected and the sync is complete.

The only thing I didn’t find out: can the number of confirmations for a transaction be retrieved in any way? I understand that a transaction is considered complete once the circle is fully green, but there’s no way to show it like x/y confirmations, right?

That will be a very big step for the near future use of this app!
It will take some time until NBT is widely accepted.
With an app that is able to make use of the great shapeshift.io service every point of sale that accepts any of the cryptos shapeshift.io has in its portfolio can be used with the Nubits app.
Awesome!

1 Like

Awesome and thanks for the testing. Restoring works fine for me, you only need to sync the whole blockchain again but that takes about 15-20 minutes on a good connection. Suggest you restore only when on wifi or if you have 3g or 4g with a high or no cap. Keen to hear how it went for you.

The confirmation question you asked triggered me into finding an issue. When you click on the transaction and choose setting (upper right corner in brown bar) you have an option to directly browse to the blockexplorer. Unfortunately the link is broken. Will log this one with Matthew. When it works you should be able to check the number of confirmations relatively easy looking at the blockexplorer website. It is a bit of a workaround, but how often would you check the number of confirmations? With NuBits you have a number of confirmations in minutes anyway.

Edit: the blockexplorer doesn’t mention number of confirmations in the tx window. Will add that to the wishlist.

BTW Matthew will look into pulling the code to protect the wallet with a password. This might take a while though. In the mean time just keep a balance you can afford to loose or protect your device with a passcode.