NEM Foundation Technology Department Update - June 2019

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! :+1: 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 :blush: 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:

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:
    • Issue#32 with Multi-Signature implementation
    • Issue#27 with Account Properties implementation
    • Issue#26 with Profile Encryption implementation
    • Issue#30 with Blockchain Commands (i.e.: receipts) implementation

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!

:warning: 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

26 Likes

Thank you for the updates on the ongoing technical progress. Your efforts are appreciated in bringing this information to the community.

7 Likes

Wow, great update @gevs.
Keeping those SDK up to date is great, also those 3 languages are spot on to maintain. Python use will just keep on increasing and is must.
CLI - nice !
Documents - no one want to really dooo… but is a must and helps a lot, if done correctly.
You all are moving at the speed of light… loving it.

2 Likes