Skip to main content

Installation

Complete installation guide for Orbinum node, including prerequisites, dependencies, and circuit artifacts.


System Requirements

Hardware

ComponentMinimumRecommended
CPU4 cores8+ cores
RAM4 GB8+ GB
Storage20 GB SSD50+ GB NVMe
OSLinux, macOS, WSL2Ubuntu 22.04

Software Dependencies

ToolVersionPurpose
Rust1.81+Substrate compiler
Git2.xVersion control
Clang/LLVM14+WASM compilation
CMake3.xBuild system
OpenSSL1.1+Cryptographic functions

Installation Steps

1. Install Rust Toolchain

Install Rust using rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

Verify installation:

rustc --version  # Should show 1.81+
cargo --version

The project includes rust-toolchain.toml that automatically configures the correct toolchain and wasm32-unknown-unknown target.


2. Clone Repository

git clone https://github.com/orbinum/node.git orbinum-node
cd orbinum-node

Repository structure:

orbinum-node/
├── Cargo.toml # Workspace configuration
├── Makefile # Build commands
├── rust-toolchain.toml # Rust toolchain
├── artifacts/ # Circuit artifacts (*.wasm, *.ark, *.zkey)
├── client/ # Node client & RPC
├── frame/ # Pallets (shielded-pool, zk-verifier, evm, etc.)
├── primitives/ # Core libraries (zk-core, zk-circuits, etc.)
├── precompiles/ # EVM precompiles
├── scripts/ # Build & setup scripts
└── template/ # Node & runtime templates

3. Download Circuit Artifacts

ZK circuits (disclosure, transfer, unshield) are hosted in a separate repository and distributed as precompiled artifacts.

Download artifacts:

./scripts/sync-circuit-artifacts.sh v0.1.0

This script:

  • Downloads orbinum-circuits-v0.1.0.tar.gz from circuits/releases
  • Extracts artifacts to artifacts/ (.wasm, .ark, .zkey, verification keys)
  • Generates Rust files for verification keys in primitives/zk-verifier/src/vk/
No compilation required

The node reads circuits as bytes from artifacts/. You don't need to compile circuits manually or install Node.js/Circom.


4. Setup Development Tools

Install additional tooling (taplo for TOML formatting):

make setup

5. Build the Node

Build in release mode (optimized):

cargo build --release

Or using Makefile:

make build-release

Estimated time: 15-30 minutes on first compilation.

Resulting binary:

target/release/orbinum-node

Verification

Check Binary Version

./target/release/orbinum-node --version

Run Tests (Optional)

cargo test --workspace --lib

Quick Smoke Test

./target/release/orbinum-node --dev --tmp

If you see blocks being produced (🏁 Block #1, 🏁 Block #2), installation is correct.

Stop the node with: Ctrl+C


Platform-Specific Setup

Ubuntu/Debian

sudo apt update
sudo apt install -y \
build-essential \
clang \
cmake \
curl \
git \
libssl-dev \
pkg-config \
protobuf-compiler

macOS

# Install Xcode Command Line Tools
xcode-select --install

# Install dependencies via Homebrew
brew install cmake openssl protobuf

Arch Linux

sudo pacman -S base-devel clang cmake openssl protobuf

Docker Alternative

If you prefer not to compile locally, you can use Docker:

cd docker/testnet
docker-compose up -d

The Dockerfile downloads circuit artifacts automatically.

More info: See Running a Node.


Troubleshooting

Common Build Errors

ErrorSolution
linker 'cc' not foundInstall build-essential (Ubuntu) or base-devel (Arch)
wasm32 target not foundAutomatic with rust-toolchain.toml, or manually: rustup target add wasm32-unknown-unknown
protobuf not foundInstall protobuf-compiler (Linux) or protobuf (macOS)
Out of memory during buildReduce parallel jobs: cargo build --release -j 2
couldn't read artifacts/*.arkRun ./scripts/sync-circuit-artifacts.sh v0.1.0

Verification Failed

If cargo test fails on ZK tests:

# Verify artifacts exist
ls -lh artifacts/

# Re-sync artifacts
./scripts/sync-circuit-artifacts.sh v0.1.0

# Re-run tests
cargo test --package pallet-shielded-pool

Next Steps