@davidtavarez Progress Update thread (Nov-Jan 2021/22)

Hello, here’s my progress update regarding of my current funding request.

I’ve been working to improve the Grin++ for Android. This is the list of work so far:

  • I improved the “health check” mechanism where the application checks the status of the node process. The node runs like an Android Service in background, this means that the application and the node runs separately. Android manages the process by itself, the Application just need to communicate with the node via the API.

    • If Tor crashes for any reason, the application is now starting the process again.
    • If the node crashes, the application will try to recover from there.
  • Now, the user does not need to wait until the node is fully synced to use the wallet. In a modern device the synchronization process could take between 30 to 40 minutes from scratch, but in not so robust devices the process could take more than an hour. I think the user should be able to create a new wallet during this time, backup the wallet seed and play around to get familiar with the application without having to wait too much time.

  • One of the most annoying issues was related to the Fingerprint. Background threads cannot modify UI elements because most UI operations in iOS and Android are not thread-safe. Since all calls are being done asynchronously, the UI was not always displaying the Fingerprint dialog depending on the device. This seems to be fixed now.

  • Another issue addressed, was regarding some “broken” screens, screens that were not properly rendered on devices with medium*-density screens.

  • The user is now forced to backup the wallet seed right after creating the wallet and before continuing to the main wallet screen.

  • When the application is starting, if only one wallet is detected the application will go directly to the login screen; if more than one wallet is detected, the application will ask the user to pick the wallet that should be open. If no wallet is detected it will go directly to the regular screen where the user either create a new wallet or restore an existing one using the wallet seed.

  • Tor was updated to version 0.4.6.7

  • The node source code is now compiled using the latest stable Android NDK, now I’m using the latest stable release (r23b).

  • The WindowManagerFlags.Secure was added to get a little bit of more privacy by disabling the screenshots.



The apk can be found here and of course, the source code is public. I only recommend that apk right now only if you want to help me by testing on different devices. Do not use it on your daily basis yet, please.

16 Likes

Which other coins have a full validating node on mobile?

2 Likes

It’s time for more progress update:

  • Tackled the annoying bug causing the node to crash due to a std::length_error exception (PR opened pending for review: Adding a shared queue in Socket class).

  • More mobile node management improvements added.

    • Added process control to the Node Service.
    • Added process control for tor.
  • Updated mobile node with the above fix.

  • Fixed the address availability checker for the mobile application.

  • Fixed password validation bug.

  • Fixed username validation bug.

  • Fixed unstable node status reporting.

  • Now, the mobile application prevents a wallet to be restored until a full node synchronization.

  • Small visual fixes done.

  • Fixed notification icon.

Like always the apk can be found here for now: com.grinplusplus.mobile.apk – Keybase.pub. I’m not adding anything else to this version. Feel free to test and provide feedback please before publishing the apk on Google Play Telegram: Contact @GrinPP

Next, I would like to invest time on the Raspberry Pi version, I found this important too :strawberry:

9 Likes

More progress update:

Work in progress:

  • Update linux-arm64 branch of Grin++ with the latest changes.
  • Release Grin++ Wallet and Node v1.2.7 for Raspberry Pi 4.
  • Improve Grin++ Downloader (Linux) python script to simplify the deployment of Grin++ nodes.
2 Likes