Lisk Core 2.0.0 Released on Mainnet & SDK 2.0.0 on NPM

We released Lisk Core 2.0.0 to the Mainnet. The soft fork will trigger on August 23, 2019, an upgrade before this date is mandatory. The release has several breaking changes. It also completes a number of objectives on the Architecture and Design phase of our roadmap. We are changing our software license from GNU GPL v3.0 to a more permissive Apache 2.0. We have published Lisk SDK 2.0.0 to the NPM registry — custom transaction support comes with 2.1.0 scheduled for a release tomorrow.

By Lisk

23 Jul 2019

core2.0.0-to-mainnet-MAIN@2x.png

Today, we released Lisk Core 2.0.0 to the Mainnet. This is the first Lisk Core release built using the Lisk SDK. For this purpose, together with Lisk Core we also published the Lisk SDK to the NPM registry, with the same version number — 2.0.0. As we previously mentioned in the overview of the upcoming releases, this is the initial version of the Lisk SDK, without the support for custom transactions.

Together with this release we completed following objectives of our Development Roadmap:

  • Implement design pattern for protocol change
  • Improve transaction processing efficiency
  • Create transactions element
  • Create transaction pool element
  • Add node dependency/management/configuration commands

We decided to move Reduce technical debt within chain module objective to the next milestone — Security and Reliability. The work on this objective is done, however, this is not a requirement for Alpha SDK phase to begin and will be released later, with Lisk SDK 2.2.0.

The last objective, Enable custom transaction support, is already implemented in Lisk SDK 2.1.0. Together with its release, the Architecture and Design milestone will be considered completed. Lisk SDK 2.1.0, the beginning of Lisk Alpha SDK phase, is scheduled to be released tomorrow.

The soft fork is expected to trigger on August 23

Lisk Core 2.0.0 will introduce a soft fork on the Lisk Network, which will be triggered automatically at block height 10,000,000. We are aware that some work needs to be done by third parties for adjusting their tools to breaking changes (especially API-related) introduced in this release. We decided to extend the time between release and the actual soft fork from 14 days (as announced in our last Development Update) to one month. This should give all node operators enough time to upgrade their nodes. Until this point, it’s safe to run the previous version of Lisk Core (1.6.0), but it’s mandatory to upgrade before August 23, 2019, when we’re expecting the network to reach the soft fork’s height.

Lisk SDK will have separate release cycles from Lisk Core for faster implementation of developers’ feedback

From now on Lisk SDK and Lisk Core are going to have separate release cycles. It is important to note that not every release of Lisk SDK will be used by Lisk Core and released to the Lisk Network, starting with Lisk SDK 2.1.0. This approach will allow us to address developers’ needs faster, by having closer feedback loops for Lisk SDK, while continuing to work through ourDevelopment Roadmap.

This release contains several breaking changes

Lisk Core 2.0.0 contains a few breaking changes, which all node operators should be aware of. The changes are the following:

API breaking changes:

  • We removed unconfirmedBalance property from two API endpoints: api/accounts and api/accounts/{address}/multisignature_groups. The node is no longer tracking unconfirmed balances of accounts.
  • Transactions that are not yet included in blocks can have a few different states, according to the actual step of processing. In previous versions, we had unconfirmed, unsigned and unprocessed. With Lisk Core 2.0.0 we have ready, pending, verified, validated and received. This change is affecting the following two API endpoints:
  • api/node/status, which solely lists the number of transactions in each state
  • api/node/transactions/{state}, which lists all transactions’ details in a specific state
  • API responses now always return an array of errors, regardless if there was only one error or more. Before it was returning an object for a single error and an array if there was more.

The current API documentation for Lisk Core 2.0.0 is already live on our website.

Soft fork related changes:

  • Support for dapp registration transactions (type 5) will be dropped, this means that Lisk Core will not accept those transactions anymore, after the soft fork planned on 23 August 2019.

Other breaking changes:

  • Logging system changed — logs are now stored in a JSON format for extensible usage and searchability.
  • Configuration files are now defined per module. However, node operators still have the possibility to override them using a custom configuration file (like before, just the structure is different). The guidelines for configuration are available here.

Lisk Core 2.0.0 improves transaction processing efficiency and introduces a new P2P library

Thanks to this release, Lisk Network can benefit from two major improvements:

  • Improved transaction processing efficiency was achieved by optimizing the transaction verification and database persistence. Please note, by improved transaction processing efficiency we do not mean transaction throughput which is itself determined by block size and time, but rather improved processing efficiency in terms of computation and resource usage.
  • We have a new P2P library, which includes all technical aspects involved in peer discovery, managing peer connections and message routing. Connections between peers are more stable now.

If you are interested in detailed release notes you can find them here: Lisk Core, Lisk SDK.

We are also changing our software license from GNU GPL v3.0 to a more permissive Apache 2.0

There is one more change affecting both Lisk Core 2.0.0 and Lisk SDK 2.0.0 — we changed the license from GNU General Public License v3.0 to Apache License 2.0. The new license is a more permissive one, for example, the software may be distributed under different terms and without disclosing the source code. You can find more details in the corresponding issues — Lisk SDK and Lisk Core.