Skip to content
  • Oliver Tale-Yazdi's avatar
    [FRAME] Runtime Omni Bencher (#3512) · 9543d314
    Oliver Tale-Yazdi authored
    This MR contains two major changes and some maintenance cleanup.  
    
    ## 1. Free Standing Pallet Benchmark Runner
    
    Closes https://github.com/paritytech/polkadot-sdk/issues/3045, depends
    on your runtime exposing the `GenesisBuilderApi` (like
    https://github.com/paritytech/polkadot-sdk/pull/1492).
    
    Introduces a new binary crate: `frame-omni-bencher`.  
    It allows to directly benchmark a WASM blob - without needing a node or
    chain spec.
    
    This makes it much easier to generate pallet weights and should allow us
    to remove bloaty code from the node.
    It should work for all FRAME runtimes that dont use 3rd party host calls
    or non `BlakeTwo256` block hashing (basically all polkadot parachains
    should work).
    
    It is 100% backwards compatible with the old CLI args, when the `v1`
    compatibility command is used. This is done to allow for forwards
    compatible addition of new commands.
    
    ### Example (full example in the Rust docs)
    
    Installing the CLI:
    ```sh
    cargo install --locked --path subs...
    9543d314