Introduction

Logo

Please read this carefully. The Lisk SDK is currently in the the alpha release stage. The Lisk SDK has been released in its current form in order to improve the development experience through community feedback and contributions.

It is definitely NOT recommended to use the alpha release of the Lisk SDK for any production based blockchain applications, i.e. a blockchain operating on a live mainnet.

Over the course of the Lisk SDK’s alpha phase there will be significant changes in the Lisk protocol and implementation, which will eventually bring the accessibility and reliability to a level which is feasible for production based blockchain applications.

At this time it is only recommended that the alpha version of the Lisk SDK is used for proof of concept blockchain applications, i.e. a blockchain operating on a stand-alone network.

Please note that the genesis delegate accounts are insecure, as their secret passphrases are public. In addition, the convenient creation of a new genesis block is not supported by the alpha release of the Lisk SDK.

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 that it is not possible to guarantee that blockchains created with the alpha release of the Lisk SDK will remain compatible with the planned (beta/rc) releases.

We wish you an enjoyable experience building your proof of concept blockchain applications using the Lisk SDK and look forward to receiving your feedback and contributions during the alpha phase.

What is the Lisk SDK?

The Lisk SDK is designed to provide an easy and reliable software development kit for building blockchain applications which are compatible with the Lisk Protocol.

The codebase is written entirely in JavaScript and TypeScript, which is highly beneficial for the majority of developers, as no significant change of tools are required to get started.

The Lisk SDK makes every effort to ensure developers are easily able to focus purely and simply on writing the code that is required for their own blockchain application and nothing else.

SDK components

Directory Description

Framework

Lisk Framework is an application framework responsible for establishing and maintaining the interactions between the modules of a Lisk blockchain application.

Elements

Lisk Elements is a collection of libraries, each of them implementing some form of blockchain application functionality such as cryptography, transactions, p2p, etc. Each library is designed to be compatible with the Lisk Protocol.

Commander

Lisk Commander is a command line tool which allows the management of a Lisk node instance and interaction with a Lisk compatible network.

Architecture overview

The Lisk SDK operates on the Node.js runtime and consists primarily of an application framework, (Lisk Framework). This consists of a collection of libraries providing blockchain application functionalities (Lisk Elements), and a powerful Command Line Interface (Lisk Commander), which allows developers to manage a Lisk node instance and interact with a Lisk compatible network.

The following diagram provides a high level overview of the architecture:

Diagram

Usage

Dependencies

Before running Lisk SDK, the following dependencies shown below need to be installed in order to run applications created with the Lisk SDK:

Dependencies Version

Node.js

v12

PostgreSQL

10+

Redis (optional)

5+

Python

2

Further details on installing these dependencies can be found in the pre-installation setup guide.

Please be aware that primarily it is necessary to create a database. The default database name is lisk_dev, so for the development purposes, a command createdb lisk_dev --owner lisk can be used for the set up. The default database user and password are lisk and password, they can be both changed in the configuration of the Lisk SDK.

Installation

Installation of the Lisk Alpha SDK is straightforward and only requires adding a single NPM package lisk-sdk to your Node.js project as shown below:

npm install lisk-sdk

Lisk SDK is an all-in-one package that provides the tools to create, run and maintain blockchain applications in JavaScript.

In the case whereby only a specific functionality is required, it is possible to install only the relevant package as shown below:

npm install lisk-commander (1)
npm install @liskhq/lisk-transactions (2)
npm install @liskhq/lisk-cryptography (3)
npm install @liskhq/lisk-api-client (4)
1 Install Lisk Commander.
2 Install Lisk Elements transactions package.
3 Install Lisk Elements cryptography package.
4 Install Lisk Elements API client package.

Getting started

To get started with the Lisk SDK and the development of a blockchain application, please refer to the following sections in the documentation:

How-to guides

The Guides section offers dedicated 'how-to guides' which cover all of the relevant topics required to build a blockchain application with the Lisk SDK.

The guides are arranged in chronological order, however they can also be read separately as well as being used as a source to locate certain commands or code snippets.

Tutorials

The Tutorials explain in detail how to build a specific blockchain application. All examples provided in the tutorials describe how to implement simple, but valid industry use cases.

The tutorials overview page provides an informative overview about all existing tutorials, including the estimated time and the skill level required to complete each specific tutorial.

All code for the example apps that is used in the tutorials is also available in the lisk-sdk-examples repository on GitHub.

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.