Benchmark Ethereum Pallet (#149)
* Add skeleton for worst case import_unsigned_header * Fix a typo * Add benchmark test for best case unsigned header import * Add finality verification to worst case bench * Move `insert_header()` from mock to test_utils Allows the benchmarking code to use this without having to pull it in from the mock. * Add a rough bench to test a finalizing a "long" chain * Try to use complexity parameter for finality bench * Improve long finality bench * Remove stray dot file * Remove old "worst" case bench * Scribble some ideas down for pruning bench * Prune headers during benchmarking * Clean up some comments * Make finality bench work for entire range of complexity parameter * Place initialization code into a function * Add bench for block finalization with caching * First attempt at bench with receipts * Try and trigger validator set change * Perform a validator set change during benchmarking * Move `validators_change_receipt()` to shared location Allows unit tests and benchmarks to access the same helper function and const * Extract a test receipt root into a constant * Clean up description of pruning bench * Fix cache and pruning tests * Remove unecessary `build_custom_header` usage * Get rid of warnings * Remove code duplication comment I don't think its entirely worth it to split out so few lines of code. The benches aren't particularly hard to read anyways. * Increase the range of the complexity parameter * Use dynamic number of receipts while benchmarking As part of this change we have removed the hardcoded TEST_RECEIPT_ROOT and instead chose to calculate the receipt root on the fly. This will make tests and benches less fragile. * Prune a dynamic number of headers
Showing
- bridges/bin/node/runtime/src/lib.rs 22 additions, 0 deletionsbridges/bin/node/runtime/src/lib.rs
- bridges/modules/ethereum/src/benchmarking.rs 225 additions, 12 deletionsbridges/modules/ethereum/src/benchmarking.rs
- bridges/modules/ethereum/src/import.rs 2 additions, 4 deletionsbridges/modules/ethereum/src/import.rs
- bridges/modules/ethereum/src/lib.rs 7 additions, 1 deletionbridges/modules/ethereum/src/lib.rs
- bridges/modules/ethereum/src/mock.rs 2 additions, 17 deletionsbridges/modules/ethereum/src/mock.rs
- bridges/modules/ethereum/src/test_utils.rs 40 additions, 1 deletionbridges/modules/ethereum/src/test_utils.rs
- bridges/modules/ethereum/src/validators.rs 6 additions, 25 deletionsbridges/modules/ethereum/src/validators.rs
- bridges/modules/ethereum/src/verification.rs 10 additions, 10 deletionsbridges/modules/ethereum/src/verification.rs
- bridges/primitives/ethereum-poa/src/lib.rs 1 addition, 1 deletionbridges/primitives/ethereum-poa/src/lib.rs
Please register or sign in to comment