3

Hello guys I've been trying to benchmark my runtime but I keep stumbling on this error, so far I've tested it with balances, collective and babe, and I get the same error message. Most likely it's going to happen for all of the pallets:

./target/release/substrate benchmark --chain test.json --execution=wasm --wasm-execution=compiled --pallet pallet_babe --extrinsic='*' --steps 50 --repeat 20 --output weights/
2022-03-18 16:01:02 [0] 💸 generated 0 npos voters, 0 from validators and 0 nominators    
2022-03-18 16:01:02 [0] 💸 generated 0 npos voters, 0 from validators and 0 nominators    
Error: Input("Error getting benchmark list: Other(\"Exported method Benchmark_benchmark_metadata is not found\")")

Ideally, I would like to generate WeightInfo for all my pallets at one go, not one by one, which is what the answers on this question state. So my understanding is I need to run this command one by one for each pallet that I've included in my runtime only if I can get this to work.

2
  • Your invocation looks good. Did you compile the binary with --features=runtime-benchmarks? Mar 18, 2022 at 10:42
  • Yes indeed. Compilation was successful. Mar 18, 2022 at 11:38

1 Answer 1

2

The issue here is probably that --chain test.json was not created using the --runtime-benchmarks feature flag.

Note that your --chain flag inputs your chains genesis, and inside that genesis is the Wasm for your chain on block zero. If that Wasm does not have the benchmarking enabled in it, you will see the error you are having.

Instead, you should regenerate the test.json or run your benchmarks against something like --chain=dev, where the genesis and Wasm are automatically regenerated at compile time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.