Running a Node
Complete operational guide for running Orbinum nodes in development, testnet, and production modes.
Make sure you've completed the Installation before continuing.
Node Modes Overview
| Mode | Use Case | Data Persistence | Consensus | Pre-funded Accounts |
|---|---|---|---|---|
| Development | Local testing | Temporal (with --tmp) | Instant seal | Alice, Bob, Charlie |
| Testnet | Integration testing | Persistent | Multi-validator | No (requires faucet) |
| Production | Mainnet | Persistent | Multi-validator | No |
Development Mode
Mode for local development with instant seal (produces blocks without consensus).
Basic Development Node
./target/release/orbinum-node --dev --tmp
Flags:
--dev: Activates development chain spec with pre-funded accounts--tmp: Stores data in temporary directory (cleared on restart)
Features:
- Produces blocks instantly (doesn't wait for consensus)
- Clean chain state on each start
- Ideal for quick testing
Pre-funded Development Accounts
| Account | Substrate Address | Balance Inicial |
|---|---|---|
| Alice | 5GrwvaEF... | 1,000,000 ORB |
| Bob | 5FHneW46... | 1,000,000 ORB |
| Charlie | 5FLSigC9... | 1,000,000 ORB |
With Persistent Data
To maintain state between restarts:
./target/release/orbinum-node --dev --base-path ./data
Enable External RPC Access
To connect from Polkadot.js Apps or external wallets:
./target/release/orbinum-node \
--dev \
--tmp \
--rpc-cors all \
--rpc-methods Unsafe \
--rpc-external
--rpc-methods Unsafe enables dangerous methods. Never use this in production.
With Ethereum RPC APIs
For EVM development (MetaMask, Hardhat, etc.):
./target/release/orbinum-node \
--dev \
--tmp \
--rpc-cors all \
--rpc-external \
--ethapi=debug,trace,txpool
Available endpoints:
- Substrate RPC:
ws://127.0.0.1:9944 - Ethereum RPC:
http://127.0.0.1:9944(JSON-RPC compatible)
Testnet Mode
Docker Deployment (Recommended)
The simplest way to run a testnet node:
cd docker/testnet
docker-compose up -d
Container management:
# View logs in real-time
docker-compose logs -f
# Stop node
docker-compose down
# Restart node
docker-compose restart
# View status
docker-compose ps
Configuration: The docker-compose.yml file includes pre-configured testnet settings.
Join Existing Testnet (Binary)
If you compiled from source:
./target/release/orbinum-node \
--chain testnet \
--name "MyNode" \
--base-path /data/orbinum \
--rpc-cors all
Local Multi-Node Testnet
To simulate a multi-node network locally:
Node 1 (Alice - Bootnode):
./target/release/orbinum-node \
--chain local \
--alice \
--base-path /tmp/alice \
--port 30333 \
--rpc-port 9944
Copy the Local node identity from the output (format: 12D3KooW...).
Node 2 (Bob):
./target/release/orbinum-node \
--chain local \
--bob \
--base-path /tmp/bob \
--port 30334 \
--rpc-port 9945 \
--bootnodes /ip4/127.0.0.1/tcp/30333/p2p/<ALICE_PEER_ID>
Replace <ALICE_PEER_ID> with Alice's node identity.
Production Mode
Orbinum mainnet is not yet in production (Q1 2026: MVP/Testnet). This section is for future reference.
Validator Node
Validator node with staking:
./target/release/orbinum-node \
--chain mainnet \
--validator \
--name "MyValidator" \
--base-path /data/orbinum \
--rpc-methods Safe \
--rpc-cors all \
--state-pruning 256
Requirements:
- Minimum stake (TBD)
- Session keys configured
- 99%+ uptime
Archive Node
Stores complete blockchain history:
./target/release/orbinum-node \
--chain mainnet \
--pruning archive \
--base-path /data/orbinum-archive \
--db-cache 4096
Requirements: 200+ GB storage, grows continuously.
Public RPC Node
Public RPC endpoint for dApps:
./target/release/orbinum-node \
--chain mainnet \
--rpc-external \
--rpc-cors all \
--rpc-methods Safe \
--rpc-max-connections 1000
Configuration Reference
Essential Flags
| Flag | Description | Default |
|---|---|---|
--chain | Chain specification | dev |
--base-path | Data directory | Platform-specific |
--port | P2P port | 30333 |
--rpc-port | RPC port | 9944 |
--ws-port | WebSocket port | 9944 |
--validator | Enable validation | false |
--pruning | State pruning mode | 256 blocks |
--name | Node name | Random |
RPC Configuration
| Flag | Description |
|---|---|
--rpc-external | Listen on all interfaces |
--rpc-cors | CORS origins (use all for dev) |
--rpc-methods | Safe, Unsafe, or Auto |
--rpc-max-connections | Max concurrent connections |
Logging
# Increase verbosity
RUST_LOG=debug ./target/release/orbinum-node --dev
# Specific module logging
RUST_LOG=pallet_shielded_pool=trace ./target/release/orbinum-node --dev
# Log to file
./target/release/orbinum-node --dev 2>&1 | tee node.log
Systemd Service
For production deployments:
# /etc/systemd/system/orbinum.service
[Unit]
Description=Orbinum Node
After=network.target
[Service]
Type=simple
User=orbinum
ExecStart=/usr/local/bin/orbinum-node \
--chain mainnet \
--base-path /data/orbinum \
--validator \
--name "MyValidator"
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Enable and start:
sudo systemctl enable orbinum
sudo systemctl start orbinum
sudo systemctl status orbinum
Monitoring and Observability
Prometheus Metrics
Enable metrics endpoint:
./target/release/orbinum-node \
--dev \
--prometheus-port 9615 \
--prometheus-external
Access: http://localhost:9615/metrics
Available metrics:
- Block height, finalization lag
- Transaction pool size
- Peer connections
- Memory usage, CPU
RPC Health Check
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "system_health", "params":[]}' \
http://localhost:9944
Response:
{
"jsonrpc": "2.0",
"result": {
"peers": 5,
"isSyncing": false,
"shouldHavePeers": true
},
"id": 1
}
Advanced Topics
Custom Chain Spec
To create a custom chain spec:
# Generate spec in JSON format
./target/release/orbinum-node build-spec --chain local > custom-spec.json
# Convert to raw format
./target/release/orbinum-node build-spec --chain custom-spec.json --raw > custom-spec-raw.json
# Use the spec
./target/release/orbinum-node --chain custom-spec-raw.json
Database Backend
Orbinum uses RocksDB by default. To change:
# Use ParityDB (experimental)
./target/release/orbinum-node --dev --database paritydb
Telemetry
Send telemetry to public server:
./target/release/orbinum-node \
--chain mainnet \
--name "MyNode" \
--telemetry-url "wss://telemetry.polkadot.io/submit/ 0"
Next Steps
- Quick Start - Perform your first transaction
- Wallet CLI - Use the command-line wallet