Build, run & test using source code

This guide will walk you through:

  • building the blockchain node from source code,

  • running a local development instance, which spawns a new single-node testnet,

  • interacting with development instance,

  • running automated tests.

Install dependencies

For Ubuntu & Debian derivatives:

sudo apt update
sudo apt install build-essential git clang curl libssl-dev llvm libudev-dev make protobuf-compiler pkg-config

Next install Rust itself. Run and follow prompts:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default stable

And install WASM target:

rustup target add wasm32-unknown-unknown

See Substrate docsarrow-up-right for detailed guide and other platforms.

Fetch latest source code

Development of Liberland Blockchain Node happens in two branches:

  • main, which contains latest stable release

  • develop, which contains latest, not yet released as stable changes

To fetch source code, run the following (you may replace main with develop if desired):

Minimum requirements

Make sure you have at least 4 GB of RAM available. If you dont, add whats missing to swap. Adding swap for ubuntuarrow-up-right Note that this will fix some out of memory build errors, but will significantly prolong the build.

Build the node

To build the node, run:

Note that this will likely take a long time. If everything goes correctly, you'll see:

And will be able to run the node using built executable (output might differ slightly):

Run and interact with development instance

To run a development instance of Liberland node, execute:

Development instance is a single-node testnet, in which standard development accounts (Alice, Bob, etc.) are endowed with assets. To interact with it, visit Polkadot.js Appsarrow-up-right.

Run automated tests

Liberland Blockchain node is comprehensively covered with automated unit tests. To run them, execute:

As these typically take a long time, you can also choose to run tests only for specific pallets. Here's example for the legislation pallet:

Last updated