SDK & Platform

Lisk 3.0.0’s QA phase is in progress, with two alphanet testing cycles already completed.

During the development of this major release, we have completed the “Security and Reliability” protocol roadmap phase and have moved on to testing on the temporary alphanet. During this process, we have identified certain issues (outlined below) and continue to release new alphas with the fixes. When we complete the full phase of quality assurance and find the network in a stable state, we will announce the public beta network, as we did when we published V1.[a]

QA testing for Block Synchronization Mechanism, Fast Chain Switching, and Fork Choice Rule has been also completed. You can read more about these features coming to 3.0.0 in the previous Development Update.

During the QA phase this month, we have completed the following improvements and bug fixes:

Added delegateMinHeightActive needs to be included in the calculation of prevote and precommit 4349

Fixed Byzantine Fault Tolerance-related issues:

Duplicate key violation during synchronization: 4532

Block Finality: The block was not finalized as the earliest active round calculation for the first 5 rounds were incorrect, which was addressed by 4546

Invalid transaction payload during RPC causes network isolation: When the peer sends a payload with invalid data format, all the nodes in the network were crashing leading to network isolation, this issue was addressed by 4501

Block ordering issue: The block read from the database entity was returning the incorrect order leading to invalid block deletion, which lead to the synchronization mechanism to fail, which was addressed by 4518

Fixed DPoS related issues:

Finished Syncing & Snapshotting against Mainnet Database with new DPoS Module

Mem accounts state comparison after new DPoS Module implementation: 3686

Improve Framework unit/functional/integration tests

Lazy push for transactions: Since transactions are not time-critical, we switch to a lazy push mechanism to broadcast the transaction. At regular intervals, the transactions selected by the transaction pool mechanism of a node will be announced to all connected peers by sending a list of transaction IDs. The peers can then request the full transactions explicitly from the Lisk node. 3344

Peer information retention: After disconnecting from a peer, a peer's reputation and productivity information will now be retained even after disconnect.

Source group bucket calculation: For new peers, the IP address of the peer from which we receive the peer lists will now be included in the bucket calculation. Given a source_group IP address (a peer who provides a peer list), all IP addresses advertised by this source_group are hashed to at most 16 buckets.

Seed peer discovery: After receiving peer lists from seed peers, we disconnect with them. If a node cannot successfully establish minimum outgoing connections within 30 seconds, it will fall back to querying seed peers for peer lists until it reaches the minimum number of outgoing connections number.

Remove nonce broadcasting: The nonce property is removed from all of the RPC endpoint’s response and validation since it was unnecessary.

All of the remaining weeks of the year will be dedicated to alpha testing Lisk SDK 3.0.0.