polkadot-omni-node

Crates.iopolkadot-omni-node
lib.rspolkadot-omni-node
version0.9.0
created_at2024-10-08 12:49:49.590991+00
updated_at2025-08-19 15:55:03.70911+00
descriptionGeneric binary that can run a parachain node with u32 block number and Aura consensus
homepagehttps://paritytech.github.io/polkadot-sdk/
repositoryhttps://github.com/paritytech/polkadot-sdk.git
max_upload_size
id1401106
size423,034
Parity Crate Owner (parity-crate-owner)

documentation

README

Polkadot Omni Node

This is a white labeled implementation based on polkadot-omni-node-lib. It can be used to start a parachain node from a provided chain spec file. It is only compatible with runtimes that use block number u32 and Aura consensus.

Installation

Download & expose it via PATH:

# Download and set it on PATH.
wget https://github.com/paritytech/polkadot-sdk/releases/download/<stable_release_tag>/polkadot-omni-node
chmod +x polkadot-omni-node
export PATH="$PATH:`pwd`"

Compile & install via cargo:

# Assuming ~/.cargo/bin is on the PATH
cargo install polkadot-omni-node --locked

Usage

A basic example for an Omni Node run starts from a runtime which implements the sp_genesis_builder::GenesisBuilder. The interface mandates the runtime to expose a named-preset.

1. Install chain-spec-builder

Note: chain-spec-builder binary is published on crates.io under staging-chain-spec-builder due to a name conflict. Install it with cargo like bellow :

cargo install staging-chain-spec-builder --locked

2. Generate a chain spec

Omni Node requires the chain spec to include a JSON key named relay_chain. It is set to a chain id, representing the chain name, e.g. westend, paseo, rococo, polkadot, or kusama, but there are also local variants that can be used for testing, like rococo-local or westend-local. The local variants are available only for a build of polkadot-omni-node with westend-native and rococo-native features respectively.

Additionaly, although deprecated, the --para-id flag can still be used to set the JSON key named para_id. The removal of the flag will happen starting with stable2512. The alternative of not using it is to implement the cumulus_primitives_core::GetParachainInfo runtime API for the runtime, and upgrade it on-chain as well, to be compatible with nodes released starting with stable2512.

Example command bellow:

chain-spec-builder create --relay-chain <relay_chain_id> --para-id <id> -r <runtime.wasm> named-preset <preset_name>

3. Run Omni Node

And now with the generated chain spec we can start the node in development mode like so:

polkadot-omni-node --dev --chain <chain_spec.json>

Useful links

Commit count: 19113

cargo fmt