Historically, we have seen that developing your blockchain is long-winded and difficult. At Lisk, we are deploying the principle of slow, steady, secure and are following a research first approach. For 2020, we have challenged ourselves with the question of how we can speed up our development time as much as possible, while at the same time, not sacrificing our principles or changing our research first approach.
We have analysed our situation and came up with two strategies on how to speed up our development. All adjustments only affect Lisk Core and not the Lisk SDK. Please note, in order to fully understand this blog post, it's important to understand our protocol roadmap first with its different phases.
Strategy #1: Quality assurance only up to Betanet with a follow-up security audit
The single most time-intensive task with every new major Lisk Core candidate is its quality assurance (QA), especially because the next phases all require hard forks. It takes at least one month to bring a major version from Alphanet to Betanet and at least another two months to launch it on Mainnet. Therefore, we decided that we will perform the QA for the Security and Reliability, Network Economics and Network Consensus phases up to Betanet only. For each new phase we will recreate a new betanet.
Once the Network Longevity phase is implemented we will quality assure the corresponding Lisk Core candidate up to Testnet and conduct an external security audit which ensures that the same security standards are kept as before. Afterwards we release it to Mainnet as a single major update, including all features from the previous phases. This consolidates all required hard forks to just one and minimizes the amount of backwards compatibility work.
Strategy #2: Network Economics and Network Consensus will be developed in one go
The Network Economics and Network Consensus phases are introducing the community's most-wanted features to Lisk, i.a. a new dynamic fee system and a new DPoS consensus algorithm. In comparison to the Security and Reliability phase which introduces a novel BFT consensus algorithm to the Lisk protocol, these two phases are still quite time intense to implement but definitely not as complex. Therefore, we have decided to implement them at the same time to save us from one whole quality assurance cycle and one further betanet.
The Lisk SDK will continue to be released after each phase
It's important to note that we will continue to release each major version of the Lisk SDK together with updated documentation. All major versions of the Lisk SDK will be usable to develop proof of concept blockchain applications.
In fact, we have just started with the development of Lisk SDK 4.0.0 which implements the Network Economics and Network Consensus phases.
Confusion around Lisk SDK stages and Lisk Core candidates
We have observed that there is some confusion around the terminology (Alpha, Beta, RC, Production) we are using for the Lisk SDK stages and Lisk Core candidates.
In terms of the Lisk SDK, we are talking about the general readiness of the Lisk protocol. With the Lisk SDK currently being in Alpha stage it will move into the Beta stage once the Network Longevity phase is concluded, i.e. once all proposed protocol changes are implemented.
With the implementation of the final phase, Blockchain Interoperability, the Lisk protocol roadmap is successfully achieved. With that, the Lisk SDK moves into the RC stage. During the RC stage a general polishment and clean-up will be done before moving into the Production stage which symbolizes the launch of the Lisk blockchain application platform.
For Lisk Core, we are talking about individual candidates for each version release which are proposed to different kinds of networks.
- The Alpha candidate is being proposed for every patch, minor and major version and is being used for a new, temporary, internal-only Alphanet.
- The Beta candidate is being proposed for every major version and is being used for a new, temporary, public Betanet.
- The Release candidate is being proposed for every patch and minor version, as well as the major Lisk Core version before the Blockchain Interoperability phase and all after it, and is being used for the existing, public Testnet.
- The Production candidate is being proposed for every patch and minor version, as well as the major Lisk Core version before the Blockchain Interoperability phase and all after it, and is being used for the existing, public Mainnet.
Alphanet - A temporary, internal-only testing network of a Lisk alpha candidate.
Betanet - A temporary, external testing network of a Lisk beta candidate.
Testnet - The official testing network of Lisk.
Mainnet - The official main network of Lisk.
Candidate - A new version of Lisk Core.
Alpha candidate - A proposed new version of Lisk Core for an Alphanet.
Beta candidate - A proposed new version of Lisk Core for a Betanet.
Release candidate - A proposed new version of Lisk Core for the Testnet.
Production candidate - A proposed new version of Lisk Core for the Mainnet.
Phase - A group of objectives belonging together.
Security and Reliability phase - Implementing the Lisk BFT consensus algorithm.
Network Economics phase - Implementing a dynamic fee mechanism.
Network Consensus phase - Implementing the Lisk DPoS 2.0 consensus algorithm.
Network Longevity phase - Implementing a new ID system.
Stage - A general product status of the Lisk SDK.
Alpha stage - The stage the Lisk SDK is in while Security and Reliability, Network Economics, Network Consensus, and Network Longevity is being implemented.
Beta stage - The stage the Lisk SDK is in while Blockchain Interoperability is being implemented.
RC stage - The stage the Lisk SDK is in after every phase of the Lisk protocol roadmap is implemented and while a final polishment is being done.
Production stage - The stage the Lisk SDK is in after every phase of the Lisk protocol roadmap is implemented and the Lisk blockchain application platform is fully launched.