This is a joint message for our community on behalf of the Symbol Migration Group, comprised of The NEM Foundation, NEM Studios, NEM Ventures, and Tech Bureau Holdings.
Translations:
Tech/Product Updates
The team has been working away the past several weeks on preparing the 0.9.3.1 release. This release marks a key set of updates in working towards the final release candidate. While the updates are smaller in nature they have a larger impact on several items including the migration from nis1 to the new Symbol network, the related opt-in process and the move to break key compatibility with nis1.
Thank you for those that have been working away to help test the various software components. For those that are interested we welcome your help and participation, you can join the developer community slack for help or just tracking the latest happenings in real time.
The latest invite link is always available at the bottom of the developer center site: https://nemtech.github.io.
The most popular Slack channels for help relating to testnet and general testing are:
- #help
- #sig-testing
0.9.3.1 Release Updates
Server
The 0.9.3.1 release will bring with it some fixes as well it will include two breaking changes from the previous version(s) of the server and sdk(s):
-
NIP#9: Persistent Delegation Request Transaction (LINK): The previously available persistent delegation request transactions was looked at and some recommendations were made by the 3rd party we are engaged with for review and feedback. Updates to the key derivation scheme were recommended as well as key sharing practices involved in asymmetric signatures and encryption systems.
-
NIP#10: Symbol Key Pair Generation and Address Format (LINK): A change to the key pair generation algorithm and address format have also been introduced. These changes introduce the usage of Sha512 instead of the previous Keccak and Sha3 hashing algorithms. One of the major features of this change is that key pairs will be generated using openssl which is standardized across communication protocols.
NOTE: With this server update and key changes, there will be breaking adjustments between previous versions. With this release the next generation of the test network will be created. Participation in the new version will be the same as previous ones, more on the test network below.
Desktop Wallet
The desktop wallet team has been working on a clean up and review pass of the code base. This is aiming to have the desktop wallet in a position for wider range of usage and testing, including external review via a hackerone campaign (hackerone.com). This work is also being done in parallel with the initial Symbol rebranding work so you will start to see a new look and feel for the wallet.
Some notable tasks that have been worked on lately include following improvements:
-
Uniformization of account unlocking procedure (#911): The desktop wallet used to take a broken and insecure approach of password checks and validations. Those have now been refactored and improved to use standard password security measures.
-
Uniformization of transaction signature creation (#923): The overhaul of the source code for the desktop wallet includes a signatures process handling that is better adapted to work with the Symbol protocol.
-
Rewrite of the desktop wallet software kernel (#911): In the scope of clean up and stability improvements, we have added a better structured software kernel to the desktop wallet such that it would now make use of Vuex for improved state management all across the software.
Mobile Wallet(s)
The mobile wallet project has also progressed towards an initial public beta over the past weeks and internal testing for Android and iOS is continuing. Final cleanup and testing is happening in the next couple of weeks with steps being to apply the latest design treatment to reflect the Symbol branding. We will then be posting the release for those interested in testing.
For those interested in participating in the mobile wallet testing via Android and/or iOS you can sign up here:
Related to the mobile wallet effort is applying the opt-in library that was written for Nanowallet and include the same library and functionality into the mobile wallet. This effort is now just getting underway with the approach of the finalization of the opt-in library and process. As we get closer to functionality being ready we will announce when the mobile opt-in application will be ready for usage.
Explorer
Explorer continues to be updated with a mix of bug fixes and general cleanup. There has been particular attention paid to rebranding and Symbol design treatment to the latest version, as well as continuing to make mobile usage more friendly.
As list of some notable items worked on:
- Unable to show transaction detail: #308: Because the transaction has been sent using the alias (namespace) instead of the mosaic id and explorer can’t detect, and related reported on https://nem2.slack.com/archives/GLK87TKM4/p1581193788037000
- Pagination not working properly on Namespaces and mosaics list #322: Because the requests are taking the wrong namespace or mosaic id.
- SearchBox added Alias support #304: now you can search aliases on the explorer on the search.
Some notable ongoing efforts:
- Implement view restriction mosaic and restriction account #262 #261
- Implement view merkle data on block. #324
SDK(s)
The NEM2-SDK 0.17.0 (major / minor) version has been posted to account for the changes in the 0.9.3.1 version. Besides NIP9 and NIP10 related updates above the team has also addressed:
- End to End test codebase improvement by using promise async/await for all rest endpoint tests
- Updated generated rest client code library to the latest version 0.8.3. Added the new network fees endpoint and node health endpoint. Split the node storage & server info endpoints from diagnostic route to node root.
- NIP10 server patch has been developed for TS-SDK with PR raised https://github.com/nemtech/nem2-sdk-typescript-javascript/pull/445
NOTE: as mentioned above NIP 10 has been applied to the SDKs, any previous key or version will not be compatible with any 0.9.3.1 version or beyond
CLI
There recently have been several NEM2-CLI updates with the latest being 0.17.1. The following are some notable items worked on with the latest release:
-
Mosaic restrictions & metadata commands: With these new commands, we can say that the CLI tool supports issuing all types of transactions (except for custom aggregate transactions).
-
Persistent delegation requests: Try to delegate your importance to a node from the command-line tool by following this guide.
-
Transactions preview: Now, you can see all the transaction properties in a human-readable format before announcing them. Also, you can use the CLI to debug any transaction with its payload.
To download the latest version, run npm install -g nem2-cli@latest in your terminal. Remember to backup and delete the file ~ .nem2rc.json before installing any version > 0.16.x.
Test Network
As mentioned above in the notes about the server 0.9.3.1 release update there is introduced some breaking changes so the test network will be updated and refreshed.
Similar to previous updates we aim for minimal to zero disruption for everyone who is developing on the platform. We will stand up a new network and start moving towards deprecating the current 0.9.2.1 network over the coming weeks.
NOTE: final deprecation notice of the 0.9.1.1 network, final nodes will be taken down immediately
For those that have been running test nodes on the network the process for the new version will be the same. You will simply have to stop your running services, delete the version you have, download the latest and start it up. Once started, the same as before services will start up and start syncing to the new network. An update will be posted once the 0.9.3.1 test network tools are updated.
Symbol Branding Related Updates
Besides visual design efforts underway on the wallets, block explorer and other items with user interface elements, there is also a large effort to begin migration of other parts of the project to adopt Symbol naming and related descriptions. These include various source code repositories, build/package names, and various documentation references. The project is tracking these types of efforts via:
NiS1 -> Symbol Network Opt-In Updates
Development and testing work continues to happen related to the opt-in software/tooling. Testing has also been occuring on the back end data processing part of the project effort, while design and updates are being applied for things to be compatible with the latest 0.9.3.1 changes. There is another few weeks of review and testing time to occur after the 0.9.3.1 is live, once verified the team will be moving to prepare for the launch and start of the opt-in process.
As mentioned above in the mobile wallet update section work is underway to also include the ability to opt-in via the mobile wallet. Some of this work is starting now, some will be dependent on finishing the Nanowallet support.
NOTE: with the updates regarding 0.9.3.1 the opt-in process will force you to generate a new key for usage on the Symbol network. We are recommending moving all user’s key generation to use mnemonic phrases by default (BIP32 style).
NOTE: if you perform the opt-in via nano wallet you will be able to export your account and import across any of the supported Symbol wallet(s)/client(s)
Improvement Proposal Notes
NIP#6: Multi-Account Hierarchy for Deterministic Wallets
With our client applications being open to test in public, it is getting more important that we define common usage derivation paths such as for example the default wallet derivation path for Symbol wallets or the default remote account derivation path for Symbol wallets.
Few changes have been made to NIP#6 since it was opened but we will be doing some changes over the next few weeks given the incoming protocol level changes to key pairs generation.
Thanks for your continued support,
Migration Committee