Skip to main content

Installation

This guide covers the prerequisites and installation steps for building and running an Orbinum node.


Table of Contents


Prerequisites

System Requirements

ComponentMinimumRecommended
CPU4 cores8+ cores
RAM8 GB16+ GB
Storage50 GB SSD200+ GB NVMe
OSLinux, macOSUbuntu 22.04

Required Tools

ToolVersionPurpose
Rust1.74+Compiler
Node.js18+Circuit tooling
Git2.xVersion control
Clang14+WASM compilation

Rust Installation

Install Rustup

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

Configure Toolchain

The project includes a rust-toolchain.toml that automatically configures the correct version:

# rust-toolchain.toml
[toolchain]
channel = "stable"
components = ["rustfmt", "clippy"]
targets = ["wasm32-unknown-unknown"]

Verify Installation

rustc --version
# rustc 1.74.0 (79e9716c9 2023-11-13)

cargo --version
# cargo 1.74.0 (ecb9851af 2023-10-18)

Install WASM Target

rustup target add wasm32-unknown-unknown

Node.js Setup

Node.js is required for circuit compilation and testing.

# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# Install Node.js
nvm install 18
nvm use 18

Verify Installation

node --version
# v18.x.x

npm --version
# 9.x.x

Install Circuit Dependencies

cd circuits
npm install

Clone Repository

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

Repository Structure

orbinum-node-2/
├── Cargo.toml # Workspace manifest
├── Makefile # Build shortcuts
├── rust-toolchain.toml # Rust version
├── circuits/ # ZK circuits
├── client/ # Node client
├── frame/ # Pallets
├── primitives/ # Core libraries
└── template/ # Node template

Build Node

Using Cargo

# Debug build (faster compilation)
cargo build

# Release build (optimized)
cargo build --release

Using Make

# Build release
make build

# Build with all features
make build-all

Build Output

target/
├── debug/
│ └── orbinum-node
└── release/
└── orbinum-node # Production binary

Build Times

Build TypeTimeSize
Debug~5 min~500 MB
Release~15 min~100 MB

Verify Installation

Run Tests

cargo test --workspace

Check Binary

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

Run Development Node

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

Expected output:

2024-01-01 00:00:00 Orbinum Node
2024-01-01 00:00:00 ✌️ version x.x.x
2024-01-01 00:00:00 ❤️ by Orbinum Team
2024-01-01 00:00:00 📋 Chain specification: Development
2024-01-01 00:00:00 🏷 Node name: ...
2024-01-01 00:00:00 💾 Database: RocksDb at /tmp/...
2024-01-01 00:00:00 ⛓ Native runtime: orbinum-runtime-1

Troubleshooting

Common Issues

IssueSolution
linker 'cc' not foundInstall build-essential: apt install build-essential
wasm32 target not foundRun: rustup target add wasm32-unknown-unknown
protobuf not foundInstall protobuf: apt install protobuf-compiler
Out of memoryAdd swap or reduce parallel jobs: cargo build -j 2

macOS Specific

# Install Xcode command line tools
xcode-select --install

# Install Homebrew dependencies
brew install openssl protobuf

Linux Specific

# Ubuntu/Debian
sudo apt update
sudo apt install -y \
build-essential \
clang \
curl \
git \
libssl-dev \
pkg-config \
protobuf-compiler

Next Steps