Lisk Core 2.0.0 First Release Candidate is on Testnet

Another month has passed and our development teams have a number of important updates to share with the Lisk community.

By Lisk

04 Jul 2019

generic-update_JAN 31 - BLOG_4.png

Here are the main takeaways from June:

  • The first release candidate of Lisk Core 2.0.0 has been released to Testnet.
  • A number of bugs spotted on Testnet (thank you to community members cc001 and kplusq for spotting) prompted the development of the second release candidate, expected to be released next week.
  • The release of Lisk Core 2.0.0 to Mainnet requires a soft fork with an extended period of 14 days given to node operators to update their nodes.
  • Lisk Core 2.1.0 reached the QA phase and most of the initial features planned for Alpha SDK have been completed.
  • Lisk SDK 2.2.0’s QA has been suspended as we investigate bugs found in Lisk Core 2.0.0 on Testnet — we expect it to resume after the outstanding work on previous releases has been completed
  • Lisk SDK 3.0.0 is currently in development. It implements the new secure Byzantine Fault Tolerance consensus which guarantees blocks finality.
  • New P2P features from LIP-0004 have been implemented to improve network security, performance, and allow for an essentially unlimited number of nodes in the network.

Lisk Builders:

  • Endro added a delegate contributions feature to Lisk Discovery.
  • Lemii continues his work on ScanBlocks, a tool to calculate passive income from mining and staking. Running custom nodes which can handle SQL queries allows ScanBlocks to produce income reports at speed.
  • SDK Configurator by Moosty is convenient tool to setup and configure attributes for the SDK.
  • We would also like to thank community member Davinet for their ideas on improvements to our Consensus mechanism, read the discussion here.
  • Community member cc001 spotted a bug on Lisk Core 2.0.0’s Testnet.
  • Community member kplsq submitted a Lisk Core 2.0.0 issue to the Bug Bounty Program which the team assigned a medium severity level.

UI:

  • The first release candidate of Lisk Hub 1.19.0 was released on Monday. It includes BTC support and finishes wallet’s recent redesign.
  • Lisk Mobile 1.2.0 has been released on Wednesday, it completes the redesign efforts of our mobile wallet.
  • Head of UI Ali showcases some of Mobile’s new transaction processing animations with a short clip.

Lisk SDK

The first release candidate of Lisk Core 2.0.0 is on Testnet, second in development after bugs spotted

Maciej Baj, Head of DevelopmentLisk Core 2.0.0-rc.0 is now on Testnet. We are currently working on the next release candidate, as a few new issues were discovered during the open testing phase. Two bugs were identified by community members cc001 and kplusq, with the latter being submitted through the Bug Bounty Program and categorized as a medium severity level. Highly appreciated! Lisk Core 2.0.0-rc.1 is expected to be released to Testnet next week.

There was a soft fork planned for this testnet release at height 8,624,442 which triggered automatically when the height was reached by the network, about three days after the release. The soft fork was successful with approximately 80 delegates updating their nodes within the first few hours. We are going to use the same approach for the upcoming mainnet release but the soft fork will be executed about 14 days after — to give node operators enough time to upgrade their nodes.

What is a soft fork?

Mariusz Serek, Backend Developer — A soft fork happens when a new version of Lisk Core is enforcing more strict rules on blocks or transaction validation. Blocks created by new version clients are backward compatible and are accepted by nodes which are still running older clients, while blocks created using previous version (for example 1.6.0 in this case) are rejected by clients running the new version if they violate the new rules.

The 2.0.0 soft fork means that we will we no longer support dapp registration transactions

We introduced one new rule with this soft fork — we don’t allow to send dapp registration transactions anymore. This type of transaction is not used for anything currently, so maintaining its support in the codebase is too costly.

Lisk SDK 2.1.0 reached the QA phase and most of the initial features planned for Alpha SDK have been completed

Pablo Vicente, Backend Developer — The first round of QA for this version is already completed. We are working on additional test scenarios that will cover custom transactions. As mentioned in the last development update, this release will bring support for creation of custom transactions and improve developer’s experience with our Alpha SDK.

Lisk SDK 2.2.0 is currently in the QA phase

Pablo Vicente, Backend Developer — All of the technical debt related tasks planned for this release are completed and Lisk SDK 2.2.0 is currently in the QA phase. Issues related to block processing have suspended quality assurance for 2.2.0 temporarily. Currently, the development team is focused on fixing the issues spotted after 2.0.0-rc.0 release to testnet. When all required work is done we are going to resume QA for 2.2.0, which you can track the progress on GitHub.

Lisk SDK 3.0.0 implements the new secure Byzantine Fault Tolerance consensus which guarantees blocks finality

Mehmet Yatki, Backend Developer — The rounds module which was responsible for updating delegates’ vote weights, distributing blocks rewards and transactions’ fees among delegates, will be replaced with newly introduced PoS module. This will allow us to offer developers more flexibility in the future, by providing the possibility to change consensus by replacing just one module.

To be able to support rolling back blocks until the finalized height, we had to change the way we calculate the vote weight of delegates. After #3633 is completed vote weight of delegates will be updated immediately after a block is processed. However, transaction fees and block rewards still will be distributed at the end of the round. This change is an implementation detail and won’t affect the behavior of the network.

As described in our LIP blog post, the new BFT consensus allows for block finality to be reached after 150 blocks (on average). Having a guarantee that a certain block is final and cannot be rolled back is essential for the future development of blockchain applications on our platform. For instance, when exchanges credit a deposit in LSK tokens, they require a very high degree of certainty that this cannot be undone. You can read the full rationale for our BFT proposal on GitHub.

Robust and reliable fork recovery system almost completed

In June, we also worked on implementing the algorithm that determines the finalized height of the blockchain (see: #computing-prevotes-and-precommits).

Improved Block Sync Mechanism and newly introduced Fast Chain Switching mechanisms, which together bring a robust and reliable fork recovery system are almost completed. The next step is to integrate them with existing chain module.

New P2P features from LIP-0004 have been implemented

Mitsuaki Uchimoto, Backend Developer — Four features specified by LIP-0004 have been implemented to improve network security, performance and allow for an essentially unlimited number of nodes in the network.

Partial view of the network and peer populator:

Original peer discovery process tried to discover and connect to all peers in the network. All nodes in the network were connected to each other. With the new protocol (partial mesh), we keep track of a list of known peers. There is an upper limit on the number of allowed inbound and outbound connections per node. We periodically check the list of known peers and connect with them until the maximum number of connections allowed is reached through “peer populator” functionality.

White, black & fixed peers lists:

Whitelist: Incoming connection from a whitelisted peer is always accepted (if the peer is not blacklisted).

Blacklist: If a peer is blacklisted, then no connection can be established with this peer.

Fixed: A permanent connection is established to that peer. If the peer is not reachable at the moment, P2P module will keep trying to reconnect.

Peer inbound connections eviction mechanism has been implemented for improved security. When the number of allowed inbound connections reaches its maximum limit, we close an existing inbound connection. Some peers will be shielded from this mechanism, based on the following criteria:

Netgrouping: We categorize peers into “buckets”, based on the hash of the IP prefix for each eviction candidate. We protect 4 peers with the smallest netgroup values. An attacker cannot predict which netgroups will be protected.

Peer latency: We protect a number of peers with optimal latency. An attacker cannot manipulate this metric without physically moving nodes closer to the target.

Useful work: We protect peers which perform useful work, such as peers who have recently broadcast blocks or transactions. An attacker cannot manipulate this metric without performing useful work.

Connection time: We protect half of the remaining nodes who have been connected for the longest time.

Fixed a compatibility issue between nodes version 2.x and nodes running clients older than 1.4.1 version. The P2P library did not account for cases where the peer did not report a protocolVersion.

Lisk Builders

Rachel Black, Tech Evangelist — Over the last month we have had a number of community contributions to the Lisk ecosystem, including:

  • Endro added delegate contributions to Lisk Discovery. This is an excellent resource to gather insights on delegate contributions, bringing greater transparency to the network, and allowing you to vote for delegates who bring the most value to the ecosystem.
  • Lemii continues his work on ScanBlocks, a tool to calculate passive income from mining and staking. Running custom nodes which can handle SQL queries, allows ScanBlocks to produce income reports at speed.
  • SDK Configurator by Moosty is convenient tool to setup and configure attributes for the SDK.
  • We’ve received a number of important community contributions to the codebase in the past month. Delegate cc001 contributed with the following issue. Along with hosting an online meetup for the Japanese Community, kplusq submitted an issue to the Bug Bounty Program which the team determined with a medium severity level. All details regarding the fix can be viewed here.
  • We would also like to thank community member Davinet for their ideas on improvements to our Consensus mechanism, read the discussion here.

Always use third party tools with caution.

UI

Lisk Hub 1.19.0 includes BTC support and completes wallet’s recent redesign efforts

Ali Haghighatkhah, Head of User Interfaces — Lisk Hub Version 1.19.0-beta.1 was released on Monday and brings you two significant improvements. First off, this version includes an integrated BTC token support. Now, users can access their BTC tokens right in Lisk Hub. The support for the most popular and widely used cryptocurrency in the world comes after its implementation in Lisk Mobile 1.0.0 in late April.

Another important improvement in Lisk Hub 1.19.0 is the fresh new look. We have started this a few versions back, gradually preparing the project to change from the old design to a modern look that fits our upcoming visual language for the entire Lisk brand. With version 1.19.0 we aim to offer you a minimal, professional look with supportive illustrations and animations.

BTC integration

Another exciting enhancement in Lisk Hub 1.19.0 is the integration of BTC. This enhancement enables users to access their BTC tokens exactly like they do with their LSK tokens. We have tried to keep the same user experience that we had previously introduced in Lisk Mobile. You don’t need another passphrase to store and access your BTC tokens. Keep your existing one safe, it’s now your passphrase to access your BTC tokens as well.

Just like in Lisk Mobile, you’ll find a token switcher on the top right corner of the header. Since Lisk Hub runs on a bigger screen size, we have used the space to show your balance right there. As you can see in the above screenshot, there’s a widget called _wallet details_which shows the balances of each token that you have stored, individually.

Lisk Hub shows your bookmarks and recent transactions of your selected token. By clicking on the token switcher, you’ll see a nicely designed menu that allows you to switch between LSK and BTC, access settings, and some other helpful pages. Just like in Lisk Mobile, you can disable the BTC token completely in settings. This removes the BTC interaction from your Lisk Mobile until you re-enable it later.

In the wallet page, the transactions of your active token are shown by default. You can see the transactions of the other simply by changing the active token.

If you have activated LSK tokens using the token switcher, now you can click on the Send button to send LSK tokens. If you switch the active token to BTC, the send page will change to adapt to BTC specifications. You can choose high or low processing speed. The displayed fee changes according to the amount of tokens you send. This is due to the dynamic nature of BTC network fee.

One thing that you might have noticed is that if you change the active token to BTC, the delegates menu item in header disappears. You should consider that delegacy is a specification of Lisk and other blockchains that use DPoS consensus algorithm. Since Bitcoin in designed and built against PoW consensus algorithm, there’s no delegacy and voting concept on that blockchain.

Fresh new look

We have reworked the header to look simpler, easier and with more functionality. We’ve removed the footer allocated the extra space in the header to the network indicator. Since the BTC integration feature is also shipped on this version, you’ll find the token selector right in header. This makes it accessible at all times.

Now with the help of precisely selected icons and colors, it easier to recognize if, for example, transaction is ongoing, incoming or from a different type. All titles and descriptions throughout the application are reworked to ensure the maximum readability and an intuitive experience.

You can also find your wallet details in a dedicated module in dashboard. It shows the information of your Lisk and Bitcoin accounts in one glance.

One of our targets with the new design was to make Lisk Hub and Lisk Mobile have the same visual language, along with the rest of our online presence. These two applications are complementary parts of a single platform and users should not feel different inconsistency moving from one to another.

Upgrading to Lisk Hub 1.19.0 you’ll notice new icons, illustrations and animations. We have followed a simplistic method and after designing numerous iterations of each illustration and animation. Next you’ll see two screenshots of those pages.

This following screens are the success pages you’ll receive after you register as a delegate or vote for delegates.

The design changes don’t end here. You’ll find tons of improved elements in the application. Starting with the next version, we’ll only have gradual UX/UI improvements to ensure constant enhancement of your experience. We’ll follow up our user testing rounds to spot and resolve UX/UI issues.

Lisk Mobile 1.2.0 is out, completes redesign efforts of our mobile wallet

Ali Haghighatkhah, Head of User Interfaces — Lisk Mobile 1.2.0 was released on July 3. This release’s main purpose is to migrate our existing user experience to the new design that matches the new Lisk branding language. The new design with the changes in Lisk Hub mentioned above. This ensures a unified user experience for both of our user-facing products.

Fresh new look

Let’s start with the views which a new user starts with. In the past we had simple written titles explaining situations when the account doesn’t have transactions, bookmarks and so on. But we think the first pages make the best first impression. So they are as important as other pages. Hence, we have crafted gorgeous illustrations to fill in the empty spaces.

Colors are carefully chosen to look good in dark mode too. We’ve experienced a wide range of colors to include in our color palette that looks great throughout the application.

Security Reminder: Initialize Your Account

We’d like to use this opportunity to remind you to initialize your account with your first outgoing transaction as soon as your receive your first tokens.

While implementing the new design we took the chance to improve the code quality of our React components, improved some transitional animations, and enhanced the performance in some screens. Considering all the improvements, we hope you’ll have a more pleasant experience using Lisk Mobile 1.2.0.

Animation to help new users easily understand when their transaction is validated

Another UX issue that we fixed with this version was the animation that is played after you send a transaction. The old animation was not easily understood and was confusing to some users due to the few seconds it takes for a transaction to be validated. We studied this and tested various scenarios which led us to create an animation which helps users easily understand when exactly their transaction is validated.

The first step of the animation indicates that your transaction has been submitted to the blockchain. Next, it waits for the first confirmation. At this time, a network animation is looping. Shortly after, the transaction is confirmed, a beautiful animation is played that demonstrates LSK arriving to its destination address.

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