SDK Monorepo Created & Lisk Core 1.6.0 is on Mainnet

Hey Liskers,

This blog post marks the beginning of the new monthly format of Lisk Development Updates. This frequency allows us to continue providing detailed insight into our workflows. As always, Lightcurve development teams have a number of important updates to share with the Lisk community. A number of Lisk products were consolidated into a monorepo structure ahead of the release of the Alpha SDK. Lisk Core 1.6.0 was released on Mainnet and completes the rollout of the new flexible, resilient and modular architecture of our blockchain application platform. Lisk Core 2.0.0 is in development and will include improved transaction processing efficiency, among other features. Continued work on Lisk Elements brings improvements to the network’s peer selection. Lisk Mobile’s second major release of 1.0.0 has already been submitted to the app stores and include Bitcoin integration. Hub teases similar multi-currency support and Trezor T hardware wallet integration in the upcoming versions! Want to know more? Read on.

By Lisk

28 Apr 2019

Generic-4@2x.png

List of key updates:

Lisk SDK

Lisk SDK monorepo improves development speed, code consistency and provides a simpler way to access our products.

Let’s start with one of the major milestones for Lisk this month. In preparation for the rollout of Lisk’s Alpha SDK, we officially introduced this product in the development phase by creating a single monorepo on Monday, April 15. The new repository is designed to be a collection of libraries provided by Lisk Elements, command line tools via Lisk Commander, as well as Lisk Framework’s modules and utils to provide a straightforward developer experience. For more details on the benefits of this development strategy, please read this blog post on the monorepo restructuring.

Lisk Core 1.6.0 is released to Mainnet after a quick bug fix of 1.5.1.

During this month, we identified a bug on the Mainnet and had to release 1.5.1 on April 10. The bug was identified in the peer-to peer communication layer. Although it was not a fatal issue affecting account holdings, it could still impact performance of the peer-to-peer layer due to the large size of the genesis block. We also released 1.5.1-rc.0 for the nodes running on Testnet. More details can be found in the issue #3298 and respective code changes on this commit.

? QA Developer Mariusz Serek’s blog post on the importance of software testing in blockchain was featured on DZone and ThePracticalDev accumulating over 12,000 views.

As you may have read in our previous Dev Updates, QA for 1.6.0 started at the beginning of April. During the testing phase, we identified different regressions in the early stages of development. After five alpha releases, we received the green light from our QA team with the release of v1.6.0-alpha.5. Soon after we announced the v1.6.0-rc.0 for Testnet. During the stability phase we ported the patch 1.5.1 to 1.6.0 and also identified a couple more issues to further stabilize before the release to Mainnet. This ended up with 4 Testnet releases and the final release for Testnet was v1.6.0-rc.4. The observation phase for Testnet went for a couple of days and we and included community feedback.Finally, on April 24 we released 1.6.0 on the Mainnet. This release was a large one, containing exactly 5757 commits. And with this release we were able to finish the roadmap objective “Introduce new flexible, resilient and modular architecture for Lisk Core” described in our Lisk Improvement Proposal LIP-0005. You can read about the benefits of the new architecture here.

? QA Developer Mariusz Serek’s blog post on the importance of software testing in blockchain was featured on DZone and ThePracticalDev accumulating over 12,000 views.

Lisk Core 2.0.0 introduces improved transaction processing efficiency, among other features.

As mentioned in the Monorepo blog post, Lisk Framework combines all of the elements (libraries) and creates the business logic to be a foundation on which developers can build a blockchain application. It’s responsible for establishing and maintaining the interactions between the modules of a blockchain application, providing its basic architecture. Lisk Core will become an application that is created using Lisk Framework.

We introduced a lot of changes to the framework throughout the month, which all focused on improving the developer experience, simplifying the complex configuration for any application, as well as implementation of LIP-0005, LIP-0006 and foundation work for LIP-0004, as described in the following section.

In preparation for the Security and Reliability phase of our development roadmap, Cryptographer Jan Hackfeld published an overview of his proposal 'BFT Consensus Algorithm For Lisk' with comparisons to other consensus algorithms. This proposal is by far the most original and popular one produced by Lightcurve to date.

The existing peer management logic was replaced by a new Network module. The Network module fully isolates the networking aspect of the Lisk framework from all other functionality. It provides other modules with a simple interface through which they can interact with other module instances over the network. This Network module also allows us to implement flexible message and connection routing between peers across the network.

If you are a developer, here is a short summary of changes in the framework that directly affect you:

  • Currently the entities in the “storage” component will only expose readonly interfaces. Meaning if you want to develop a module with our framework you will have to access Account, Block and Transaction entities to fetch data. The blockchain data manipulation is the sole responsibility of chain module so it will not be available from custom modules.
  • We are moving the framework logging component to JSON based logging, so now all logs from applications that you develop with our framework will be machine readable JSON data files, for more convenient use.
  • Significant configuration was previously involved in running a Lisk based blockchain, which is to be expected at this stage of development. However, now you can start the application without providing a configuration, just the genesis block. If you need to see the full set of configuration which was used to run the application, we developed a script for our own development purposes to compile all configurations together and export them to console. This can be used as a reference or inspiration in your own development.
  • Transaction processing will have a brand new integration from the lisk-transactions element, which will handle all in-memory manipulation during the block processing. We anticipate a significant increase in the transaction processing efficiency with this feature. You can read more about it in LIP-0006.
  • Framework application will now expose an interface “registerTransaction” to allow you to develop and use transactions with our framework. You can see some examples of this in this gist.

Apart from development we are also thoroughly testing Lisk Framework. Initially opting for Mocha, we have decided to move on with Jest, covered in this Lisk Dev Update. All new test suites we are creating are done with the Jest and we will migrate outstanding Mocha tests to Jest soon.

Lisk Elements brings improvements to the network’s peer selection.

We have made final interface changes to the `lisk-p2p library` in preparation for the 2.0.0 release of Lisk Core. The last change made was an improvement to peer selection which allows different aspects of the network peer selection algorithm to be customized. There are now three distinct phases for peer selection which can be customized independently:

  • peerSelectionForConnection
  • peerSelectionForSend
  • peerSelectionForRequest

This improvement allows the lisk-p2p library to support custom routing of packets and connections across the network.

Lightcurve Backend developer Michiel Mulders’ blog post about machine learning was featured on HackerNoon to 448,000 followers. It features Lisk and future sidechain project, GNY!

Lisk Commander completes development of all node commands in time for Core 2.0.0.

We have completed the development of all the node commands. However, the Lisk framework modular architecture changes impacted commander implementation, which is being worked on currently for the final development completion. Node commands quality was ensured with these Unit Tests and the documentation for all the new commands being worked on. You can read more about the documentation updates here.

Lisk UI

Lisk Hub 1.14.0 brings new design to account management and sending LSK.

Lisk Hub 1.14.0 was released at the beginning of the month on April 3, 2019. Here are some of the design changes included in this release:

  1. The message field now notifies you in real time about the amount of space left to write your memo in bytes.

  2. The sign-in page now has a new branded design:

Upcoming Lisk Hub releases will include BTC and Trezor T hardware wallet integrations.

Lisk Hub 1.16.0 was released for beta testers on April 24. This version fixes many bugs and improves several details in the way users interact with the interface. The main effort for the last two weeks was put on developing the infrastructure required to store BTC tokens, as well as the interface needed to interact with the hardware wallet Trezor T. Depending on the complexity of each implementation, we anticipate that each feature will be included in either Hub 1.17.0 or 1.18.0.

Lisk Mobile 1.0.0 has been submitted to app stores, includes Bitcoin integration.

Lisk Mobile 1.0.0 was submitted to stores on April 25 and is currently awaiting approval. It is the second major release of our mobile blockchain wallet. One of the main features include in 1.0.0 is the multi-currency support, starting with the introducing BTC integration. Covered in previous Lisk Dev Updates, this implementation opens the door for adding more tokens in the future. Our approach was to make it extremely easy to switch between the management of both tokens, see their history of transactions, as well as send and request both LSK and BTC. We will continue improving the user experience and several screens for this integration.

?Frontend developersAltay Aydemir and Yashar Ayari’s blog post on building an iMessage Extension using React Native was featured on DZone andThePracticalDev, as well the React Newsletter — accumulating over 30,000 views.

Lisk Mobile 1.1.0 improves the app’s discreet mode.

Lisk Mobile 1.1.0 is currently in the QA phase and will be released soon. This version will allow users to activate and deactivate the discreet mode by shaking their phone. Several bugs are also fixed in this version.

Thanks for keeping up with the latest developments here at Lightcurve. The next month will see us progress further through various objectives on the roadmap as well as produce multiple releases across our product suite.

Lightcurve Development Team

Lisk empowers individuals to create a more decentralized, efficient and transparent global economy. We welcome you to join us in our mission: