NEM Foundation Technology Department Update - June 2019
Hello dear community!
Follow me along this lengthy technical department update from the NEM Foundation teams. We are working day to day to provide with more qualitative resources implementing and integrating the Catapult technology. I would like the community to be part of this journey as much as possible! And, in fact, I’ll start up this post by linking to my favorite artwork related to dragon.
Credits for the Image go to @nembear, who posted it on Twitter here.
Summary
The Technology Department of the NEM Foundation is very active currently. We have been working on several fronts with Protocol Updates, Documentation, SDKs, NIPs, Private Networks, Wallets, and some I’m probably missing.
This summary should give you a brief overview over the latest works in the NEM Foundation, for the Catapult technology:
- Protocol Updates: Catapult Dragon Release
- NIP Updates: Work on NIP3, NIP5, NIP6, NIP6, NIP8
- SDK Updates: Dragon Compatibility
- Documentation & Guides: Newest Guides & Updates
- Command Line Interface: Dragon Compatibility
- Foundation Experimental Testnet: Work in Progress & Updates
- Wallet Updates: Browser Extension + Mobile App
- Explorer Updates: Team introduction
- Links
Protocol Updates
We are working hard to publish tools that are ready for use with Catapult networks and also keeping pace with the latest upgrades from the network - we would like to urge everyone to engage with the latest released catapult-server@Dragon
features including:
- Inflation and beneficiary in node configuration
- Prevent transactions from being replayed on different networks with generationHash (replay protection)
- Co-signatories opt-in requirement: Co-signers of multi-signature accounts must now confirm before they can be added as cosignatory.
- Allow use of the same secret with different recipients by adding Recipient to SecretLockTransaction.
- HashLock transaction with mosaic aliases.
- Aggregate bonded transaction lifetime is now defined independently from other transactions.
NIP Updates
We have been actively working on NIP3, NIP5, NIP6, NIP7 and NIP8 with following status updates:
NIP3: Documenting a new feature
The process of documenting newly available Protocol features and Tools is being discussed in NIP3 as to provide with a clear plan of how documentation has to be provided with SDKs, tools, wallets, etc.
Our #sig-docs team has been doing a great job at producing high level technical documentation for our NEM Developer Center!
NIP5: Wallet as browser extension
With the previous cow network upgrade arose the problem of having wallets keep pace with latest network upgrades. This is still true today where the Browser Extension does not yet support dragon features but we have now formed a team internally to work on this package.
Updates are to be expected soon about features of this wallet. The take-over of this package happens with historical contributors as to provide with better overview about the current status of the wallet.
NIP6: Multi-Account Hierarchy for Deterministic Wallets
The HD Wallets implementation for Catapult networks is now readily drafted and will probably find a first implementation in NIP5 as soon as possible.
With this approach, we aim to improve cross-client compatibility of Wallets for Catapult networks. A proposed implementation has been open sourced: nem2-hd-wallets.
Hierarchical Deterministic Wallets permit a better wallets management for the end-user and sets a better standard for child key derivation.
NIP7: QR Library Standard Definition
We have also been actively contributing to NIP7, which aims to set a standard for cross-client compatible QR Codes for Catapult.
We have worked on several commits over the course of the month of May, this package is currently not done and work is ongoing with ETA in mid-june.
A clearly defined QR Library Standard is another step for improved cross-client compatibility. Expect updates here soon!
NIP8: Catapult technology release for Public Network
Last but not least, our public release is knocking at the door. We have been working on consolidating migration issues and issue resolutions for the process of updating the NEM network with Catapult technology.
This NIP is going to be a living document to consolidate input of community members, foundation teams, core devs and partners. The foundation will be doing all in the interest of a well organized and standardized upgrade process.
SDK Updates
Our SDKs team have been active a lot as well! With the Typescript/Javascript SDK reaching dragon compatibility just a few days after dragon release! With regards to the TS/JS SDK, the dragon compatible version is v0.12.1 and the last cow compatible version is v0.11.6.
In the month of May, many updates have been done on the Java SDK as well as to allow it to reach cow compatibility (alpha). The Java SDK team has been working on the catbuffer generator for Java as well and updates are to be expected soon. The last published cow compatible alpha-version is v0.11-alpha and is already available on github!
The foundation also has affected developers to work on a Python SDK that is currently being reviewed and will be published when ready Other SDKs status updates will be added when SDKs are published. We believe that having our SDKs ready to use with Catapult when it is released is a big step forward in improving partner integration processes and use case implementations.
Documentation & Guides
Our team has documented the latest dragon release! The guides and new concepts are aligned with the latest changes, and the references of the following packages were updated: catapult-rest 0.7.5, nem2-cli 0.12.1.
During the month of May, the following guides were published:
- Preventing spam attacks with account filters
- Linking a namespace to an address
- Linking a namespace to a mosaic
- Announcing a transaction with the API
Along with the dragon documentation update, the NEM Developer Center sports a new landing page. The new layout highlights the most popular guides in the portal, making them more accessible. Some of these guides have been enhanced based on the feedback received from the developers and system integrators testing the platform.
Command Line Interface
Our team also worked on and formed contributors for the nem2-cli
project which, with version v0.12.1 is Dragon compatible and replay-protection secured.
Lately, this project has seen contributions along following highlights:
- Added transaction status command
- Formed new contributor to push development of the package
- Ongoing work on nem2-cli includes:
The nem2-cli project is an easy interface to start working with Catapult and fills the role of a go-to tools suite all-around Catapult features. This command line interface can be used for 2nd-layer integrations, for testing and for acting with Catapult accounts, transactions, assets, names, etc.
If you haven’t had the chance to use the nem2-cli, it’s time to step onboard as the latest version ships with compatibility for Dragon.
Foundation Experimental Testnet
In the aim to provide with ready-to-go Catapult infrastructure, the NEM Foundation has been working on an experimental testnet for Catapult as to showcase Catapult features and make it available, for anyone to plug-and-play with our network!
The current foundation testnet will be reset to a Dragon compatible network with network currency nem.xem
in the upcoming days. Also, please keep in mind that with the Elephant network upgrade, the network could require a reset again at a later point - this will not be the definitive Catapult Testnet.
Our team is working to reset the network to have it run Dragon, as I am writing this. With latest dragon update available, we also worked on a separate docker container setup as to facilitate the access to our testnet with a pre-configured network node. This package will be ready for use during the upcoming week!
We encourage anyone to start and participate in discovering latest features of Dragon on Catapult using the nem2-cli and soon with our upcoming NEM Foundation Experimental Testnet.
Wallet Updates
NIP5 - Wallet as Browser Extension
As a way to improve support of Catapult features, we have affected a team to work on the wallet in NIP5: Wallet as Browser Extension. The community can expect updates about this wallet to be released every other week, we are aiming to introduce more of a Team Management to the project as well as increase the amount of resources that are available to push forward the Wallet development.
Moving forward, we will make more finer-grained updates about the wallet as the take-over process settles down. Our team consists of several historical contributors of the wallet which should improve productivity on the project in near- to mid-term.
RFP - Mobile Wallet
The development of the Mobile App for Catapult has been started as well and first development status updates are expected during the current week. The foundation oversees and reviews the implementation of the Mobile App for Catapult and you can expect Updates on this topic soon as well!
Explorer Updates
A NEM Foundation team is to be formed to work on the Node-&Block- Explorer Project. We are currently working internally to permit a status update as soon as possible.
The explorer project has been actively worked on since the month of April and we are working internally to provide with solutions to newly introduced Catapult features and network upgrades.
Links
- NIP 3 - Documenting a new feature
- NIP 5 - Wallet as browser extension
- NIP 6 - Multi-Account Hierarchy for Deterministic Wallets
- NIP 7 - QR Library Standard Definition
- NIP 8 - Catapult technology release for Public Network
- nem2-cli updating to Cow and Dragon features
- Typescript SDK: nem2-sdk@0.12 released with dragon compatibility
- Java SDK: nem2-sdk@0.11-alpha release with cow compatibility
- Foundation experimental Testnet