Running a Development Node
How to run Orbinum on your own machine: a single dev node, or a small local network with two validators.
Complete Installation first. This page covers local development only — to join the testnet, see Becoming a Validator or Public RPC Node.
What development mode gives you
Development (--dev) | Local network (--chain local) | |
|---|---|---|
| Consensus | Aura timed blocks; instant seal with --sealing instant | Aura between the nodes you start |
| Data | Temporary with --tmp | Temporary or persistent |
| Accounts | Alice, Bob, Charlie, Dave, Eve and Ferdie, pre-funded | Same |
| EVM chain ID | 42 | 42 |
Neither talks to the testnet. Both give you a chain you fully control.
Development Mode
The examples use $ORB for the image. Export it once:
export ORB=ghcr.io/orbinum/node:testnet-latest
Basic Development Node
docker run --rm $ORB --dev --tmp
--tmp clears the chain state on every start. Add --sealing instant for a
block per transaction instead of timed blocks.
Pre-funded Development Accounts
--dev funds the standard Substrate development accounts — Alice, Bob, Charlie,
Dave, Eve and Ferdie. Alice is:
5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY
They derive from well-known seeds (//Alice, //Bob, …), so any wallet or the
subkey tool reproduces them:
docker run --rm $ORB key inspect //Bob
Everyone knows these keys. Never use them on testnet or mainnet, and never send anything of value to one.
With Persistent Data
To keep state between restarts, mount a host directory (or a named volume):
docker run --rm -v "$PWD/data:/data" $ORB \
--dev --base-path /data
Enable External RPC Access
To connect from Polkadot.js Apps or external wallets, publish the RPC port:
docker run --rm -p 9944:9944 $ORB \
--dev --tmp \
--rpc-cors all \
--rpc-external
-p 9944:9944 with --rpc-external exposes the full RPC, including unsafe
methods — the binary always enables them (see
Node Flags). Local development only.
With Ethereum RPC APIs
For EVM development (MetaMask, Hardhat, etc.):
docker run --rm -p 9944:9944 $ORB \
--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)
Local Multi-Node Testnet
To simulate a small network locally with the well-known --alice / --bob
keys, run two containers on a shared Docker network:
docker network create orbinum-local
Node 1 (Alice — bootnode):
docker run --rm --name alice --network orbinum-local \
-p 9944:9944 $ORB \
--chain local --alice --tmp \
--port 30333 --rpc-port 9944
Copy the Local node identity from Alice's logs (format 12D3KooW...).
Node 2 (Bob):
docker run --rm --name bob --network orbinum-local \
-p 9945:9944 $ORB \
--chain local --bob --tmp \
--port 30333 --rpc-port 9944 \
--bootnodes /dns/alice/tcp/30333/p2p/<ALICE_PEER_ID>
Replace <ALICE_PEER_ID> with the identity from Alice's logs. Both nodes
discover each other over the orbinum-local network and finalize blocks
together.
Flags, logging and custom chain specs: Node Flags.