From this phase everyone can contribute to the development of the Gulden Wallet. Progress and code: https://github.com/Gulden/gulden-official/tree/2.3_development
The new wallet interface will use Electron. This means that our backend must be able to connect to all functions on the frontend. All those connections need to be built. A new system always brings bugs and they have to be fixed. There is a known bug where windows wallets crash during mining and holding (witnessing). Unfortunately, there is still too little information to fix this bug. This means monitoring and testing, which takes quite a lot of time.
Few small adjustments.
Since the last unity version, the wallet for iOS had synchronization problems. We have been able to find out what caused this and make adjustments.
UI: Add a sync progress screen when opening app on a wallet that is still syncing
CORE: Fix an issue that was causing periodic crashing of some machines (especially on windows)
CORE: Lower default fee amounts
CORE: Various holding account related fixes
RPC: New command repairwitnessaddress
RPC: Extend validateaddress behaviour for holding addresses, allow for easier debugging of any holding issues users may have
UI: Add a settings screen that allows renaming of accounts
RPC: Add various “holding account” related RPC commands
RPC: Improve usability of autocomplete, hide various rarely used developer specific commands from autocomplete
RPC: New debugging related commands “submitheader” and “forcesigseg”
MISC: Various other stability related changes and minor UI tweaks
CORE: Fix a crash in SIGMA verification code that could be triggered in some (relatively rare) instances
RPC: Hide various “hidden” developer RPC commands from the autocomplete
RPC: Introduce a new command “repairwitnessaddress” that can be used to repair a wallet if the witness key for a witness address is not available while wallet is locked (which is required for witnessing)
RPC: Extend “validateaddress” command to give more information for witness addresses
CORE: Minor improvement when renewing witness accounts; check for and repair any instances of missing witness key when doing a renewal
There has been a lot of testing and trying to get information about the wallet crash in the Windows version. Eventually we were able to find out what caused it and solve it. The problem turned out to be for all operating systems, but with Windows this came up faster.
Multiple users of the Novo (Electron) wallet for Windows (up to version 1.0.8) experience crashes. Using debugging logs we tried to find out what caused the crash. Unfortunately these logs give too little information. We then ran several tests, but were unable to reproduce the problem. After several days of research we decided to leave this for now and wait until more information is available from users.
Gulden used a checkpoint system to increase the security of the network. The implementation of PoW2 makes this system unnecessary. The Gulden Advisory Board decided that the checkpoint system could be removed. This required a change in the software and a hard fork.
Bittrex required a special functionality in the Gulden Wallet. This was developed and we provided support for its implementation. The Gulden wallet was in maintenance mode at Bittrex during this period. As a result, we prioritized this development and were able to realize it within a few days.
Because Novo is a new cryptocurrency it required extra steps in the App Store approval process. A few legal matters had to be sorted out on our side. Also small adjustments were needed in the app.
Designing, testing and developing the Novo blockchain based on the Gulden blockchain code base.
With the full implementation of Phase 5, the code had to be cleaned up and stripped of parts aimed at the transition and previous phases. Various optimizations were also implemented.
DELTA was changed to using witness timestamps (which are more accurate than PoW timestamps) for difficulty adjustment, as per the original PoW2 whitepaper. Also better accounting for difficulty drop in previous long blocks when calculating difficulty and to soften up some of the rules that were necessary to counteract jump pools. This makes difficulty adjustment smoother.