Development update #10

Welcome to the Verge Forums
Join our community and the rest of our members!
Sign up


Verge Team
Nov 30, 2017

As I sit by my fireplace, looking out of my Swiss cottage enjoying the peace provided by the white snow falling down, my computer slowly burning, I’m able to code while creepily cackling. Luckily I have pen and paper to keep on coding.
Without straying too far into my madness, let’s get you all updated on what happened these last two weeks at Verge HQ™.
  • iOS wallet progress (Swen van Zanten)
  • Android wallet progress (Me) (Manuel)
  • Wallet services architecture ( marpme @marpme )

iOS wallet progress
As promised in the last development update we would turn our focus towards the back end of the application. Well we did and had a hard time on implementing some of the features required to create a wallet, and the ones to send and receive real transactions.
But when you give 100% of yourself into something your results will be as sweet as what you can find in the candy shop. This step brought the overall progress of the application for the first public release to the 40% stage.

Next up we will be focusing on the ease-of-use and the app functionality with almost obsessive level details, to give you all the best experience.
After having done this, we will return our focus on releasing a beta version.
This beta will depend on the new codebase in order to be useful for testing purposes. The first beta’s won’t be public, cause the application could of course contain some serious bugs. After that period there will probably be a public beta version available for everyone to download. This will all happen before the overall progress reaches 100%. Once this happens, we will then upload it to the AppStore.

Android wallet progress
Last time we spoke, i left you with few details about the work I’ve been putting in order to catch up on Swen’s development (friendly reminder that Android development started two months after iOS development). While I’ve been lifting up a bit the UI to make it cleaner I also worked on the settings’ different windows as you can see below:

  • Since our last update, I’ve been working on the Settings page to make it look like an actual settings page; it was hideous before…
  • You can see that Tor has now its own settings page. I used OpenStreetMapsAndroid SDK to achieve the maps visualization of the location. Google Maps asks for way too many information considering that they changed their pricing politics. IP Geolocation is provided by ipstack
  • Paperkey window is now also available.
  • Donation page has been set up and clicking on “Donate XVG” will automatically setup the Verge donation address so you don’t have to think about it ;)
  • Disconnect window let you… disconnect! Don’t forget to write down the paperkey, otherwise you won’t be able to restore your funds
  • Contribute and website will bring you respectively to the Android Wallet GitHub repository and to the Verge Currency website.
I’ve also started working on the I2P layer as an alternative to Tor. I don’t have many details about this stage in the development, as currently I’m at the very beginning, and I’m not familiar with I2P. This is an important alternative for our users that may reside in places where TOR is not allowed seeing as we want to and we want to preserve the privacy of our users.
Along with designing and implementing these different views,working on the networking layer, I’ve also been working on some refactoring to make things easier for further development.

Wallet services architecture
Let’s have a closer look into our current developments. To do this I will give provide my insights into why we’ve chosen certain approaches while creating the wallet services for our new wallets.
First off, as you might have already noticed is that our new wallet are connected all over the place to a service called “BitPay”, also known as bitcore, wallet service which is serving simplified communication to the VERGE core blockchain. It’s having different approaches when it comes to creating new transactions and tracking addresses for your certain wallet. Still our mission is to bring mobility within the new wallets — with that in mind we have to provide some abstract layer between you and the blockchain. That’s the so called Insight-API which is basically running a blockchain explorer within your Core Node and syncing all address used and adds some additional value to it so the previously mentioned wallet service can profit out of it.

Client <-> Wallet Service <-> Insight API + Core Node
Having such a 3 dimensional structure in our system is withing our personal mission to stay secure, privacy-focused and decentralized. So we’ll focus on figuring out how
to properly place our Core-Node including the needed/required features by the wallet services within our already existing system. We could quite easily add the wallet services and add each node as a permanent host so that each “full-node” also serves a wallet service. If we had done this, users would have had to wait 15–20 seconds to look for a an available node, instead of using the app immediately.
So instead we are thinking to keep this 3-dimensional approach as a base in order to have some some exclusive (long-term) community servers, which will serve the user with the wallet service. Alongside this service will be more sophisticated core nodes which will also host the insight-api so that we have a a plurality of available corrections.
And last but not least we have the client which will be directed to the next available server hosting a wallet service. Those will get a sticky-session so that you won’t switch servers every split second.

And that folks, is our update to you. For now, I’m enjoying the warm glow of the casing melting and the toxic spewing flames burning. So I will take a moment to wish you a jolly time with your loved ones. And a great weekend!

Written by: Manuel Cabras
Last edited: