Skip to main content

Running a Development Node

How to run Orbinum on your own machine: a single dev node, or a small local network with two validators.

Before you start

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)
ConsensusAura timed blocks; instant seal with --sealing instantAura between the nodes you start
DataTemporary with --tmpTemporary or persistent
AccountsAlice, Bob, Charlie, Dave, Eve and Ferdie, pre-fundedSame
EVM chain ID4242

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
Development seeds are public

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
Development Only

-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.