Conclusion of the Security and Reliability phase
All objectives of the Security and Reliability phase have been successfully implemented into the Lisk SDK 3.0.2 and therefore Lisk Core 3.0.0_beta.0 has been released. It comes with a multitude of new features on the protocol and various improvements on the code level.
New protocol features
LIP0004: Introduce robust peer selection and banning mechanism
This scalability and security improvement further refines the gossip-based flooding mechanism for blocks, transactions, and signatures to improve information propagation. It allows the Lisk peer-to-peer network to scale to an unlimited number of nodes and increases the robustness of the network and individual nodes.
LIP0012: Remove redundant properties in transactions
This scalability improvement removes redundant properties in transactions which makes them smaller in size. With the future introduction of byte-based blocks, it therefore allows for more transactions within one block and will also make them cheaper with the introduction of our new dynamic fee system.
LIP0009: Mitigate transaction replay on different chains
This security improvement binds transactions to specific chains by using unique chain identifiers. Today, this is important to not be able to replay Testnet transactions on the Mainnet. However, it’s also a requirement for future Lisk sidechains to not be able to replay sidechain transactions on the Mainnet or vice versa.
LIP0014: Change consensus protocol to add block finality
This security improvement is the biggest protocol improvement for this phase. It adds block finality to the Lisk blockchain through a Byzantine Fault Tolerance (BFT) consensus algorithm. This will guarantee after a certain amount of time that a block can never be reverted. It’s a critical requirement for future Lisk sidechains.
Upgrade to NodeJS12
Adding support for the latest NodeJS version comes with speed and security improvements, as well as various new features for developers. Please refer to the NodeJS12 change log.
Upgrade to Typescript 3.7
Adding support for the latest Typescript version comes with many new features for developers and various new type checks. Please refer to the Typescript 3.7 change log.
Faster blocks transmission between peers
This scalability improvement increases the transmission speed of blocks sent between individual nodes on the network.
Do not include nonce when broadcasting transactions/signatures/blocks
This scalability improvement removes nonces from being broadcasted which makes the required data being transmitted smaller and therefore the transmission more efficient.
Resources for the Betanet 3.0.0
With the launch of the Betanet 3.0, we also introduced updates to our Lisk user interfaces.
Lisk for desktop was updated to 1.25.0-beta.0 which now automatically detects to which kind of network the user connects to, e.g. the new Betanet. In the case of the Betanet 3.0.0, it means Lisk for desktop supports all new API calls. With future betanets, it will also be capable of dynamically changing the user interface design due to new features. For example, to support the new DPoS voting system currently being implemented in Lisk SDK 4.0.0. This way our users only have to download one Lisk version for desktop and it supports all networks (Mainnet, Testnet and the latest Betanet) instead of downloading different applications for different networks.
The Lisk Explorer was updated to 2.3.0-rc.0 and the Lisk Faucet was updated to 3.0.0-beta.1 to support the Betanet changes. Furthermore, we have updated our Lisk SDK and Lisk Core documentation to reflect all changes made.
Attention delegates! Safely activate forging for Betanet 3.0.0
In Lisk Core 3.0.0-beta.0 we did not implement the LIP0024 yet which introduces the Proof of Misbehavior protocol, i.e. consequences for breaching the BFT protocol. However, it’s important to know that with the LIP0014 we have already implemented the protocol for detecting misbehavior.
Previous versions of the Lisk protocol allowed delegates to enable forging on multiple nodes. In case their node failed, the script would then switch to a backup node that could forge the block. However, this behavior could lead to double forging, i.e. the same block being forged on multiple nodes at the same time.
Double forging is considered to be a protocol violation with Lisk Core 3.0.0-beta.0. Currently, nodes in the network can detect double forging by analyzing the BFT properties put into the block headers.
In short, the most important takeaway is to not enable forging on multiple nodes. In case you want to switch nodes, disable forging on both nodes and enable it again on the desired node.
Want to join the Betanet 3.0.0?
The network identifier (`networkId`) for the new Betanet 3.0.0 is:
You also need a seed node to retrieve information from the network. You can find the list of active Betanet nodes via the Lisk Explorer for the Betanet.
Want to know more? Read the Lisk Core 3.0.0 documentation.
The road ahead with the Lisk SDK 4.0.0
We have observed that community members already pointing out that Lisk SDK 4.0.0 is almost complete, likely referencing to the GitHub project board. This is not true.
We have only recently started to work on Lisk SDK 4.0.0. At the moment, we are in the planning stage of the development process, where requirements are being gathered and solutions are being designed prior to coding. The issues existing on GitHub represent only a small portion of the work yet to come.