🧪 Benchmarking a Server for Substrate/Polkadot

Automatic Installation

source <(curl -s https://raw.githubusercontent.com/validexisinfra/polkadot/main/install-benchmark.sh)

Manual Installation

Installing Rust and Dependencies

sudo apt update && sudo apt install -y build-essential clang cmake pkg-config libssl-dev git curl unzip protobuf-compiler libclang-dev llvm-dev && curl https://sh.rustup.rs -sSf | sh -s -- -y && source $HOME/.cargo/env && rustup update stable && rustup target add wasm32-unknown-unknown && rustup component add rust-src

curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env
rustup update stable

rustup target add wasm32-unknown-unknown
rustup component add rust-src

Install the benchmarking tool

cargo install frame-omni-bencher

Check that the installed version is available

Clone Polkadot SDK

Run build with the feature flag included

Locate the generated .wasm

Expected output:

  • Westend:

    • target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm

  • Rococo:

    • target/release/wbuild/rococo-runtime/rococo_runtime.compact.compressed.wasm

Download the frame-weight template

Run the benchmarking tool to measure extrinsic weights

Result

Benchmark results will be saved in weights.rs

This file contains execution weights for the pallet's extrinsics, useful for evaluating node performance or preparing validator applications.

Run hardware benchmark

To benchmark server hardware performance:

This command evaluates system performance and prints results in the console.

Last updated