How to Build and Run a integritee-node

You don't need SGX to run a node (only workers do).


Install Rust:

curl -sSf | sh

In order to compile ring into wasm, you'll need LLVM-9 or above or you'll get linker errors. Here the instructions for Ubuntu 18.04

chmod +x
sudo ./ 10
export CC=/usr/bin/clang-10
export AR=/usr/bin/llvm-ar-10
# if you already built, make sure to run cargo clean

Initialize your Wasm Build environment:

rustup show

Build Wasm and native code:

cargo build --release

with docker

If you prefer to skip the setup, you can just use our docker and build the node like this (run in the repo root):

docker pull integritee/integritee-dev:0.1.7
docker run -it -v $(pwd):/root/work integritee/integritee-dev:0.1.7 /bin/bash
rustup show
cargo build --release


Single Node Development Chain

Purge any existing developer chain state:

./target/release/integritee-node purge-chain --dev

Start a development chain with:

./target/release/integritee-node --dev

If you want the integritee-node to expose a different websocket port, use the option --ws-port xxx. If external workers or clients need to access, add the option --ws-external.

Detailed logs may be shown by running the node with the following environment variables set: RUST_LOG=debug RUST_BACKTRACE=1 cargo run -- --dev.

Node as a System Service

If you want to run your node as a system service in Linux, create (as root or user with sudo permissions) a file in /etc/systemd/system called integritee-node.service with the following content:

Description=Integritee Node

ExecStart=<ABSOLUTE PATH TO>/integritee-node --chain <PATH TO CHAIN JSON> --name <NAME OF THE NODE>



  • StartLimitIntervalSec makes that systemd will try to re-start the service forever.
  • RestartSec indicates the interval between two restarts.
  • User specifies the user that should run the node.
  • ExecStart specifies the path to the binary. Use absolute paths here.

Update the systemd daemon with systemctrl daemon-reload.

Use the following commands:

  • systemctrl start integritee-node.service to start the node.
  • systemctrl stop integritee-node.service to stop the node.
  • systemctrl status integritee-node.service to check the status of the node/service.