Today, we are happy to announce the release of Lisk SDK 2.1.0. This marks the beginning of the Alpha SDK Phase on our Development Roadmap. This phase will allow developers to create their own proof-of-concept blockchain applications. Developers will also be included in the SDK’s design by being able to provide feedback on how their experience can be improved.
What is Alpha SDK?
The goal of the Lisk SDK (Software Development Kit) is to provide developers with a set of tools and libraries that will make the process of creation and customization of blockchain applications quick and easy.
Architecture of the Alpha SDK
- The originally proposed system component, responsible for maintaining application state, was implemented as part of the application controller. This was done in order to eliminate the risk of having an inconsistent application state distributed across different modules within the application.
- We introduced a new concept of public versus private actions. Public actions, like remote procedure calls, are allowed from other machines on the Lisk Network, but certain actions are restricted to the local machine only. This provided a greater level of security than what was originally proposed.
What can I create using the Alpha version of Lisk SDK?
Lisk SDK 2.1.0 allows you to create your own blockchain application based on the Lisk Protocol. This means the new blockchain will contain the same set of features available on the Lisk Network, for example Delegated Proof of Stake consensus, P2P communication based on WebSocket protocol, native support for multisignature transactions, and much more. However, the most exciting part is the possibility to customize this new blockchain to fit to a specific use-case. This can be done by modifying protocol parameters and adding custom business logic on top of it.
Create new custom transaction types
We provided developers a way to define their own custom transaction typesin which they can implement the required business logic for their blockchain use-case. The custom transaction types are an extension to the default set of transactions that is already part of the Lisk Protocol. This includes:
- Balance transfer (type 0)
- Second passphrase registration (type 1)
- Delegate registration (type 2)
- Delegate vote (type 3)
- Multisignature account registration (type 4)
The Lisk SDK provides a base transaction which developers can extend. The custom, blockchain application logic can be defined according to an abstract interface that is common across all transaction types.
Customize blockchain parameters for your use-case
Developers are also able to configure protocol-level parameters for a newly created blockchain. Currently, for the initial release of the Alpha SDK, we are supporting four of them (we will allow more in the future):
- Block time — The time in seconds between each new block that is created.
- Epoch time — The time in seconds that have elapsed since the genesis block was created, offset from Unix Epoch Time (00:00:00 Thursday, 1 January 1970).
- Block rewards — The amount of new tokens issued with every forged block. Developers can define milestones — specific block heights that when reached will enforce a change to the amount of tokens issued.
- Block size — The maximum number of transactions that can be included in a block.
The above mentioned blockchain parameters can be set only at the point of genesis (creation of the new blockchain network). Changing any of these later will cause a soft/hard fork on the network.
How to get started
There are few ways to start building your application with the Lisk SDK:
- The easiest and recommended one is to install lisk-sdk NPM package, it’s just a single command:
- Lisk SDK consists of many packages. If you need a single functionality — you can install a specific package only. Available packages are listed at Lisk Elements Documentation.
- When you want to modify some of the packages, you can also clone the repository and build Lisk SDK yourself, this is an advanced way and we will provide documentation for it at a later stage.
Regardless of which way will you go with, before, you have to install some system dependencies, everything is covered in the Lisk SDK documentation.
Documentation, examples, and tutorials
The release comes with an updated documentation and GitHub READMEs. Each README file contains a brief description of the underlying package with instructions on how to: install, configure, test, benchmark and contribute to the codebase. Together with the documentation, we also provided two example blockchain applications, each with its own tutorial, explaining how the application functions and how it was developed:
The Alpha SDK will be rolled out in multiple releases over time
The release of Lisk SDK 2.1.0 completes the Architecture and Design phase of our Development Roadmap. Now the Security and Reliability phase begins. This will comprise of:
- Lisk SDK 2.2.0 cleans up and refactors the existing codebase, so that further development can be done faster and with a greater level of confidence
- Lisk SDK 2.3.0 partially introduces a robust peer selection and banning mechanism.
- Lisk SDK 3.0.0 changes the consensus to BFT (Byzantine Fault Tolerance) which is more secure and guarantees blocks finality, mitigates transaction replay on different chains, removes redundant properties in transactions and finalises the work on introducing a robust peer selection and banning mechanism..
As described in the previous blog post, Lisk Core will be released independently of Lisk SDK according to the release schedule below:
- Lisk Core 2.1.0 release will include Lisk SDK 2.3.0.
- Lisk Core 3.0.0 release will be directly based on Lisk SDK 3.0.0, which will include all of the work done in previous Lisk SDK releases.
Lisk is on a mission to enable developers to create decentralized, efficient, and transparent blockchain applications. Join us:
Legal disclaimer: By using the Alpha release of the Lisk SDK, you acknowledge and agree that you have an adequate understanding of the risks associated with the use of the Alpha release of the Lisk SDK and that it is provided on an “as is” and “as available” basis, without any representations or warranties of any kind. To the fullest extent permitted by law, in no event shall the Lisk Foundation or other parties involved in the development of the Alpha release of the Lisk SDK have any liability whatsoever to any person for any direct or indirect loss, liability, cost, claim, expense or damage of any kind, whether in contract or in tort, including negligence, or otherwise, arising out of or related to the use of all or part of the Alpha release of the Lisk SDK.
At this time we only recommend the Lisk SDK for proof-of-concept blockchain applications, i.e. a blockchain operating on a testnet. The only application built using the Lisk SDK currently feasible for production usage is Lisk Core, the client of the Lisk network itself. Please be advised we cannot guarantee blockchains created with the Alpha release of the Lisk SDK will remain compatible with our planned (beta/rc) releases. We hope you enjoy building your proof-of-concept blockchain applications using the Lisk SDK, and look forward to receiving your feedback and contributions during the alpha phase.