This is a joint message for our community on behalf of the Catapult Migration Group, comprised of The NEM Foundation, NEM Studios, NEM Ventures, and Tech Bureau Holdings.
It has been a busy and interesting past month for not only the development team, but also everyone involved with NEM as well as the whole world with coronavirus wreaking havoc around the globe. We hope that all of you in the community have remained safe and your lives have been minimally affected by the pandemic. Being a remote and decentralized team we have been lucky enough to continue along with development efforts even with the changes to daily routines and the mental tax that the virus has provided for everyone.
A focused effort for the team has been around applying the latest batch of updates while preparing for what we think will be the final development changes to the platform before the public network launch based on testing and feedback during the protocol review phase.
Server 0.9.4.1 Updates
We are in the final phase of getting the 0.9.4.1 release tested and ready. This effort centered around updates related to network and protocol review feedback focused on peer and network communications and switching to the TLS 1.3 standard. This will have no impact on the sdk(s) or any client applications that leverage them or the REST API directly. Once the release is ready similar to past releases we will public new builds as well as related test network updates.
Server 0.9.5.x Planned Updates
While work is winding down on getting 0.9.4.1 ready efforts have already begun on a bigger set of updates, what is currently being targeted as the final batch of updates related to testing and feedback during the protocol review process. During the review process consensus was looked at deeply in relation to private network usage, the targeted public Symbol network release and various use cases. It was decided that some consensus updates would be in order, in particular looking into the concept of block finality and how to enable the behavior that onces the network comes to consensus around a block being valid or “final” in the network it can no longer be reverted or “rolled back”.
These targeted updates around consensus, block finality for the public network release will take some time to work through. Currently the core team is working towards finalizing their initial design target for the updates, from there things will be finalized and the design will dictate scheduling from there. We will update in next news updates as there are more details on targeted roadmap and scheduling.
Besides core server updates lots of work has been going into the various components that make up the project. Below are some highlights.
Symbol Key Pair Generation and Address Format
These changes introduce the usage of SHA-512 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. The cryptography concept and code examples have been updated accordingly to support this breaking change.
Data validation: https://nemtech.github.io/concepts/data-validation.html
Symbol uses tree structures to store large data associated with a block that cannot be retrieved directly from the block header. This allows light clients to verify if an element (e.g., transaction, receipt statement) exists without demanding the entire ledger history. The docs now include a page explaining how to work with Merkle proofs.
A plugin is a self-contained group of functions that can be added to the Symbol protocol to extend its capabilities. The plugin approach allows developers to introduce different ways to alter the chain’s state via transactions without modifying the core engine or disrupting other features.
How to connect to MongoDB
The REST Gateway offers a broad range of endpoints so that you don’t have to connect to MongoDB. Still, if you are developing new plugins for Symbol, or analyzing extensive blockchain data, you might want to consider connecting to MongoDB directly. By the end of the guide, you will be connected to your API node database instance and doing some basic queries.
SDK References: https://nemtech.github.io/sdk.html
We strive to have better versioning support for all the libraries referenced on the developer docs. At the moment, we started to keep multiple versions for the Java & TypeScript SDKs and CLI. Shortly, we plan to hold multiple documentation versions for every other library hosted under the GitHub nemtech organization.
Contributing to open-source is not just about submitting code! If you are interested in contributing with content, start with the contributor guide.
The latest version of the Symbol Desktop Wallet v0.9.7-beta1 was released at Github. We are continuously working to improve the software and published this latest version with many bug fixes.
Included in this last months effort are following Github Issues resolutions:
- Fix for downloading QR Codes with Mnemonic: https://github.com/nemfoundation/symbol-desktop-wallet/issues/168
- Fix for multi-signature Signer Selector address display: https://github.com/nemfoundation/symbol-desktop-wallet/issues/205
- Fixes related to changing profile passwords: https://github.com/nemfoundation/symbol-desktop-wallet/issues/195
- Fix account import status errors: https://github.com/nemfoundation/symbol-desktop-wallet/issues/135
- Fixed transaction pagination on Dashboard: https://github.com/nemfoundation/symbol-desktop-wallet/issues/112
- Added discarding staged transactions: https://github.com/nemfoundation/symbol-desktop-wallet/issues/88
- Added refresh button and expired objects display: https://github.com/nemfoundation/symbol-desktop-wallet/issues/186
To download the latest version, open this link in your browser.
The first beta of the mobile is code complete ready for external testing. The team is preparing a first packaged release for the Android Play Store followed by iOS App Store after that.
For those interested in participating in the mobile wallet testing via Android and/or iOS you can still sign up here.
NOTE: if you already signed up you should be good to go. We will send emails out once the first test release is approved in the Play Store and App Store.
version of the symbol-cli (0.18.4) has been published. This release makes the tool compatible with catapult-server 0.9.3.1 and the latest testnet.
New enhancements include:
- Transaction URI protocol: The command symbol-cli transaction uri supports the Transaction URI scheme. You can read more about the protocol in NIP 2. 1
- Node commands: The commands node info and node health were added to monitor nodes.
- Release automation: Alpha and full-releases are now automated with TravisCI. You can preview the latest master without having to wait for the next release by installing the latest alpha version available at npm.
- Private network support: NetworkCurrency is attached to the profile, so now you can announce HashLockTransactions in private networks.
- Receipts format: Receipts are now formatted as tables. Try to get the receipts of a block with the command symbol-cli block receipts .
- Usability: The CLI now permits the user to amend an input in case of a validation error. With this last release, it is also possible to select prompt choices with arrow keys.
- Informative messages: The CLI guides the user when the account has not submitted any transaction yet and how to monitor the transaction status after announcing a transaction. The tool also raises in-terminal notifications when there is a new CLI update.
- Commands documentation: The usage docs are now generated automatically and versioned. You can check them out at the Symbol Developer Documentation.
To download the latest version, run npm install -g [email protected] in your terminal.
The latest version of the Symbol Explorer was released at Github. We are continuously working to improve the software. Here are a few highlights of the last month, that we’d like to share:
- Rebranding: Completed and merged in master.
- Node Health: We added a filter that checks for healthy nodes.
- Store manager: As an enhancement step for our Vuex Store, we added a store manager in the project. This facilitates development work to create/manage/access/ store data related to Vue components.
- End-to-end Testing: Added more e2e testing to cover more on the explorer listing page.
The latest version of the Symbol Faucet was released at Github.
A short update about this project includes:
- Rebranding: Our team has gone through a few initial steps about rebranding.
- UI/UX: The faucet is currently being revised to provide with better user experience.
NEM Improvement Proposals
NIP 13 – Security Token Standard
This new document describes a standard for the publication of security tokens with Symbol features. A draft implementation proposal for the library is currently being worked on.
The aim of this initiative is to provide standards that facilitate and accelerate the processes of issuance and management of security tokens on Symbol.
To issue and manage securities on Symbol, this standard will leverage several Symbol features. Implementation details will be described in a document jointly to this standard definition.
We appreciate receiving your feedback to improve the standards definition…
NIP 14 – Release Management for Symbol Packages
This new document 1 describes the standard release cycle for all the packages hosted under the GitHub nemtech organization aiming to:
- Standardized release process: How the release process is done is committed and documented in the automation scripts.
- Tighter feedback loop: Users can test alpha versions of packages before there is a full release.
- Faster releases: Symbol teams can do extra checks and feedback before doing a release, by smoke testing the snapshot artifact in other projects like the CLI, wallet or explorer.
We appreciate receiving your feedback to improve the release process. You can expect to gradually see how other Symbol related packages adopt the proposed guidelines.
Thanks for your continued support,