September Development Update
Looking back on the last few months
On 28 June version 2.0 was released, after a huge effort to get miners and users to upgrade on 20 July witnessing started operating on the network for the first time.
Since then, and as is expected with such a complicated release, there have been several inevitable minor bug fixes; and of course a lot of time spent answering questions and helping services to upgrade etc.
The development team have been monitoring ‘Phase 3’ in operation and though some very minor possible improvements to consider for ‘Phase 4’ have been noted; overall we are incredibly happy with how well things are working.
I think we should all be very proud of this achievement; every community member who assisted, some in small ways and some in very large ways, without each and every contribution we would not have the success we have today.
In addition to witnessing ‘Phase 3’ also activated our accelerated synchronization project (codename Sonic) which has also been working fantastically. While it has received little attention in the shadow of the larger PoW² release, this project was both very important for Gulden in its own right as well as somewhat special; as it was written almost entirely by Willem and not myself, and therefore forms the first but almost certainly not last major contribution by Willem to the codebase.
It is very important to the project that the team grows over time, so we are very happy to have found a suitable candidate who seems to be nicely fitting the role.
Development vote – Unity
Back in March we asked the community to help decide on which project out of numerous exciting ones they deem the most strategically important, the overwhelming winner of this vote was the Unity project – a unified backend for all of our wallets.
This was an excellent choice, and is going to be very important going forward in allowing us to develop new features faster, with better testing and even higher quality.
When we released on 28 June, we released not just with ‘Phase 3’ fully coded and tested, but also ‘Phase 4’ coded and extensively tested. The idea as everyone is likely aware has always been that ‘Phase 3’ is temporary and that we will move to ‘Phase 4’ as soon as possible within a rather ambitious timeframe.
Despite this readiness, after such a long development cycle and with the entire upgrade process being a lot more strain than expected (in terms of third party support and miner upgrades etc.) – a tough but ultimately correct decision was taken by dev team to not try and push too hard but rather to take a little bit longer on Phase 4 to be sure.
There were many factors here, some of which I’ll briefly go over:
1) To allow people some time to get used to witnessing via ‘Phase 3’
2) To try reduce additional strain on various key community members before the next upgrade cycle
3) To allow us to observe ‘Phase 3’ a bit more so that any possible improvements for ‘Phase 4’ can be considered and implemented for ‘Phase 4’
4) Looking at the bigger picture
I’ll elaborate on number 4 as this is the most important going forward.
As ‘Phase 4’ is already coded (with a few loose ends to tie up) the bulk of the work to be ready for ‘Phase 4’ is to add support to our Android and iOS wallets – these currently operate in backwards compatibility mode during ‘Phase 3’ but will need to be fully upgraded during ‘Phase 4’.
The ‘Phase 4’ changes are extensive and high difficulty, and duplicating and testing these changes on both mobile wallets is a huge daunting task in its own right.
A few things were therefore considered:
* Almost all of this work is in the backend
* The next project on the roadmap is Unity – which is going to throw a large part of the mobile backend code away
* The most difficult part of Unity (SPV support for the core) was already well underway with Willem starting on this after Sonic completion and well before the PoW² release.
* Our Android client is in need of a replacement or major update
The ultimate conclusion was that it made little sense to spend effort and time on writing difficult ‘Phase 4’ support for the mobile wallets, extensively test the code, and then throw it away shortly afterwards when Unity is completed. To also extensively update Android when it is about to be replaced with Unity made little sense…
And so the decision was taken that in order to activate ‘Phase 4’ we also need to complete Unity.
Today I report that this was certainly the correct choice; Unity project has been moving fast with a basic Android prototype already up and running.
The roadmap from here
Early beta testing for select Android users will begin in the coming week, with an aim to get it release ready and to replace the existing Android app with it as soon as possible. Android beta testing will serve not only to test the new Android app – but also to test the Unity backend.
This is the immediate focus and users can expect to see results here in the very near future.
In the meantime work on iOS support for Unity will also commence, and finalization work of ‘Phase 4’ will also take place in parallel. Once all mobile wallets are stable on Unity there will be a final round of testing for ‘Phase 4’ with testing taking place on all platforms and then ‘Phase 4’ will go active, this is currently expected to be completed in the next month or two.