Lisk Core 1.6.0 in QA & Lisk Elements’ New Validator Library

Lisk 1.6.0 has finished development and is currently in the QA phase. This development update explores how the new architecture allows for truly atomic modules that will enable custom modules to be developed, as well as our move to Jest for better testing, among other things. Elements 2.1.0 has added another library called Lisk Validator essential for cross-product schema validation logic alignment. Commander 2.2.0 continues integrating new functions and teases improved UX for its usage. Hub 1.13.0 continues the rollout of new design with a new transaction details page and additional filters. Mobile 1.0.0 gives us a detailed glimpse into the process of integrating BTC, among other features included in 1.0.0. Want to know more?

By Lisk

28 Mar 2019

Generic-5@2x.png

Hey Liskers,

Another fortnight has passed and Lightcurve development teams have a number of updates to share with the Lisk community. 1.6.0 has finished development and is currently in the QA phase. This development update explores how the new architecture allows for truly atomic modules that will enable custom modules to be developed, as well as our move to Jest for better testing, among other things. Elements 2.1.0 has added another library called Lisk Validator essential for cross-product schema validation logic alignment. Commander 2.2.0 continues integrating new functions and teases improved UX for its usage. Hub 1.13.0 continues the rollout of new design with a new transaction details page and additional filters. Mobile 1.0.0 gives us a detailed glimpse into the process of integrating BTC, among other features included in 1.0.0. Want to know more? Read on.

Lisk Core

1.6.0 finished development Tuesday 26 March and began QA testing.

Within these last two weeks, we successfully completed the milestone Introduce new flexible, resilient and modular architecture — Phase 2 which continues the implementation of LIP005. As stated in the previous development update, it introduces a new folder structure, separating the application from the framework and in different modules which as for now are Chain and HTTP API.

New architecture allows for truly atomic modules that will enable custom modules to be developed.

In the new architecture, the modules communicate both through Events and RPC via channels. Each module defines its own events and actions that other modules can utilize. This way of event and action-based communication allows us to make modules truly atomic, and also enables custom modules to be developed in the near future. Added to that, it prevents us from writing duplicate code, which is harder to maintain.

New child process feature will further improve the efficiency of Lisk Core .

We also made it possible to load modules as a child process as specified in the LIP mentioned above. It means that now, machines running Lisk Core can allocate more of the physical resources across multiple CPUs. This improves the efficiency of Lisk Core whilst using the same allocated resources.

This is still an initial trial of the child process implementation and so far we consider to be not stable enough for Mainnet implementation. Given this, the child process feature is disabled by default in version 1.6.0 and can be activated by setting IPC to enabled

File name
1enabled
in the global configuration file. By doing so, the HTTP API module will be loaded in a separate process.

The feature will be enabled by default in further releases when it is considered stable. Currently, this feature is going through comprehensive testing to make sure all fallback mechanisms are in place whenever a child process crashes. As this is a very critical part of our application, the child processes feature will only be enabled whenever the testing is concluded.

Started migration to Jest to simplify the testing process.

At last, for 1.6.0 we are gradually starting the migration from Mocha test runner to Jest. This will greatly simplify the testing process and allow us to isolate tests in a better way while guaranteeing code safety. For now, we will use both test runners alongside each other, however, migration of all tests to Jest is planned for future versions.

1.7.0 will drastically enhance the developer experience by improving Lisk’s framework structure.

1.7.0 is currently in development after our developer teams have specified the full set of issues that need to be solved in 1.7.0 release. So far we have focused on two main epics in this release. During the development of 1.7.0 we have decided to add one more — the overall improvement of the Lisk framework structure. This will improve the developer experience in a variety of ways. Firstly, it will set up the new repository structure in order to expose the difference between the framework and application level. Secondly, it will provide the uniform form of the configuration and validation of parameters. Lastly, it will create the necessary documentation of the repository to improve DX and support the framework restructuring.

For version 1.6.0, we also decided to upgrade the Node.js version from

File name
110.14.1
to
File name
110.15.3
as it includes some important security fixes.

Lisk Elements & Commander

Lisk Elements 2.1.0 adds yet another new library, Lisk Validator.

2.1.0’s feature development has been completed as stated in the last Development Update.

We are mainly focusing on fixing multiple issues that have been identified while integrating the new libraries into Lisk Core. In the last two weeks, we have also added a new library called lisk-validator. This library of Elements contains all the schema validation logic of Lisk Core and Lisk Elements. By having this validation in one place, it will be easier to maintain consistency across our entire product suite. For example, the introduction of lisk-validator will enforce Lisk ID format validation and reduce misalignment between Core, Elements, as well as UI products. This library is scheduled for integration along with other libraries included in 2.1.0 after the release of Core 1.7.0.

Lisk Commander 2.2.0 development is still in progress.

Milestones Add node dependency/management/configuration commandsand Add node migration/upgrade commands are close to being completed. We have completed development of the majority of the commands. The only outstanding is “node:migrate”, which will be used for updating the node version in case of a future hard fork. Additionally, 2.2.0 will improve the user interface when using new commands. This will be facilitated by improved display of information when interacting with the new commands. Read more about his issue here.

Lisk Hub

1.13.0 released with more transaction filters and a new transaction details page.

Hub 1.3.0 was released last week on Wednesday, March 20th. We implemented more options for filtering transactions in the desktop wallet to make it even easier for you to find a particular transaction. You can now filter transactions by the minimum and maximum amount of LSK sent, by the date range that the transaction took place as well as by the message if one was included in the transaction.

New transaction detail pages for each transaction type.

Now when you click on a row in the wallet page transactions list, it no longer sends you to the old design. This page is uniquely designed for each of the major transaction types — transfer, vote, delegate registration, and second passphrase registration. Below you can see an example screenshot for the vote transaction type.

There is also a new “Terms of Use” page, where you will be asked to accept the “Lisk Terms of Use” before being able to use Lisk Hub.

New wallet overview module displays account balance, last transaction and more.

Finally, we made further improvements to the Wallet page. A “wallet overview” module was added,which highlights the most pertinent account data such as your account balance, last transaction, and balance change since the last visit.

1.14.0’s account page and ‘send LSK’ pages in the new design coming soon.

We are currently testing and fixing bugs in 1.14.0. This release will showcase our redesigned “Account” page as well as a new and improved“Send LSK” process. We have also merged the first step of the extension system — so far available only to developers in dev mode of Lisk Hub. We are gathering feedback on how to adjust and improve this feature for security purposes before we consider taking it public.

1.15.0 is in development to further align design and begin work on planned Trezor support.

In the current development sprint, we are working on further design improvements to various parts of the app to make everything look cleaner and simpler. We also started to work on the first parts of Trezor hardware wallets support. Part of the effort is to understand the amount of work needed to finish the Trezor support, so we can plan the release it should be finished by. Taking into account the technical complexity and security requirements of this feature, it is certainly not expected to be completed and made available in the 1.15.0 release.

Lisk Mobile

1.0.0 is currently in development, will include BTC support and improved UX.

Improved Lisk Mobile sign-in process.

We have improved the sign-in process for those who wish to login manually. Previously the bio authentication process ran automatically, meaning you would need to wait two seconds before having the option to choose the manual sign-in method. Now there’s a dedicated button to activate bio authentication or to navigate to sign-in form.

BTC integration development updates.

To integrate BTC in our wallet, we had to refactor all our Redux store, middleware, actions and utilities. We have created a new API to interact with BTC nodes. Although this is not visible to the end user, it was a first crucial step in the integration of BTC, by ensuring a stable and secure connection to the Bitcoin blockchain.

Design updates for the BTC integration.

For the first visual change on the journey of BTC integration, we have changed the account summary section in the home page slightly to add a slider for showing the address and balance of BTC and LSK user’s accounts. Since our goal was to not sacrifice the code quality, it required more effort than we expected.

The two hardest screen to refactor were Home and Send. The send screen requires careful implementation of the base component to handle differences of the send process between Lisk and Bitcoin. Differences include address validators, bookmarks, the second passphrase and the reference field for Lisk and dynamic fees for Bitcoin. The bookmarks page has been refactored, as well as the request page.

After our DevOps team performed a security audit, we decided to further investigate the BTC node which we run to serve our app. This resulted in an alternative solution that involves running a vanilla Node and writing a wrapper on top of it to provide account and transaction endpoints whose repositories match the ones we have in Lisk Core. The wrapper app is being developed by Lightcurve’s backend teams.

Thanks for keeping up with the latest developments here at Lightcurve. The next two weeks 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: