Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unique salt generation #973

Merged
merged 23 commits into from Jun 16, 2022
Merged

Unique salt generation #973

merged 23 commits into from Jun 16, 2022

Conversation

montaglue
Copy link
Contributor

@montaglue montaglue commented May 26, 2022

Resolves #693.

  • added static mut counter
  • and wrapped it in function

Release Notes: Before, the user had to specify the salt manually when creating a program from the program by calling gstd::prog::create_program function. Now one may use the ProgramGenerator::create_program function instead which calculates the salt automatically. This takes the hassle out of keeping track of salt uniqueness from the user.

@codecov
Copy link

codecov bot commented May 26, 2022

Codecov Report

Merging #973 (4af5193) into master (333b37a) will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #973      +/-   ##
==========================================
+ Coverage   74.22%   74.25%   +0.02%     
==========================================
  Files          89       89              
  Lines        8815     8813       -2     
==========================================
+ Hits         6543     6544       +1     
+ Misses       2272     2269       -3     
Impacted Files Coverage Δ
pallets/gear/src/lib.rs 58.73% <0.00%> (+0.15%) ⬆️
core/src/gas.rs 91.89% <0.00%> (+1.35%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 333b37a...4af5193. Read the comment docs.

gstd/src/common/primitives.rs Outdated Show resolved Hide resolved
gstd/src/prog/default_salt.rs Outdated Show resolved Hide resolved
gstd/src/prog/default_salt.rs Outdated Show resolved Hide resolved
gstd/src/prog/default_salt.rs Outdated Show resolved Hide resolved
gstd/src/prog/default_salt.rs Outdated Show resolved Hide resolved
gstd/src/prog/default_salt.rs Outdated Show resolved Hide resolved
@breathx
Copy link
Member

breathx commented May 26, 2022

Docs should also be provided!

Copy link
Member

@techraed techraed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have 2 main suggestions:

  1. Introduce some kind of ProgramCreator (or other suitable name). The idea is described in the comment.
  2. Try isolating unsafe code by wrapping it into safe functions and the using these safe functions with other safe code.

gstd/src/prog/default_salt.rs Outdated Show resolved Hide resolved
gstd/src/prog/default_salt.rs Outdated Show resolved Hide resolved
@github-actions
Copy link
Contributor

github-actions bot commented May 31, 2022

919530b
Pallet tests (values are in nanosegconds)

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 41 000 000; +105.00% ❗ 20 000 000 33 830 000 (16 000 000; 30 500 000) 6 000 000 379 000 000
tests::all_keys_are_cleared 64 000 000; +116.95% ❗ 29 500 000 43 690 000 (24 000 000; 41 500 000) 10 000 000 460 000 000
tests::limit_vs_origin 41 000 000; +41.38% ❗ 29 000 000 40 950 000 (24 000 000; 36 500 000) 8 000 000 496 000 000
tests::long_chain 21 000 000; -32.26% ✔️ 31 000 000 40 950 000 (22 500 000; 38 500 000) 8 000 000 360 000 000
tests::simple_value_tree 31 000 000; +6.90% ✔️ 29 000 000 39 410 000 (21 000 000; 40 500 000) 9 000 000 293 000 000
tests::split_with_no_value 111 000 000; +282.76% ❗ 29 000 000 40 170 000 (21 000 000; 39 000 000) 10 000 000 238 000 000
tests::sub_nodes_tree 38 000 000; +35.71% ❗ 28 000 000 37 380 000 (20 000 000; 38 000 000) 10 000 000 266 000 000
tests::sub_nodes_tree_with_spends 34 000 000; +17.24% ✔️ 29 000 000 37 750 000 (20 000 000; 37 000 000) 9 000 000 286 000 000
tests::subtree_gas_limit_remains_intact 22 000 000; -33.33% ✔️ 33 000 000 43 670 000 (24 500 000; 41 500 000) 9 000 000 327 000 000
tests::value_tree_known_errors 41 000 000; +32.26% ❗ 31 000 000 40 800 000 (25 000 000; 40 500 000) 13 000 000 277 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 15 000 000; -33.33% ✔️ 22 500 000 30 690 000 (15 000 000; 32 000 000) 7 000 000 333 000 000
schedule::test::print_test_schedule 20 000 000; -16.67% ✔️ 24 000 000 31 840 000 (17 500 000; 33 000 000) 7 000 000 249 000 000
tests::block_gas_limit_works 47 000 000; +13.25% ✔️ 41 500 000 52 340 000 (33 000 000; 56 500 000) 20 000 000 362 000 000
tests::claim_value_from_mailbox_works 26 000 000; -35.00% ✔️ 40 000 000 53 280 000 (31 000 000; 55 000 000) 16 000 000 248 000 000
tests::defer_program_initialization 89 000 000; +17.11% ✔️ 76 000 000 88 860 000 (62 000 000; 91 500 000) 45 000 000 496 000 000
tests::distributor_distribute 59 000 000; -16.31% ✔️ 70 500 000 87 770 000 (61 000 000; 83 500 000) 42 000 000 352 000 000
tests::distributor_initialize 84 000 000; +42.37% ❗ 59 000 000 71 900 000 (46 000 000; 77 000 000) 29 000 000 279 000 000
tests::events_logging_works 43 000 000; +3.61% ✔️ 41 500 000 59 740 000 (31 000 000; 53 000 000) 13 000 000 538 000 000
tests::exit_handle 40 000 000; -2.44% ✔️ 41 000 000 52 560 000 (30 000 000; 53 000 000) 14 000 000 354 000 000
tests::exit_init 72 000 000; +30.91% ❗ 55 000 000 76 050 000 (45 500 000; 67 000 000) 29 000 000 678 000 000
tests::gas_spent_precalculated 37 000 000; -5.13% ✔️ 39 000 000 54 750 000 (30 000 000; 48 500 000) 16 000 000 677 000 000
tests::gas_spent_vs_balance 79 000 000; -6.51% ✔️ 84 500 000 102 330 000 (70 500 000; 106 000 000) 36 000 000 445 000 000
tests::init_message_logging_works 26 000 000; -35.80% ✔️ 40 500 000 51 130 000 (31 000 000; 56 000 000) 10 000 000 281 000 000
tests::lazy_pages 38 000 000; -2.56% ✔️ 39 000 000 59 230 000 (30 500 000; 58 000 000) 14 000 000 685 000 000
tests::mailbox_works 43 000 000; +10.26% ✔️ 39 000 000 49 630 000 (29 500 000; 52 500 000) 8 000 000 199 000 000
tests::memory_access_cases 38 000 000; +2.70% ✔️ 37 000 000 49 260 000 (31 000 000; 53 500 000) 10 000 000 245 000 000
tests::messages_processing_works 34 000 000; -18.07% ✔️ 41 500 000 51 010 000 (30 000 000; 52 000 000) 12 000 000 275 000 000
tests::messages_to_paused_program_skipped 30 000 000; -40.59% ✔️ 50 500 000 65 280 000 (42 500 000; 63 000 000) 22 000 000 308 000 000
tests::messages_to_uninitialized_program_wait 58 000 000; +7.41% ✔️ 54 000 000 62 910 000 (42 500 000; 70 500 000) 18 000 000 234 000 000
tests::paused_program_keeps_id 80 000 000; +40.35% ✔️ 57 000 000 75 060 000 (45 000 000; 83 500 000) 25 000 000 373 000 000
tests::program_lifecycle_works 44 000 000; +12.82% ✔️ 39 000 000 52 470 000 (30 000 000; 61 500 000) 11 000 000 228 000 000
tests::program_messages_to_paused_program_skipped 104 000 000; +22.35% ✔️ 85 000 000 104 040 000 (71 500 000; 111 500 000) 32 000 000 322 000 000
tests::replies_to_paused_program_skipped 55 000 000; +6.80% ✔️ 51 500 000 68 810 000 (43 500 000; 73 500 000) 19 000 000 410 000 000
tests::restrict_start_section 47 000 000; +16.05% ✔️ 40 500 000 50 460 000 (31 500 000; 55 000 000) 8 000 000 328 000 000
tests::resume_program_works 100 000 000; +10.50% ✔️ 90 500 000 106 710 000 (65 500 000; 112 000 000) 42 000 000 634 000 000
tests::send_message_expected_failure 42 000 000; -12.50% ✔️ 48 000 000 60 900 000 (36 000 000; 70 000 000) 10 000 000 308 000 000
tests::send_message_works 29 000 000; -34.83% ✔️ 44 500 000 51 650 000 (32 500 000; 63 500 000) 14 000 000 184 000 000
tests::send_reply_failure_to_claim_from_mailbox 35 000 000; -32.04% ✔️ 51 500 000 60 740 000 (34 500 000; 69 500 000) 11 000 000 332 000 000
tests::send_reply_value_claiming_works 78 000 000; +56.00% ❗ 50 000 000 59 450 000 (37 500 000; 68 000 000) 9 000 000 237 000 000
tests::send_reply_works 39 000 000; -18.75% ✔️ 48 000 000 64 210 000 (35 500 000; 69 000 000) 8 000 000 310 000 000
tests::spent_gas_to_reward_block_author_works 37 000 000; -14.94% ✔️ 43 500 000 52 170 000 (32 000 000; 60 000 000) 14 000 000 258 000 000
tests::submit_program_expected_failure 31 000 000; -36.08% ✔️ 48 500 000 57 870 000 (35 500 000; 68 000 000) 13 000 000 236 000 000
tests::submit_program_fails_on_duplicate_id 36 000 000; -26.53% ✔️ 49 000 000 55 280 000 (31 500 000; 70 000 000) 18 000 000 228 000 000
tests::test_code_is_not_reset_within_program_submission 23 000 000; -53.06% ✔️ 49 000 000 54 510 000 (34 000 000; 63 000 000) 8 000 000 148 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 48 000 000; -9.43% ✔️ 53 000 000 58 250 000 (38 000 000; 68 500 000) 15 000 000 272 000 000
tests::test_code_submission_pass 32 000 000; -31.18% ✔️ 46 500 000 57 310 000 (36 000 000; 68 500 000) 12 000 000 259 000 000
tests::test_create_program_duplicate 97 000 000; -9.35% ✔️ 107 000 000 118 920 000 (87 500 000; 133 500 000) 46 000 000 398 000 000
tests::test_create_program_duplicate_in_one_execution 101 000 000; +18.82% ✔️ 85 000 000 95 560 000 (63 000 000; 106 000 000) 37 000 000 332 000 000
tests::test_create_program_miscellaneous 360 000 000; +241.23% ❗ 105 500 000 116 440 000 (79 000 000; 134 500 000) 51 000 000 407 000 000
tests::test_create_program_no_code_hash 130 000 000; +26.21% ❗ 103 000 000 113 850 000 (85 000 000; 126 500 000) 36 000 000 501 000 000
tests::test_create_program_simple 73 000 000; -29.47% ✔️ 103 500 000 120 590 000 (84 500 000; 127 000 000) 53 000 000 380 000 000
tests::test_create_program_with_exceeding_value 49 000 000; -19.67% ✔️ 61 000 000 70 930 000 (47 500 000; 79 000 000) 23 000 000 312 000 000
tests::test_create_program_with_value_lt_ed 245 000 000; +195.18% ❗ 83 000 000 93 150 000 (66 000 000; 110 000 000) 35 000 000 251 000 000
tests::test_message_processing_for_non_existing_destination 233 000 000; +305.22% ‼️ 57 500 000 63 100 000 (41 000 000; 71 000 000) 20 000 000 232 000 000
tests::test_reply_to_terminated_program 143 000 000; +101.41% ❗ 71 000 000 77 720 000 (55 000 000; 96 000 000) 19 000 000 268 000 000
tests::test_same_code_submission_fails 109 000 000; +84.75% ❗ 59 000 000 62 590 000 (40 500 000; 77 500 000) 15 000 000 196 000 000
tests::test_two_contracts_composition_works 705 000 000; +251.62% ❗ 200 500 000 229 430 000 (173 000 000; 240 500 000) 106 000 000 737 000 000
tests::uninitialized_program_should_accept_replies 166 000 000; +71.13% ❗ 97 000 000 105 460 000 (73 500 000; 123 000 000) 40 000 000 359 000 000
tests::unstoppable_block_execution_works 88 000 000; +37.50% ✔️ 64 000 000 74 400 000 (49 000 000; 88 500 000) 18 000 000 236 000 000
tests::unused_gas_released_back_works 51 000 000; -12.07% ✔️ 58 000 000 66 780 000 (43 000 000; 75 000 000) 21 000 000 204 000 000
tests::wake_messages_after_program_inited 615 000 000; +220.31% ‼️ 192 000 000 209 110 000 (160 500 000; 236 500 000) 104 000 000 569 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 68 000 000; +88.89% ❗ 36 000 000 43 020 000 (25 000 000; 51 000 000) 9 000 000 177 000 000
tests::debug_mode_works 202 000 000; +210.77% ❗ 65 000 000 72 610 000 (51 000 000; 88 500 000) 16 000 000 217 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 49 000 000; +30.67% ✔️ 37 500 000 43 240 000 (22 500 000; 52 000 000) 6 000 000 236 000 000
tests::dequeued_impl_works_manually 62 000 000; +16.98% ✔️ 53 000 000 56 750 000 (37 500 000; 72 500 000) 16 000 000 214 000 000
tests::queue_processing_impl_works_manually 60 000 000; +23.71% ✔️ 48 500 000 54 450 000 (35 000 000; 63 500 000) 13 000 000 212 000 000
tests::queue_works 153 000 000; +218.75% ❗ 48 000 000 55 250 000 (34 000 000; 69 500 000) 11 000 000 288 000 000
tests::sent_impl_works 184 000 000; +291.49% ❗ 47 000 000 55 840 000 (35 000 000; 64 000 000) 9 000 000 300 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 97 000 000; +203.12% ❗ 32 000 000 41 860 000 (20 000 000; 48 000 000) 5 000 000 236 000 000
tests::custom_fee_multiplier_updated_per_block 79 000 000; +64.58% ❗ 48 000 000 59 040 000 (34 500 000; 69 500 000) 14 000 000 317 000 000
tests::fee_rounding_error_bounded_by_multiplier 126 000 000; +149.50% ❗ 50 500 000 54 390 000 (36 500 000; 63 500 000) 11 000 000 178 000 000
tests::mq_size_affecting_fee_works 115 000 000; +144.68% ❗ 47 000 000 59 380 000 (31 500 000; 67 500 000) 8 000 000 298 000 000
tests::mq_size_not_affecting_fee_works 63 000 000; +13.51% ✔️ 55 500 000 61 630 000 (39 500 000; 69 000 000) 15 000 000 249 000 000
tests::query_info_and_fee_details_work 41 000 000; -20.39% ✔️ 51 500 000 58 910 000 (35 500 000; 72 000 000) 12 000 000 236 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 37 000 000; +2.78% ✔️ 36 000 000 43 660 000 (21 000 000; 49 000 000) 5 000 000 204 000 000
tests::pause_program_twice_fails 323 000 000; +492.66% ‼️ 54 500 000 61 530 000 (40 000 000; 69 000 000) 13 000 000 208 000 000
tests::pause_program_works 132 000 000; +83.33% ❗ 72 000 000 76 300 000 (50 000 000; 89 000 000) 18 000 000 272 000 000
tests::pause_terminated_program_fails 40 000 000; -20.00% ✔️ 50 000 000 61 310 000 (38 500 000; 63 500 000) 13 000 000 310 000 000
tests::pause_uninitialized_program_works 181 000 000; +187.30% ❗ 63 000 000 73 480 000 (50 000 000; 83 000 000) 25 000 000 284 000 000
tests::resume_program_twice_fails 104 000 000; +19.54% ✔️ 87 000 000 98 310 000 (68 000 000; 109 000 000) 36 000 000 276 000 000
tests::resume_program_wrong_list_fails 377 000 000; +389.61% ‼️ 77 000 000 84 540 000 (59 000 000; 100 500 000) 27 000 000 285 000 000
tests::resume_program_wrong_memory_fails 160 000 000; +114.77% ❗ 74 500 000 82 520 000 (56 500 000; 97 000 000) 22 000 000 256 000 000
tests::resume_uninitialized_program_works 161 000 000; +117.57% ❗ 74 000 000 90 390 000 (59 000 000; 103 500 000) 28 000 000 379 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 12 000 000; -66.67% ✔️ 36 000 000 43 110 000 (22 000 000; 56 000 000) 5 000 000 228 000 000
tests::dust_discarded_with_noop 145 000 000; +190.00% ❗ 50 000 000 61 420 000 (37 500 000; 70 000 000) 12 000 000 352 000 000
tests::external_submitter_gets_rewarded 104 000 000; +116.67% ❗ 48 000 000 57 850 000 (36 000 000; 70 000 000) 7 000 000 229 000 000
tests::gas_properly_handled_for_trap_replies 223 000 000; +324.76% ‼️ 52 500 000 58 920 000 (37 000 000; 70 000 000) 8 000 000 165 000 000
tests::ocw_double_charge 41 000 000; -25.45% ✔️ 55 000 000 60 590 000 (39 000 000; 70 000 000) 11 000 000 178 000 000
tests::ocw_interval_maintained 58 000 000; +18.37% ✔️ 49 000 000 56 870 000 (32 500 000; 64 000 000) 9 000 000 227 000 000
tests::ocw_interval_stretches_for_large_wait_list 164 000 000; +234.69% ❗ 49 000 000 61 280 000 (33 500 000; 67 500 000) 7 000 000 269 000 000
tests::ocw_overlapping_prevented 152 000 000; +207.07% ❗ 49 500 000 58 610 000 (38 000 000; 68 000 000) 6 000 000 263 000 000
tests::rent_charge_works 154 000 000; +208.00% ❗ 50 000 000 59 830 000 (36 000 000; 65 000 000) 17 000 000 267 000 000
tests::trap_reply_message_is_sent 161 000 000; +242.55% ❗ 47 000 000 56 400 000 (37 500 000; 62 000 000) 8 000 000 240 000 000
Runtime tests (values are in nanoseconds)

name = Async RwLock

name current median average lower/upper quartile min max
check readers 299 263 060; +590.30% ❗ 43 352 394 64 213 763 (39 548 275; 55 808 370) 31 349 055 476 262 867
forever lock 440 780 309; +610.99% ❗ 61 994 942 104 542 871 (55 533 620; 90 700 016) 41 977 158 1 187 990 216
read while writing 726 132 764; +543.27% ❗ 112 881 313 197 535 018 (97 798 916; 160 097 813) 70 068 843 2 045 016 824
rwlock wide 1 491 756 578; +544.82% ❗ 231 343 157 470 790 134 (215 914 553; 256 143 570) 183 129 116 6 717 942 212
write while reading 1 105 809 860; +713.87% ❗ 135 869 993 218 544 989 (115 070 038; 178 705 539) 95 948 899 2 357 103 369

name = Async init

name current median average lower/upper quartile min max
approved pong 16 663 931 366; +1.85% ✔️ 16 360 816 629 17 489 800 049 (16 154 067 997; 16 690 663 458) 15 868 331 176 33 532 375 979

name = Async-await

name current median average lower/upper quartile min max
normal 278 904 572; +294.23% ❗ 70 746 050 189 347 907 (65 488 062; 86 562 006) 27 933 855 3 395 192 709
panic 357 801 289; +497.85% ❗ 59 847 588 104 357 468 (41 881 640; 76 806 206) 31 395 104 1 548 205 504

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 617 597 750; +405.98% ❗ 122 060 889 271 800 550 (111 805 527; 133 730 607) 61 100 879 5 220 269 551

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 16 424 941 320; +81.64% ❗ 9 042 673 886 9 695 427 456 (8 871 238 011; 9 300 940 640) 8 515 119 345 20 014 612 748
2 of 3; bob & eve 15 822 251 670; +75.64% ❗ 9 008 227 754 9 743 716 225 (8 878 755 216; 9 205 031 812) 8 601 665 377 20 340 898 349
2 of 3; eve & alice 16 158 600 885; +80.43% ❗ 8 955 755 317 9 662 968 973 (8 838 119 963; 9 197 203 265) 8 554 785 942 20 282 586 604
2 of 3; eve doesn't answer, alice replies with incorrect payload 13 843 887 922; +56.14% ❗ 8 866 083 190 9 520 079 956 (8 704 727 421; 9 108 760 771) 8 390 626 656 19 993 840 580
2 of 3; no replies 9 100 337 020; +4.38% ❗ 8 718 298 371 9 339 127 485 (8 527 212 347; 8 958 020 073) 8 204 808 465 20 590 373 819
Single signatory & zero threshold 9 198 623 025; +3.82% ❗ 8 860 246 138 9 606 281 171 (8 723 284 342; 9 186 410 442) 8 434 129 528 20 654 222 222
Three signatories & redundand threshold 16 683 313 819; +82.96% ❗ 9 118 482 425 9 834 931 744 (8 938 378 606; 9 384 162 128) 8 743 062 036 20 443 822 690
Three signatories; Bob replies with incorrect signature 14 006 673 134; +57.40% ❗ 8 898 567 434 9 636 303 414 (8 713 013 984; 9 186 839 992) 8 397 547 201 20 398 385 507
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 14 072 433 340; +58.29% ❗ 8 890 525 989 9 585 561 457 (8 723 727 675; 9 100 968 024) 8 435 997 936 19 573 468 177

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 4 909 045 790; +3.84% ❗ 4 727 618 586 5 102 991 970 (4 575 607 836; 4 887 762 286) 4 300 701 667 13 178 498 332
correct signature but for another message 5 101 361 359; +4.59% ❗ 4 877 568 494 5 316 487 357 (4 719 141 876; 5 046 268 749) 4 449 961 665 13 367 710 479
no reply 4 644 242 320; -0.68% ✔️ 4 676 027 864 5 118 871 621 (4 596 363 836; 4 857 189 163) 4 316 526 696 12 908 270 834
signed message 5 381 292 299; +8.79% ❗ 4 946 381 339 5 370 722 808 (4 772 601 958; 5 070 365 727) 4 505 204 335 13 467 790 878

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 398 687 798; +327.32% ❗ 93 299 971 220 297 887 (79 673 020; 103 493 775) 39 796 169 4 039 458 061

name = Decoder

name current median average lower/upper quartile min max
decoder 201 863 149; +230.57% ❗ 61 064 548 104 735 847 (34 042 253; 68 090 987) 19 957 094 1 597 698 680

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 1 839 781 352; +515.79% ❗ 298 767 256 589 266 719 (263 552 749; 332 778 749) 201 140 737 5 713 939 446
join 1 516 712 646; +551.33% ❗ 232 864 418 420 661 140 (207 502 896; 304 634 948) 170 317 419 3 987 854 089
select 1 492 560 027; +470.91% ❗ 261 434 653 437 794 935 (211 299 032; 296 628 371) 165 239 631 4 058 205 409

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 554 163 341; +569.97% ❗ 231 974 431 423 644 256 (191 714 965; 258 178 760) 128 354 920 4 818 973 676

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 243 071 293; +208.29% ❗ 78 845 313 193 609 105 (71 631 059; 92 268 493) 35 451 501 3 433 734 227

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 322 453 356; +348.76% ❗ 71 854 149 184 335 736 (32 928 875; 90 012 209) 22 975 225 2 872 792 266

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 15 752 306 852; +2.41% ❗ 15 382 297 558 16 421 919 326 (15 203 153 921; 15 696 270 285) 14 961 241 328 33 189 302 063

name = Multiping

name current median average lower/upper quartile min max
multiping 277 158 716; +327.72% ❗ 64 799 779 117 470 479 (46 854 815; 77 159 879) 25 720 245 1 944 207 121

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 143 094 158; +214.88% ❗ 45 443 950 72 302 724 (26 296 459; 65 978 446) 14 955 140 1 488 880 906
ping-pong wgas 304 038 102; +601.29% ❗ 43 353 853 75 494 980 (37 749 573; 70 217 179) 25 755 015 1 282 032 923

name = Program_id test

name current median average lower/upper quartile min max
program_id 216 817 747; +291.87% ❗ 55 328 597 125 732 376 (47 260 962; 62 339 716) 19 100 886 2 002 532 770

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 370 308 167; +477.79% ❗ 64 090 360 112 714 507 (40 381 080; 83 711 547) 27 796 090 3 441 519 679
state-saving 376 970 171; +817.71% ❗ 41 077 218 68 138 772 (35 810 407; 68 793 720) 27 819 182 969 823 052

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 283 955 527; +335.68% ❗ 65 174 969 144 517 610 (57 633 748; 75 100 295) 26 522 075 2 004 246 671
Try to re-init existing program 385 004 016; +388.91% ❗ 78 747 143 139 228 680 (55 145 711; 95 041 150) 33 450 995 1 787 895 729

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 126 074 857; +462.59% ❗ 22 409 597 69 314 224 (15 724 568; 41 976 009) 10 300 084 2 228 240 676

name = Wait test

name current median average lower/upper quartile min max
wait 362 310 224; +595.57% ❗ 52 088 273 137 616 509 (43 645 431; 77 983 528) 32 774 126 3 394 500 569

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 1 089 376 344; +299.00% ❗ 273 023 248 561 111 388 (230 299 024; 311 862 238) 177 309 304 7 337 404 607

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 481 921 994; +448.39% ❗ 87 879 154 203 762 803 (80 687 844; 100 487 798) 53 400 679 3 624 076 324

name = guestbook test

name current median average lower/upper quartile min max
guestbook 8 753 164 914; +2.41% ✔️ 8 547 133 832 9 187 323 115 (8 404 746 476; 8 789 523 326) 8 149 323 584 17 412 160 598

name = gui test

name current median average lower/upper quartile min max
gui 11 310 383 577; +2.64% ✔️ 11 019 586 055 11 874 804 842 (10 847 900 030; 11 311 313 093) 10 472 773 119 25 623 438 649
1ca58a9
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 136 598 999 999; +5178.17% ❗ 2 588 000 000 5 103 129 999 (2 474 500 000; 4 179 500 000) 2 385 000 000 136 929 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 41 000 000; +49.09% ❗ 27 500 000 34 970 000 (20 000 000; 35 000 000) 6 000 000 233 000 000
tests::all_keys_are_cleared 36 000 000; -2.70% ✔️ 37 000 000 55 610 000 (30 000 000; 51 000 000) 15 000 000 398 000 000
tests::gas_free_after_consumed 25 000 000; -27.54% ✔️ 34 500 000 46 940 000 (23 000 000; 49 000 000) 9 000 000 228 000 000
tests::limit_vs_origin 51 000 000; +45.71% ✔️ 35 000 000 53 340 000 (28 000 000; 51 500 000) 9 000 000 320 000 000
tests::long_chain 49 000 000; +58.06% ❗ 31 000 000 52 430 000 (24 000 000; 48 000 000) 10 000 000 405 000 000
tests::simple_value_tree 44 000 000; +25.71% ✔️ 35 000 000 47 360 000 (23 500 000; 46 500 000) 10 000 000 264 000 000
tests::split_with_no_value 41 000 000; +17.14% ✔️ 35 000 000 50 630 000 (25 500 000; 53 500 000) 10 000 000 263 000 000
tests::sub_nodes_tree 42 000 000; +23.53% ✔️ 34 000 000 50 550 000 (24 000 000; 49 000 000) 9 000 000 279 000 000
tests::sub_nodes_tree_with_spends 41 000 000; +13.89% ✔️ 36 000 000 50 360 000 (26 000 000; 55 000 000) 12 000 000 276 000 000
tests::subtree_gas_limit_remains_intact 17 000 000; -54.05% ✔️ 37 000 000 51 090 000 (27 000 000; 54 000 000) 13 000 000 264 000 000
tests::value_tree_known_errors 28 000 000; -30.00% ✔️ 40 000 000 59 720 000 (29 000 000; 60 500 000) 11 000 000 339 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 31 000 000; +14.81% ✔️ 27 000 000 34 140 000 (17 000 000; 39 000 000) 7 000 000 220 000 000
schedule::test::print_test_schedule 72 000 000; +157.14% ❗ 28 000 000 39 270 000 (18 500 000; 46 000 000) 8 000 000 177 000 000
tests::block_gas_limit_works 69 000 000; +38.00% ✔️ 50 000 000 63 800 000 (35 000 000; 75 500 000) 17 000 000 279 000 000
tests::cascading_messages_with_value_do_not_overcharge 201 000 000; -21.33% ✔️ 255 500 000 326 530 000 (219 000 000; 340 000 000) 160 000 000 1 338 000 000
tests::claim_value_from_mailbox_works 27 000 000; -49.06% ✔️ 53 000 000 65 480 000 (36 000 000; 77 500 000) 22 000 000 231 000 000
tests::defer_program_initialization 126 000 000; +12.00% ✔️ 112 500 000 128 620 000 (83 000 000; 151 000 000) 50 000 000 444 000 000
tests::distributor_distribute 91 000 000; -11.22% ✔️ 102 500 000 127 360 000 (76 000 000; 133 500 000) 42 000 000 470 000 000
tests::distributor_initialize 65 000 000; -17.72% ✔️ 79 000 000 97 800 000 (64 000 000; 107 500 000) 32 000 000 511 000 000
tests::events_logging_works 48 000 000; -21.31% ✔️ 61 000 000 77 460 000 (43 500 000; 91 500 000) 26 000 000 260 000 000
tests::exit_handle 34 000 000; -44.72% ✔️ 61 500 000 69 900 000 (44 500 000; 79 000 000) 33 000 000 197 000 000
tests::exit_init 114 000 000; +48.05% ❗ 77 000 000 92 350 000 (57 000 000; 110 500 000) 25 000 000 256 000 000
tests::gas_spent_precalculated 30 000 000; -48.28% ✔️ 58 000 000 70 780 000 (43 000 000; 82 000 000) 22 000 000 231 000 000
tests::gas_spent_vs_balance 260 000 000; +96.97% ❗ 132 000 000 156 790 000 (109 000 000; 176 000 000) 53 000 000 420 000 000
tests::init_message_logging_works 75 000 000; +19.05% ✔️ 63 000 000 81 130 000 (49 000 000; 92 500 000) 22 000 000 335 000 000
tests::init_wait_reply_exit_cleaned_storage 393 000 000; +222.13% ❗ 122 000 000 152 570 000 (104 000 000; 160 500 000) 64 000 000 491 000 000
tests::lazy_pages 123 000 000; +72.03% ❗ 71 500 000 82 550 000 (50 000 000; 89 500 000) 29 000 000 324 000 000
tests::mailbox_works 110 000 000; +64.18% ❗ 67 000 000 76 880 000 (47 000 000; 89 000 000) 18 000 000 301 000 000
tests::memory_access_cases 151 000 000; +122.06% ❗ 68 000 000 80 520 000 (48 500 000; 93 500 000) 15 000 000 315 000 000
tests::messages_processing_works 116 000 000; +63.38% ❗ 71 000 000 77 750 000 (50 500 000; 94 500 000) 19 000 000 344 000 000
tests::messages_to_paused_program_skipped 206 000 000; +152.76% ❗ 81 500 000 98 370 000 (63 500 000; 113 500 000) 29 000 000 305 000 000
tests::messages_to_uninitialized_program_wait 181 000 000; +111.70% ❗ 85 500 000 98 860 000 (66 000 000; 111 500 000) 29 000 000 389 000 000
tests::no_redundant_gas_value_after_exiting 142 000 000; +125.40% ❗ 63 000 000 80 510 000 (49 500 000; 100 500 000) 26 000 000 336 000 000
tests::paused_program_keeps_id 384 000 000; +310.70% ❗ 93 500 000 109 420 000 (71 000 000; 121 500 000) 37 000 000 397 000 000
tests::program_lifecycle_works 174 000 000; +154.01% ❗ 68 500 000 82 340 000 (47 000 000; 99 000 000) 15 000 000 365 000 000
tests::program_messages_to_paused_program_skipped 384 000 000; +201.18% ❗ 127 500 000 150 470 000 (100 000 000; 160 000 000) 59 000 000 552 000 000
tests::replies_to_paused_program_skipped 249 000 000; +175.14% ❗ 90 500 000 100 190 000 (62 500 000; 113 000 000) 34 000 000 340 000 000
tests::restrict_start_section 113 000 000; +98.25% ❗ 57 000 000 75 090 000 (42 000 000; 88 500 000) 18 000 000 268 000 000
tests::resume_program_works 292 000 000; +129.92% ❗ 127 000 000 149 270 000 (101 500 000; 152 000 000) 66 000 000 719 000 000
tests::send_message_expected_failure 73 000 000; +14.96% ✔️ 63 500 000 80 280 000 (48 000 000; 84 000 000) 15 000 000 364 000 000
tests::send_message_works 130 000 000; +96.97% ❗ 66 000 000 83 490 000 (48 000 000; 95 000 000) 21 000 000 364 000 000
tests::send_reply_failure_to_claim_from_mailbox 153 000 000; +146.77% ❗ 62 000 000 73 130 000 (45 000 000; 96 000 000) 24 000 000 276 000 000
tests::send_reply_value_claiming_works 152 000 000; +123.53% ❗ 68 000 000 83 240 000 (53 000 000; 90 000 000) 22 000 000 328 000 000
tests::send_reply_works 106 000 000; +57.04% ❗ 67 500 000 80 020 000 (51 000 000; 101 000 000) 18 000 000 285 000 000
tests::spent_gas_to_reward_block_author_works 226 000 000; +286.32% ❗ 58 500 000 72 770 000 (47 000 000; 80 500 000) 18 000 000 310 000 000
tests::submit_program_expected_failure 162 000 000; +172.27% ❗ 59 500 000 69 540 000 (46 000 000; 83 500 000) 23 000 000 299 000 000
tests::submit_program_fails_on_duplicate_id 147 000 000; +155.65% ❗ 57 500 000 71 670 000 (44 500 000; 82 500 000) 20 000 000 389 000 000
tests::test_code_is_not_reset_within_program_submission 153 000 000; +150.82% ❗ 61 000 000 78 420 000 (42 500 000; 96 000 000) 26 000 000 280 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 99 000 000; +59.68% ❗ 62 000 000 76 510 000 (39 500 000; 94 500 000) 18 000 000 332 000 000
tests::test_code_submission_pass 100 000 000; +66.67% ❗ 60 000 000 72 790 000 (42 500 000; 83 500 000) 16 000 000 248 000 000
tests::test_create_program_duplicate 464 000 000; +197.44% ‼️ 156 000 000 171 960 000 (118 000 000; 208 500 000) 66 000 000 433 000 000
tests::test_create_program_duplicate_in_one_execution 231 000 000; +107.17% ❗ 111 500 000 126 040 000 (87 000 000; 152 000 000) 44 000 000 378 000 000
tests::test_create_program_miscellaneous 397 000 000; +142.81% ❗ 163 500 000 185 880 000 (130 500 000; 217 000 000) 78 000 000 604 000 000
tests::test_create_program_no_code_hash 571 000 000; +110.70% ❗ 271 000 000 324 920 000 (226 500 000; 351 500 000) 158 000 000 806 000 000
tests::test_create_program_simple 338 000 000; +87.26% ❗ 180 500 000 214 500 000 (136 000 000; 218 000 000) 84 000 000 757 000 000
tests::test_create_program_with_exceeding_value 203 000 000; +143.11% ❗ 83 500 000 99 700 000 (59 000 000; 105 000 000) 29 000 000 476 000 000
tests::test_create_program_with_value_lt_ed 119 000 000; +12.80% ✔️ 105 500 000 120 570 000 (83 000 000; 129 000 000) 47 000 000 321 000 000
tests::test_message_processing_for_non_existing_destination 163 000 000; +145.11% ❗ 66 500 000 83 930 000 (49 500 000; 96 500 000) 16 000 000 288 000 000
tests::test_reply_to_terminated_program 174 000 000; +102.33% ❗ 86 000 000 101 710 000 (60 000 000; 118 000 000) 33 000 000 427 000 000
tests::test_same_code_submission_fails 272 000 000; +277.78% ‼️ 72 000 000 84 030 000 (52 000 000; 101 000 000) 16 000 000 224 000 000
tests::test_two_contracts_composition_works 516 000 000; +116.81% ❗ 238 000 000 299 330 000 (201 500 000; 327 000 000) 154 000 000 761 000 000
tests::uninitialized_program_should_accept_replies 142 000 000; +21.89% ✔️ 116 500 000 142 360 000 (94 500 000; 162 000 000) 59 000 000 435 000 000
tests::unstoppable_block_execution_works 190 000 000; +158.50% ❗ 73 500 000 92 650 000 (52 500 000; 113 000 000) 26 000 000 368 000 000
tests::unused_gas_released_back_works 139 000 000; +77.07% ❗ 78 500 000 80 250 000 (57 000 000; 100 000 000) 15 000 000 207 000 000
tests::wake_messages_after_program_inited 813 000 000; +244.49% ‼️ 236 000 000 291 000 000 (203 000 000; 308 500 000) 141 000 000 764 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 78 000 000; +51.46% ❗ 51 500 000 63 470 000 (35 000 000; 72 000 000) 7 000 000 304 000 000
tests::debug_mode_works 232 000 000; +193.67% ❗ 79 000 000 89 470 000 (60 500 000; 103 500 000) 25 000 000 308 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 63 000 000; +38.46% ✔️ 45 500 000 57 890 000 (31 000 000; 69 000 000) 8 000 000 352 000 000
tests::dequeued_impl_works_manually 164 000 000; +168.85% ❗ 61 000 000 78 790 000 (48 500 000; 92 000 000) 19 000 000 332 000 000
tests::queue_processing_impl_works_manually 167 000 000; +178.33% ❗ 60 000 000 76 790 000 (47 500 000; 84 500 000) 20 000 000 285 000 000
tests::queue_works 153 000 000; +152.89% ❗ 60 500 000 70 590 000 (45 500 000; 83 000 000) 11 000 000 244 000 000
tests::sent_impl_works 177 000 000; +218.92% ❗ 55 500 000 70 020 000 (45 000 000; 82 000 000) 21 000 000 340 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 101 000 000; +134.88% ❗ 43 000 000 55 940 000 (31 000 000; 64 000 000) 5 000 000 252 000 000
tests::custom_fee_multiplier_updated_per_block 130 000 000; +114.88% ❗ 60 500 000 71 040 000 (44 000 000; 88 500 000) 24 000 000 272 000 000
tests::fee_rounding_error_bounded_by_multiplier 165 000 000; +182.05% ❗ 58 500 000 69 690 000 (45 000 000; 79 000 000) 18 000 000 304 000 000
tests::mq_size_affecting_fee_works 195 000 000; +242.11% ❗ 57 000 000 68 310 000 (41 000 000; 80 500 000) 16 000 000 240 000 000
tests::mq_size_not_affecting_fee_works 91 000 000; +61.06% ✔️ 56 500 000 72 810 000 (43 500 000; 91 500 000) 19 000 000 247 000 000
tests::query_info_and_fee_details_work 180 000 000; +210.34% ❗ 58 000 000 71 730 000 (44 000 000; 82 000 000) 18 000 000 296 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 136 000 000; +205.62% ❗ 44 500 000 51 560 000 (26 000 000; 60 000 000) 6 000 000 196 000 000
tests::pause_program_twice_fails 179 000 000; +216.81% ❗ 56 500 000 74 660 000 (43 000 000; 93 000 000) 22 000 000 240 000 000
tests::pause_program_works 195 000 000; +140.74% ❗ 81 000 000 92 890 000 (55 000 000; 110 000 000) 26 000 000 316 000 000
tests::pause_terminated_program_fails 128 000 000; +100.00% ❗ 64 000 000 79 010 000 (45 500 000; 88 000 000) 28 000 000 264 000 000
tests::pause_uninitialized_program_works 481 000 000; +476.05% ‼️ 83 500 000 103 010 000 (60 500 000; 118 000 000) 24 000 000 469 000 000
tests::resume_program_twice_fails 145 000 000; +40.10% ❗ 103 500 000 123 070 000 (86 500 000; 132 500 000) 43 000 000 446 000 000
tests::resume_program_wrong_list_fails 120 000 000; +35.59% ❗ 88 500 000 107 670 000 (65 500 000; 118 500 000) 29 000 000 389 000 000
tests::resume_program_wrong_memory_fails 304 000 000; +239.66% ❗ 89 500 000 108 870 000 (65 000 000; 122 000 000) 27 000 000 443 000 000
tests::resume_uninitialized_program_works 97 000 000; +7.78% ✔️ 90 000 000 110 190 000 (69 500 000; 128 500 000) 36 000 000 407 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 72 000 000; +54.84% ✔️ 46 500 000 65 310 000 (28 500 000; 78 500 000) 6 000 000 308 000 000
tests::dust_discarded_with_noop 93 000 000; +28.28% ❗ 72 500 000 83 990 000 (52 000 000; 89 000 000) 20 000 000 368 000 000
tests::external_submitter_gets_rewarded 76 000 000; +17.83% ✔️ 64 500 000 83 230 000 (47 500 000; 92 500 000) 14 000 000 432 000 000
tests::gas_properly_handled_for_trap_replies 153 000 000; +135.38% ❗ 65 000 000 78 780 000 (48 000 000; 87 000 000) 17 000 000 300 000 000
tests::ocw_double_charge 148 000 000; +122.56% ❗ 66 500 000 82 100 000 (49 000 000; 87 000 000) 19 000 000 432 000 000
tests::ocw_interval_maintained 105 000 000; +70.73% ❗ 61 500 000 79 760 000 (45 000 000; 88 000 000) 17 000 000 368 000 000
tests::ocw_interval_stretches_for_large_wait_list 185 000 000; +186.82% ❗ 64 500 000 78 450 000 (46 500 000; 89 000 000) 12 000 000 356 000 000
tests::ocw_overlapping_prevented 45 000 000; -25.62% ✔️ 60 500 000 74 470 000 (43 000 000; 85 500 000) 24 000 000 356 000 000
tests::rent_charge_works 100 000 000; +75.44% ❗ 57 000 000 69 730 000 (40 000 000; 80 500 000) 10 000 000 276 000 000
tests::trap_reply_message_is_sent 89 000 000; +57.52% ❗ 56 500 000 72 750 000 (40 000 000; 83 000 000) 20 000 000 280 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 236 813 571 215; +47.84% ‼️ 160 187 010 665 160 206 577 263 (159 831 233 174; 160 706 842 678) 158 579 087 530 161 541 146 341

name = Async RwLock

name current median average lower/upper quartile min max
check readers 261 773 633; +480.92% ‼️ 45 062 285 49 555 396 (40 947 622; 51 928 167) 33 239 304 125 834 538
forever lock 438 192 367; +605.24% ‼️ 62 133 746 67 942 892 (56 801 692; 74 047 603) 41 805 778 127 930 611
read while writing 701 291 347; +528.84% ‼️ 111 521 687 117 789 442 (102 579 481; 126 269 341) 76 416 955 190 116 067
rwlock wide 1 650 660 879; +598.79% ‼️ 236 215 382 230 044 555 (208 949 515; 250 014 963) 165 683 457 284 454 760
write while reading 817 243 553; +519.04% ‼️ 132 018 501 142 353 871 (125 876 193; 163 998 960) 93 677 453 211 211 047

name = Async init

name current median average lower/upper quartile min max
approved pong 17 829 663 489; +5.36% ‼️ 16 922 522 212 16 953 195 576 (16 845 355 134; 17 056 581 572) 16 603 639 950 17 379 048 017

name = Async-await

name current median average lower/upper quartile min max
normal 265 615 633; +255.49% ‼️ 74 719 037 74 103 593 (67 063 150; 80 221 746) 37 285 431 101 876 274
panic 264 389 764; +311.38% ‼️ 64 268 828 63 573 810 (47 243 139; 77 524 006) 38 212 553 105 671 258

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 916 721 918; +615.58% ‼️ 128 108 568 120 317 405 (109 196 464; 136 393 089) 56 994 013 161 478 876

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 16 177 297 139; +73.63% ‼️ 9 317 317 837 9 323 011 993 (9 204 660 630; 9 422 283 380) 8 946 024 227 9 693 670 761
2 of 3; bob & eve 15 095 552 301; +61.50% ‼️ 9 346 998 553 9 354 343 430 (9 242 919 028; 9 470 460 253) 8 912 029 272 9 771 257 471
2 of 3; eve & alice 16 404 575 072; +75.75% ‼️ 9 334 081 816 9 339 039 078 (9 226 186 308; 9 448 433 629) 8 905 186 242 9 755 005 646
2 of 3; eve doesn't answer, alice replies with incorrect payload 14 413 069 840; +56.68% ‼️ 9 198 940 681 9 187 463 549 (9 065 169 488; 9 293 971 664) 8 787 081 705 9 691 009 526
2 of 3; no replies 9 947 047 852; +10.45% ‼️ 9 005 546 349 9 009 109 643 (8 865 240 321; 9 159 213 369) 8 560 549 370 9 524 408 823
Single signatory & zero threshold 13 246 870 540; +44.43% ‼️ 9 171 887 787 9 185 025 304 (9 064 900 498; 9 283 124 745) 8 834 527 221 9 710 399 367
Three signatories & redundand threshold 16 438 263 792; +73.89% ‼️ 9 453 270 169 9 461 692 428 (9 342 486 270; 9 590 994 212) 9 117 936 792 9 981 498 571
Three signatories; Bob replies with incorrect signature 14 256 302 502; +55.44% ‼️ 9 171 645 715 9 168 741 727 (9 052 180 268; 9 290 519 283) 8 699 976 397 9 658 474 734
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 14 458 065 894; +57.53% ‼️ 9 177 928 552 9 186 940 300 (9 056 391 129; 9 294 235 511) 8 760 631 357 9 781 002 234

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 596 629 982; +13.51% ‼️ 4 930 587 311 4 904 340 211 (4 776 912 454; 5 030 809 950) 4 473 821 126 5 252 424 983
correct signature but for another message 5 875 263 338; +16.95% ‼️ 5 023 854 500 5 037 648 270 (4 888 855 313; 5 199 020 707) 4 607 392 019 5 402 213 580
no reply 5 532 493 510; +15.53% ‼️ 4 788 654 551 4 806 866 919 (4 649 333 728; 4 984 176 399) 4 364 216 715 5 234 970 640
signed message 5 609 694 306; +11.04% ‼️ 5 051 856 483 5 045 004 839 (4 919 918 681; 5 190 057 745) 4 559 756 580 5 445 872 062

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 688 560 816; +657.73% ‼️ 90 871 687 88 038 330 (77 885 695; 98 801 404) 45 342 307 122 091 874

name = Decoder

name current median average lower/upper quartile min max
decoder 563 353 897; +832.88% ‼️ 60 388 385 55 997 835 (38 514 018; 69 188 306) 21 158 596 88 331 067

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 102 362 498; +584.72% ‼️ 307 039 412 300 357 165 (271 928 418; 328 037 787) 206 661 824 391 335 345
join 1 308 332 935; +453.33% ‼️ 236 447 292 241 914 244 (210 381 739; 261 418 326) 171 565 758 347 231 775
select 1 232 357 795; +434.31% ‼️ 230 645 101 241 862 604 (211 427 710; 277 487 637) 173 212 095 331 653 997

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 948 865 978; +696.49% ‼️ 244 680 551 236 948 586 (201 143 544; 264 869 781) 151 121 518 323 454 012

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 581 057 609; +585.01% ‼️ 84 824 182 86 305 981 (76 129 093; 96 307 219) 45 698 496 126 408 802

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 556 128 889; +685.28% ‼️ 70 818 807 63 639 599 (35 263 686; 84 606 874) 20 441 340 106 328 505

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 17 105 419 514; +7.90% ‼️ 15 853 541 765 15 892 168 108 (15 748 175 851; 16 045 991 760) 15 566 534 514 16 337 288 609

name = Multiping

name current median average lower/upper quartile min max
multiping 602 694 914; +801.70% ‼️ 66 839 708 63 254 384 (52 056 944; 74 827 034) 28 788 345 104 965 390

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 506 169 799; +1429.27% ‼️ 33 098 687 43 524 514 (25 567 646; 64 929 059) 16 126 635 93 276 797
ping-pong wgas 257 750 129; +459.95% ‼️ 46 030 815 52 954 089 (39 996 817; 55 586 939) 24 492 442 121 332 485

name = Program_id test

name current median average lower/upper quartile min max
program_id 521 963 877; +785.58% ‼️ 58 940 636 58 459 947 (53 519 404; 64 933 133) 26 194 457 84 021 676

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 278 360 643; +445.13% ‼️ 51 063 437 62 812 258 (44 800 113; 84 429 187) 30 312 045 121 808 791
state-saving 246 846 624; +439.07% ‼️ 45 790 973 49 741 876 (39 906 245; 52 423 530) 30 062 268 107 210 915

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 545 345 441; +712.56% ‼️ 67 114 608 65 729 486 (60 212 681; 72 440 391) 30 072 264 100 441 102
Try to re-init existing program 344 261 746; +304.37% ‼️ 85 135 797 81 073 684 (61 302 175; 96 592 680) 44 725 343 120 344 416

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 458 610 682; +2082.84% ‼️ 21 009 826 26 864 923 (15 511 514; 39 980 646) 11 273 640 62 595 273

name = Wait test

name current median average lower/upper quartile min max
wait 752 453 980; +1151.02% ‼️ 60 147 467 67 142 612 (50 939 431; 80 177 076) 41 340 009 125 115 316

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 1 129 216 091; +312.14% ‼️ 273 988 167 268 649 241 (236 549 322; 302 281 792) 178 156 724 358 935 121

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 726 478 268; +681.59% ‼️ 92 948 734 91 916 511 (82 413 866; 99 699 589) 64 177 794 116 537 893

name = guestbook test

name current median average lower/upper quartile min max
guestbook 9 939 206 052; +12.41% ‼️ 8 842 285 188 8 848 776 417 (8 708 321 878; 8 986 240 299) 8 453 946 382 9 369 260 960

name = gui test

name current median average lower/upper quartile min max
gui 11 954 917 455; +5.21% ‼️ 11 362 855 941 11 374 573 694 (11 270 622 553; 11 459 197 696) 11 080 651 365 11 815 559 292
3a78e9a
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 74 603 000 000; +2908.19% ❗ 2 480 000 000 5 767 790 000 (2 441 000 000; 2 645 500 000) 2 372 000 000 185 132 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 34 000 000; +36.00% ❗ 25 000 000 36 610 000 (18 500 000; 31 500 000) 5 000 000 405 000 000
tests::all_keys_are_cleared 31 000 000; -16.22% ✔️ 37 000 000 61 050 000 (28 000 000; 50 500 000) 16 000 000 382 000 000
tests::gas_free_after_consumed 28 000 000; -18.84% ✔️ 34 500 000 55 870 000 (26 500 000; 44 000 000) 14 000 000 352 000 000
tests::limit_vs_origin 26 000 000; -21.21% ✔️ 33 000 000 54 950 000 (25 000 000; 44 000 000) 11 000 000 352 000 000
tests::long_chain 87 000 000; +145.07% ❗ 35 500 000 53 420 000 (25 000 000; 44 000 000) 9 000 000 392 000 000
tests::simple_value_tree 19 000 000; -41.54% ✔️ 32 500 000 55 710 000 (25 500 000; 45 000 000) 7 000 000 592 000 000
tests::split_with_no_value 19 000 000; -39.68% ✔️ 31 500 000 55 290 000 (23 000 000; 43 000 000) 10 000 000 396 000 000
tests::sub_nodes_tree 36 000 000; -2.70% ✔️ 37 000 000 55 900 000 (23 000 000; 52 500 000) 12 000 000 370 000 000
tests::sub_nodes_tree_with_spends 26 000 000; -25.71% ✔️ 35 000 000 54 160 000 (26 500 000; 51 500 000) 16 000 000 457 000 000
tests::subtree_gas_limit_remains_intact 24 000 000; -38.46% ✔️ 39 000 000 56 230 000 (28 000 000; 52 000 000) 9 000 000 316 000 000
tests::value_tree_known_errors 27 000 000; -22.86% ✔️ 35 000 000 53 550 000 (28 000 000; 52 000 000) 16 000 000 280 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 30 000 000; +15.38% ✔️ 26 000 000 38 340 000 (15 000 000; 36 000 000) 7 000 000 379 000 000
schedule::test::print_test_schedule 23 000 000; -9.80% ✔️ 25 500 000 38 970 000 (18 500 000; 35 500 000) 8 000 000 346 000 000
tests::block_gas_limit_works 53 000 000; +9.28% ✔️ 48 500 000 67 440 000 (35 000 000; 72 500 000) 17 000 000 333 000 000
tests::call_forbidden_function 26 000 000; -39.53% ✔️ 43 000 000 67 420 000 (34 500 000; 64 500 000) 14 000 000 344 000 000
tests::cascading_messages_with_value_do_not_overcharge 259 000 000; +0.19% ✔️ 258 500 000 343 040 000 (218 000 000; 327 500 000) 153 000 000 1 537 000 000
tests::claim_value_from_mailbox_works 26 000 000; -52.29% ✔️ 54 500 000 75 500 000 (37 500 000; 72 000 000) 18 000 000 467 000 000
tests::defer_program_initialization 81 000 000; -27.35% ✔️ 111 500 000 133 130 000 (83 000 000; 139 000 000) 50 000 000 652 000 000
tests::distributor_distribute 108 000 000; +6.40% ✔️ 101 500 000 145 080 000 (79 500 000; 136 000 000) 44 000 000 1 244 000 000
tests::distributor_initialize 74 000 000; -11.90% ✔️ 84 000 000 102 120 000 (65 500 000; 108 000 000) 27 000 000 413 000 000
tests::events_logging_works 86 000 000; +50.88% ✔️ 57 000 000 84 940 000 (44 000 000; 96 500 000) 21 000 000 651 000 000
tests::exit_handle 21 000 000; -64.10% ✔️ 58 500 000 82 250 000 (43 000 000; 92 500 000) 26 000 000 364 000 000
tests::exit_init 67 000 000; -20.71% ✔️ 84 500 000 109 550 000 (65 500 000; 112 500 000) 36 000 000 511 000 000
tests::gas_spent_precalculated 23 000 000; -61.98% ✔️ 60 500 000 78 210 000 (47 000 000; 81 500 000) 16 000 000 340 000 000
tests::gas_spent_vs_balance 231 000 000; +75.67% ❗ 131 500 000 170 730 000 (105 500 000; 160 000 000) 69 000 000 1 101 000 000
tests::init_message_logging_works 62 000 000; +2.48% ✔️ 60 500 000 80 700 000 (47 500 000; 94 000 000) 12 000 000 559 000 000
tests::init_wait_reply_exit_cleaned_storage 177 000 000; +48.74% ❗ 119 000 000 145 640 000 (103 000 000; 158 500 000) 48 000 000 536 000 000
tests::lazy_pages 108 000 000; +66.15% ❗ 65 000 000 85 320 000 (48 500 000; 89 500 000) 27 000 000 456 000 000
tests::mailbox_works 35 000 000; -49.64% ✔️ 69 500 000 92 240 000 (52 000 000; 85 000 000) 24 000 000 840 000 000
tests::memory_access_cases 104 000 000; +67.74% ❗ 62 000 000 83 830 000 (51 000 000; 90 500 000) 26 000 000 309 000 000
tests::messages_processing_works 139 000 000; +107.46% ❗ 67 000 000 83 060 000 (52 000 000; 90 500 000) 18 000 000 451 000 000
tests::messages_to_paused_program_skipped 145 000 000; +75.76% ❗ 82 500 000 109 690 000 (65 000 000; 109 500 000) 35 000 000 557 000 000
tests::messages_to_uninitialized_program_wait 141 000 000; +79.62% ❗ 78 500 000 99 770 000 (63 000 000; 110 500 000) 28 000 000 471 000 000
tests::no_redundant_gas_value_after_exiting 142 000 000; +115.15% ❗ 66 000 000 85 100 000 (52 500 000; 91 500 000) 17 000 000 404 000 000
tests::paused_program_keeps_id 353 000 000; +279.57% ❗ 93 000 000 130 130 000 (68 500 000; 124 000 000) 34 000 000 667 000 000
tests::program_lifecycle_works 325 000 000; +432.79% ❗ 61 000 000 78 270 000 (44 000 000; 87 000 000) 20 000 000 708 000 000
tests::program_messages_to_paused_program_skipped 170 000 000; +37.65% ❗ 123 500 000 166 880 000 (93 000 000; 152 500 000) 55 000 000 920 000 000
tests::replies_to_paused_program_skipped 240 000 000; +203.80% ❗ 79 000 000 98 190 000 (57 000 000; 105 000 000) 29 000 000 440 000 000
tests::restrict_start_section 258 000 000; +319.51% ❗ 61 500 000 83 770 000 (44 000 000; 83 500 000) 19 000 000 660 000 000
tests::resume_program_works 362 000 000; +202.93% ❗ 119 500 000 150 420 000 (99 000 000; 153 000 000) 58 000 000 696 000 000
tests::send_message_expected_failure 94 000 000; +56.67% ❗ 60 000 000 79 430 000 (45 000 000; 82 000 000) 21 000 000 600 000 000
tests::send_message_works 319 000 000; +422.95% ❗ 61 000 000 81 390 000 (45 000 000; 90 000 000) 13 000 000 412 000 000
tests::send_reply_failure_to_claim_from_mailbox 252 000 000; +327.12% ❗ 59 000 000 85 100 000 (44 500 000; 90 500 000) 24 000 000 456 000 000
tests::send_reply_value_claiming_works 77 000 000; +21.26% ✔️ 63 500 000 87 660 000 (45 500 000; 88 500 000) 19 000 000 528 000 000
tests::send_reply_works 70 000 000; +2.19% ✔️ 68 500 000 86 750 000 (49 500 000; 91 500 000) 24 000 000 608 000 000
tests::spent_gas_to_reward_block_author_works 53 000 000; -18.46% ✔️ 65 000 000 77 070 000 (40 000 000; 88 000 000) 18 000 000 496 000 000
tests::submit_program_expected_failure 128 000 000; +103.17% ❗ 63 000 000 79 320 000 (45 000 000; 87 000 000) 15 000 000 419 000 000
tests::submit_program_fails_on_duplicate_id 89 000 000; +41.27% ✔️ 63 000 000 89 340 000 (46 000 000; 97 000 000) 19 000 000 424 000 000
tests::test_code_is_not_reset_within_program_submission 93 000 000; +48.80% ✔️ 62 500 000 78 860 000 (43 500 000; 95 000 000) 15 000 000 444 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 46 000 000; -26.40% ✔️ 62 500 000 78 360 000 (44 000 000; 93 000 000) 20 000 000 475 000 000
tests::test_code_submission_pass 109 000 000; +98.18% ❗ 55 000 000 80 330 000 (40 000 000; 84 000 000) 19 000 000 484 000 000
tests::test_create_program_duplicate 281 000 000; +100.71% ❗ 140 000 000 191 050 000 (109 500 000; 198 500 000) 68 000 000 1 068 000 000
tests::test_create_program_duplicate_in_one_execution 205 000 000; +98.07% ❗ 103 500 000 126 280 000 (80 500 000; 141 500 000) 41 000 000 480 000 000
tests::test_create_program_miscellaneous 653 000 000; +341.22% ❗ 148 000 000 192 620 000 (117 500 000; 193 500 000) 78 000 000 936 000 000
tests::test_create_program_no_code_hash 829 000 000; +227.02% ❗ 253 500 000 331 869 999 (212 000 000; 306 000 000) 139 000 000 1 263 000 000
tests::test_create_program_simple 219 000 000; +33.94% ❗ 163 500 000 203 090 000 (133 000 000; 201 500 000) 89 000 000 944 000 000
tests::test_create_program_with_exceeding_value 260 000 000; +202.33% ❗ 86 000 000 103 430 000 (66 500 000; 108 500 000) 26 000 000 456 000 000
tests::test_create_program_with_value_lt_ed 151 000 000; +51.00% ❗ 100 000 000 135 300 000 (81 500 000; 139 000 000) 40 000 000 752 000 000
tests::test_create_program_without_gas_works 200 000 000; +125.99% ❗ 88 500 000 115 600 000 (69 000 000; 116 000 000) 29 000 000 596 000 000
tests::test_message_processing_for_non_existing_destination 104 000 000; +49.64% ❗ 69 500 000 91 910 000 (48 500 000; 93 500 000) 23 000 000 484 000 000
tests::test_reply_to_terminated_program 82 000 000; -2.38% ✔️ 84 000 000 104 060 000 (66 000 000; 117 000 000) 24 000 000 484 000 000
tests::test_same_code_submission_fails 54 000 000; -17.56% ✔️ 65 500 000 84 150 000 (49 000 000; 92 500 000) 19 000 000 364 000 000
tests::test_two_contracts_composition_works 782 000 000; +219.18% ❗ 245 000 000 301 300 000 (204 000 000; 297 000 000) 131 000 000 1 075 000 000
tests::uninitialized_program_should_accept_replies 310 000 000; +169.57% ❗ 115 000 000 139 400 000 (87 000 000; 151 500 000) 48 000 000 423 000 000
tests::unstoppable_block_execution_works 116 000 000; +64.54% ❗ 70 500 000 87 000 000 (52 500 000; 100 500 000) 17 000 000 328 000 000
tests::unused_gas_released_back_works 66 000 000; -0.75% ✔️ 66 500 000 79 140 000 (53 000 000; 84 500 000) 23 000 000 402 000 000
tests::wake_messages_after_program_inited 607 000 000; +169.78% ❗ 225 000 000 289 159 999 (195 000 000; 269 000 000) 131 000 000 1 026 999 999

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 137 000 000; +230.12% ❗ 41 500 000 52 830 000 (29 000 000; 56 500 000) 9 000 000 273 000 000
tests::debug_mode_works 121 000 000; +68.06% ❗ 72 000 000 84 920 000 (53 500 000; 93 000 000) 19 000 000 412 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 120 000 000; +200.00% ❗ 40 000 000 53 420 000 (28 000 000; 58 000 000) 7 000 000 420 000 000
tests::dequeued_impl_works_manually 104 000 000; +76.27% ❗ 59 000 000 73 040 000 (42 000 000; 76 500 000) 15 000 000 309 000 000
tests::queue_processing_impl_works_manually 76 000 000; +26.67% ✔️ 60 000 000 78 270 000 (46 000 000; 79 500 000) 21 000 000 475 000 000
tests::queue_works 194 000 000; +223.33% ❗ 60 000 000 78 010 000 (45 000 000; 82 500 000) 19 000 000 348 000 000
tests::sent_impl_works 184 000 000; +209.24% ❗ 59 500 000 72 040 000 (44 000 000; 76 000 000) 19 000 000 476 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 64 000 000; +47.13% ❗ 43 500 000 53 550 000 (29 000 000; 60 000 000) 5 000 000 293 000 000
tests::custom_fee_multiplier_updated_per_block 197 000 000; +242.61% ❗ 57 500 000 76 990 000 (45 500 000; 91 000 000) 19 000 000 304 000 000
tests::fee_rounding_error_bounded_by_multiplier 202 000 000; +231.15% ❗ 61 000 000 80 910 000 (42 000 000; 92 000 000) 15 000 000 439 000 000
tests::mq_size_affecting_fee_works 188 000 000; +248.15% ❗ 54 000 000 72 510 000 (39 500 000; 81 000 000) 10 000 000 436 000 000
tests::mq_size_not_affecting_fee_works 188 000 000; +191.47% ❗ 64 500 000 77 860 000 (43 000 000; 84 500 000) 20 000 000 416 000 000
tests::query_info_and_fee_details_work 250 000 000; +350.45% ❗ 55 500 000 73 640 000 (41 000 000; 81 000 000) 12 000 000 482 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 179 000 000; +316.28% ❗ 43 000 000 55 920 000 (27 000 000; 70 500 000) 7 000 000 336 000 000
tests::pause_program_twice_fails 129 000 000; +136.70% ❗ 54 500 000 69 140 000 (39 000 000; 73 500 000) 17 000 000 360 000 000
tests::pause_program_works 132 000 000; +85.92% ❗ 71 000 000 90 850 000 (59 500 000; 96 500 000) 26 000 000 474 000 000
tests::pause_terminated_program_fails 121 000 000; +101.67% ❗ 60 000 000 71 150 000 (46 000 000; 80 000 000) 17 000 000 279 000 000
tests::pause_uninitialized_program_works 248 000 000; +226.32% ❗ 76 000 000 91 310 000 (59 500 000; 103 000 000) 25 000 000 264 000 000
tests::resume_program_twice_fails 318 000 000; +238.30% ‼️ 94 000 000 109 780 000 (74 500 000; 117 000 000) 44 000 000 312 000 000
tests::resume_program_wrong_list_fails 100 000 000; +25.00% ✔️ 80 000 000 95 700 000 (59 500 000; 103 500 000) 28 000 000 364 000 000
tests::resume_program_wrong_memory_fails 234 000 000; +194.34% ❗ 79 500 000 99 770 000 (66 000 000; 109 500 000) 39 000 000 304 000 000
tests::resume_uninitialized_program_works 366 000 000; +313.56% ‼️ 88 500 000 104 930 000 (67 500 000; 111 500 000) 31 000 000 332 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 67 000 000; +55.81% ✔️ 43 000 000 64 900 000 (31 000 000; 72 000 000) 5 000 000 308 000 000
tests::dust_discarded_with_noop 249 000 000; +336.84% ❗ 57 000 000 71 970 000 (41 000 000; 79 500 000) 16 000 000 340 000 000
tests::external_submitter_gets_rewarded 151 000 000; +155.93% ❗ 59 000 000 75 260 000 (43 500 000; 80 000 000) 17 000 000 335 000 000
tests::gas_properly_handled_for_trap_replies 135 000 000; +162.14% ❗ 51 500 000 75 800 000 (41 500 000; 79 500 000) 17 000 000 375 000 000
tests::ocw_double_charge 99 000 000; +62.30% ❗ 61 000 000 74 800 000 (44 000 000; 82 000 000) 13 000 000 392 000 000
tests::ocw_interval_maintained 92 000 000; +60.00% ❗ 57 500 000 74 870 000 (41 500 000; 79 500 000) 23 000 000 336 000 000
tests::ocw_interval_stretches_for_large_wait_list 214 000 000; +242.40% ❗ 62 500 000 77 950 000 (45 000 000; 86 500 000) 23 000 000 352 000 000
tests::ocw_overlapping_prevented 73 000 000; +37.74% ✔️ 53 000 000 67 560 000 (38 000 000; 77 500 000) 17 000 000 288 000 000
tests::rent_charge_works 109 000 000; +74.40% ❗ 62 500 000 75 550 000 (46 500 000; 85 500 000) 14 000 000 237 000 000
tests::trap_reply_message_is_sent 124 000 000; +123.42% ❗ 55 500 000 65 270 000 (38 500 000; 73 000 000) 13 000 000 248 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 236 790 815 020; +46.27% ❗ 161 883 820 107 186 198 067 678 (160 168 250 905; 172 725 821 147) 149 359 362 067 507 601 598 128

name = Async RwLock

name current median average lower/upper quartile min max
check readers 323 146 263; +526.71% ❗ 51 562 315 137 857 993 (42 535 755; 69 246 740) 31 337 721 2 716 438 344
forever lock 413 292 506; +495.92% ❗ 69 354 125 215 840 162 (60 658 053; 122 188 636) 45 374 197 3 921 859 925
read while writing 817 005 969; +579.52% ❗ 120 232 753 270 877 142 (101 023 053; 174 354 791) 75 755 344 2 640 042 710
rwlock wide 1 526 256 408; +505.25% ❗ 252 169 636 633 321 654 (230 976 416; 308 553 855) 166 554 472 9 771 573 241
write while reading 841 601 756; +445.12% ❗ 154 388 444 382 546 028 (130 370 034; 209 486 703) 95 889 452 5 169 782 902

name = Async init

name current median average lower/upper quartile min max
approved pong 17 660 255 026; +3.13% ✔️ 17 123 835 577 18 704 175 649 (16 915 431 737; 17 921 702 230) 16 492 475 292 33 314 373 175

name = Async-await

name current median average lower/upper quartile min max
normal 280 268 649; +246.25% ❗ 80 944 443 212 886 267 (71 453 760; 94 954 937) 32 968 683 6 220 506 799
panic 283 506 754; +277.17% ❗ 75 166 027 110 286 264 (49 376 837; 89 259 805) 30 400 819 1 038 349 778

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 651 768 040; +376.98% ❗ 136 645 803 368 315 327 (122 436 336; 155 833 322) 67 752 413 7 452 527 442

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 17 041 680 607; +78.79% ❗ 9 531 799 268 10 582 059 297 (9 343 708 410; 10 088 319 052) 8 677 189 857 25 064 694 006
2 of 3; bob & eve 17 459 126 599; +83.84% ❗ 9 496 728 425 10 649 531 508 (9 313 514 991; 10 111 860 109) 8 973 496 826 24 744 847 561
2 of 3; eve & alice 17 171 080 284; +80.60% ❗ 9 507 803 632 10 443 423 823 (9 281 923 312; 10 070 288 920) 8 656 095 949 17 862 844 229
2 of 3; eve doesn't answer, alice replies with incorrect payload 14 633 829 262; +56.10% ❗ 9 374 507 580 10 345 022 685 (9 176 340 809; 9 842 058 783) 8 736 128 495 20 775 491 414
2 of 3; no replies 9 534 033 697; +3.69% ✔️ 9 195 175 171 10 127 631 879 (9 029 767 187; 9 595 310 222) 8 512 496 781 19 223 525 665
Single signatory & zero threshold 12 789 207 983; +36.52% ❗ 9 367 867 349 10 502 470 129 (9 191 008 874; 9 957 897 352) 8 804 395 503 24 845 995 381
Three signatories & redundand threshold 17 582 293 938; +83.10% ❗ 9 602 492 190 10 626 612 984 (9 334 856 331; 10 121 130 167) 8 680 357 668 20 728 608 495
Three signatories; Bob replies with incorrect signature 14 376 017 915; +54.46% ❗ 9 307 281 086 10 446 637 483 (9 153 690 666; 9 835 824 610) 8 379 350 205 22 853 213 581
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 14 670 475 553; +57.60% ❗ 9 308 837 332 10 312 876 726 (9 146 186 159; 9 944 816 268) 8 429 506 178 20 650 904 083

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 5 051 909 685; +0.14% ✔️ 5 044 983 521 5 522 118 546 (4 887 552 682; 5 266 804 035) 3 981 987 195 11 527 022 115
correct signature but for another message 5 590 969 061; +7.88% ❗ 5 182 801 310 5 721 139 016 (5 012 116 170; 5 426 137 521) 4 214 335 446 11 962 301 546
no reply 5 204 620 311; +4.41% ✔️ 4 984 594 329 5 428 260 975 (4 758 924 543; 5 280 167 360) 3 883 154 567 10 711 420 864
signed message 5 880 024 995; +13.17% ❗ 5 195 625 989 5 766 158 340 (4 957 675 093; 5 396 396 343) 4 332 563 460 17 419 286 228

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 344 442 455; +261.93% ❗ 95 167 584 214 941 897 (77 903 542; 108 999 589) 42 655 247 4 640 385 813

name = Decoder

name current median average lower/upper quartile min max
decoder 360 837 854; +445.94% ❗ 66 094 319 188 069 580 (35 961 077; 79 714 658) 22 524 457 7 024 404 804

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 1 911 157 252; +490.16% ❗ 323 835 103 721 457 985 (289 725 524; 401 222 219) 204 744 239 10 102 961 408
join 1 711 434 499; +570.71% ❗ 255 166 161 504 404 412 (229 524 860; 357 888 657) 180 787 528 9 691 953 333
select 1 839 475 938; +570.66% ❗ 274 276 979 627 057 065 (228 655 105; 368 381 297) 178 588 329 10 273 264 511

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 1 697 391 216; +535.96% ❗ 266 901 228 634 512 356 (243 368 272; 321 450 161) 167 883 248 9 809 674 837

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 302 629 744; +229.45% ❗ 91 859 573 263 223 267 (75 527 576; 114 247 302) 47 123 807 5 836 412 986

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 346 090 770; +337.93% ❗ 79 028 689 302 641 896 (37 957 584; 106 697 128) 21 058 591 8 496 790 965

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 16 362 422 357; +1.26% ✔️ 16 159 055 655 17 515 445 689 (15 850 968 255; 17 246 136 132) 15 487 317 227 32 434 923 832

name = Multiping

name current median average lower/upper quartile min max
multiping 336 592 515; +364.39% ❗ 72 481 320 182 937 366 (56 079 635; 81 740 369) 26 655 031 5 792 455 119

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 231 358 146; +409.46% ❗ 45 412 492 152 305 451 (27 690 546; 66 734 036) 16 608 169 3 904 545 562
ping-pong wgas 393 251 907; +641.86% ❗ 53 008 767 98 024 845 (41 133 586; 79 975 241) 28 801 369 1 267 952 206

name = Program_id test

name current median average lower/upper quartile min max
program_id 232 983 373; +253.81% ❗ 65 849 106 167 788 287 (58 027 199; 75 722 632) 22 284 396 3 714 632 612

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 323 112 077; +384.66% ❗ 66 667 357 121 054 393 (46 746 109; 100 466 659) 30 999 446 1 528 116 450
state-saving 273 909 111; +440.30% ❗ 50 695 901 96 969 478 (41 268 367; 82 870 218) 31 990 020 1 051 490 388

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 337 293 425; +368.68% ❗ 71 966 840 190 724 724 (63 846 157; 86 167 528) 25 961 610 4 499 309 774
Try to re-init existing program 511 870 379; +491.96% ❗ 86 471 082 187 219 311 (65 639 704; 108 426 174) 47 663 316 4 654 409 480

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 149 908 222; +519.63% ❗ 24 193 060 55 349 766 (18 239 367; 47 296 506) 12 036 417 463 753 774

name = Wait test

name current median average lower/upper quartile min max
wait 494 244 604; +636.28% ❗ 67 127 701 119 604 884 (53 627 299; 100 221 900) 32 948 479 1 195 736 809

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 861 371 056; +207.14% ❗ 280 445 232 586 497 824 (231 186 045; 363 311 055) 168 202 949 4 850 537 749

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 528 063 909; +414.34% ❗ 102 669 212 287 738 243 (88 144 867; 116 073 212) 66 518 287 7 624 389 982

name = guestbook test

name current median average lower/upper quartile min max
guestbook 9 237 409 816; +2.18% ✔️ 9 040 688 331 10 020 568 952 (8 888 191 663; 9 729 117 024) 7 989 626 171 19 144 048 400

name = gui test

name current median average lower/upper quartile min max
gui 11 547 514 780; -0.28% ✔️ 11 579 366 077 12 806 374 859 (11 330 324 545; 12 179 684 479) 10 908 324 981 26 769 507 857
c095148
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 117 250 000 000; +4467.59% ❗ 2 567 000 000 4 537 890 000 (2 519 000 000; 2 749 500 000) 2 453 000 000 126 968 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 17 000 000; -32.00% ✔️ 25 000 000 36 190 000 (20 000 000; 36 000 000) 5 000 000 265 000 000
tests::all_keys_are_cleared 58 000 000; +52.63% ❗ 38 000 000 52 840 000 (29 000 000; 50 500 000) 11 000 000 266 000 000
tests::gas_free_after_consumed 44 000 000; +12.82% ✔️ 39 000 000 55 190 000 (28 000 000; 55 500 000) 10 000 000 396 000 000
tests::limit_vs_origin 50 000 000; +21.95% ✔️ 41 000 000 57 000 000 (32 000 000; 55 000 000) 10 000 000 282 000 000
tests::long_chain 20 000 000; -50.00% ✔️ 40 000 000 52 210 000 (28 500 000; 58 000 000) 9 000 000 272 000 000
tests::simple_value_tree 30 000 000; -16.67% ✔️ 36 000 000 48 300 000 (27 000 000; 52 000 000) 9 000 000 373 000 000
tests::split_with_no_value 121 000 000; +198.77% ❗ 40 500 000 50 240 000 (28 000 000; 52 000 000) 14 000 000 260 000 000
tests::sub_nodes_tree 53 000 000; +37.66% ❗ 38 500 000 49 090 000 (28 000 000; 52 500 000) 10 000 000 304 000 000
tests::sub_nodes_tree_with_spends 114 000 000; +204.00% ❗ 37 500 000 53 420 000 (26 000 000; 55 500 000) 5 000 000 325 000 000
tests::subtree_gas_limit_remains_intact 65 000 000; +85.71% ❗ 35 000 000 46 240 000 (27 000 000; 52 000 000) 10 000 000 210 000 000
tests::value_tree_known_errors 65 000 000; +68.83% ❗ 38 500 000 49 280 000 (26 500 000; 55 000 000) 14 000 000 296 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 30 000 000; +7.14% ✔️ 28 000 000 37 630 000 (18 500 000; 40 500 000) 5 000 000 260 000 000
schedule::test::print_test_schedule 22 000 000; -29.03% ✔️ 31 000 000 37 240 000 (23 000 000; 41 000 000) 10 000 000 221 000 000
tests::block_gas_limit_works 72 000 000; +41.18% ✔️ 51 000 000 65 850 000 (38 500 000; 74 000 000) 19 000 000 253 000 000
tests::call_forbidden_function 29 000 000; -37.63% ✔️ 46 500 000 56 360 000 (34 500 000; 60 500 000) 20 000 000 289 000 000
tests::cascading_messages_with_value_do_not_overcharge 337 000 000; +42.80% ❗ 236 000 000 309 350 000 (211 000 000; 321 500 000) 168 000 000 1 244 000 000
tests::claim_value_from_mailbox_works 87 000 000; +70.59% ❗ 51 000 000 63 550 000 (41 500 000; 73 500 000) 18 000 000 332 000 000
tests::defer_program_initialization 167 000 000; +58.29% ❗ 105 500 000 126 990 000 (78 500 000; 151 500 000) 59 000 000 416 000 000
tests::distributor_distribute 446 000 000; +335.12% ‼️ 102 500 000 113 910 000 (78 000 000; 131 000 000) 54 000 000 324 000 000
tests::distributor_initialize 121 000 000; +45.78% ❗ 83 000 000 97 760 000 (66 000 000; 112 000 000) 35 000 000 406 000 000
tests::events_logging_works 269 000 000; +344.63% ‼️ 60 500 000 69 550 000 (42 000 000; 83 500 000) 15 000 000 264 000 000
tests::exit_handle 168 000 000; +173.17% ❗ 61 500 000 70 830 000 (40 500 000; 83 000 000) 17 000 000 276 000 000
tests::exit_init 277 000 000; +237.80% ❗ 82 000 000 91 930 000 (64 500 000; 103 500 000) 36 000 000 376 000 000
tests::gas_spent_precalculated 74 000 000; +21.31% ✔️ 61 000 000 73 580 000 (50 000 000; 86 500 000) 27 000 000 331 000 000
tests::gas_spent_vs_balance 521 000 000; +323.58% ❗ 123 000 000 142 220 000 (99 500 000; 151 500 000) 63 000 000 713 000 000
tests::init_message_logging_works 117 000 000; +77.27% ❗ 66 000 000 76 090 000 (47 000 000; 87 000 000) 23 000 000 336 000 000
tests::init_wait_reply_exit_cleaned_storage 156 000 000; +30.00% ❗ 120 000 000 134 350 000 (93 000 000; 150 500 000) 68 000 000 389 000 000
tests::lazy_pages 294 000 000; +342.11% ‼️ 66 500 000 78 490 000 (52 000 000; 89 500 000) 19 000 000 244 000 000
tests::mailbox_works 413 000 000; +566.13% ‼️ 62 000 000 71 070 000 (50 000 000; 81 000 000) 16 000 000 364 000 000
tests::memory_access_cases 270 000 000; +315.38% ❗ 65 000 000 71 120 000 (49 000 000; 83 000 000) 21 000 000 272 000 000
tests::messages_processing_works 96 000 000; +54.84% ❗ 62 000 000 68 380 000 (51 000 000; 83 500 000) 17 000 000 174 000 000
tests::messages_to_paused_program_skipped 314 000 000; +290.06% ❗ 80 500 000 94 530 000 (57 500 000; 108 500 000) 27 000 000 359 000 000
tests::messages_to_uninitialized_program_wait 189 000 000; +119.77% ❗ 86 000 000 92 220 000 (65 500 000; 114 000 000) 29 000 000 304 000 000
tests::no_redundant_gas_value_after_exiting 103 000 000; +54.89% ❗ 66 500 000 70 910 000 (47 000 000; 85 500 000) 18 000 000 174 000 000
tests::paused_program_keeps_id 175 000 000; +108.33% ❗ 84 000 000 96 110 000 (65 500 000; 110 500 000) 36 000 000 300 000 000
tests::program_lifecycle_works 223 000 000; +245.74% ❗ 64 500 000 73 530 000 (48 500 000; 88 500 000) 18 000 000 267 000 000
tests::program_messages_to_paused_program_skipped 277 000 000; +120.72% ❗ 125 500 000 146 230 000 (108 000 000; 159 500 000) 60 000 000 484 000 000
tests::replies_to_paused_program_skipped 280 000 000; +256.69% ❗ 78 500 000 91 350 000 (59 500 000; 109 500 000) 28 000 000 368 000 000
tests::restrict_start_section 149 000 000; +142.28% ❗ 61 500 000 67 380 000 (43 500 000; 76 000 000) 24 000 000 420 000 000
tests::resume_program_works 196 000 000; +69.70% ❗ 115 500 000 138 570 000 (96 000 000; 157 000 000) 58 000 000 440 000 000
tests::send_message_expected_failure 77 000 000; +31.62% ✔️ 58 500 000 76 010 000 (45 000 000; 81 500 000) 22 000 000 428 000 000
tests::send_message_works 78 000 000; +22.83% ✔️ 63 500 000 74 490 000 (48 500 000; 83 000 000) 16 000 000 440 000 000
tests::send_reply_failure_to_claim_from_mailbox 115 000 000; +88.52% ❗ 61 000 000 72 770 000 (44 500 000; 86 000 000) 26 000 000 452 000 000
tests::send_reply_value_claiming_works 140 000 000; +113.74% ❗ 65 500 000 75 560 000 (43 500 000; 86 000 000) 18 000 000 280 000 000
tests::send_reply_works 65 000 000; +13.04% ✔️ 57 500 000 74 190 000 (47 000 000; 80 000 000) 17 000 000 416 000 000
tests::spent_gas_to_reward_block_author_works 107 000 000; +78.33% ❗ 60 000 000 64 210 000 (45 000 000; 76 000 000) 22 000 000 228 000 000
tests::submit_program_expected_failure 121 000 000; +114.16% ❗ 56 500 000 69 400 000 (42 000 000; 76 500 000) 18 000 000 560 000 000
tests::submit_program_fails_on_duplicate_id 104 000 000; +77.78% ❗ 58 500 000 69 330 000 (43 500 000; 76 500 000) 17 000 000 544 000 000
tests::test_code_is_not_reset_within_program_submission 120 000 000; +92.00% ❗ 62 500 000 70 150 000 (44 000 000; 83 000 000) 21 000 000 540 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 70 000 000; +13.82% ✔️ 61 500 000 71 260 000 (43 000 000; 76 500 000) 19 000 000 372 000 000
tests::test_code_submission_pass 82 000 000; +42.61% ✔️ 57 500 000 69 940 000 (39 500 000; 82 500 000) 16 000 000 508 000 000
tests::test_create_program_duplicate 265 000 000; +85.31% ❗ 143 000 000 155 750 000 (118 500 000; 173 500 000) 71 000 000 540 000 000
tests::test_create_program_duplicate_in_one_execution 275 000 000; +187.96% ❗ 95 500 000 113 790 000 (76 500 000; 124 500 000) 42 000 000 529 000 000
tests::test_create_program_miscellaneous 478 000 000; +218.67% ❗ 150 000 000 170 550 000 (123 500 000; 189 000 000) 74 000 000 614 000 000
tests::test_create_program_no_code_hash 1 050 999 999; +278.74% ‼️ 277 500 000 299 860 000 (234 500 000; 341 500 000) 173 000 000 632 000 000
tests::test_create_program_simple 309 000 000; +93.73% ❗ 159 500 000 178 610 000 (133 500 000; 201 500 000) 87 000 000 480 000 000
tests::test_create_program_with_exceeding_value 308 000 000; +285.00% ❗ 80 000 000 90 200 000 (61 500 000; 109 500 000) 27 000 000 336 000 000
tests::test_create_program_with_value_lt_ed 371 000 000; +250.00% ❗ 106 000 000 125 410 000 (89 000 000; 132 000 000) 50 000 000 700 000 000
tests::test_create_program_without_gas_works 172 000 000; +111.04% ❗ 81 500 000 90 680 000 (57 500 000; 104 000 000) 26 000 000 408 000 000
tests::test_message_processing_for_non_existing_destination 87 000 000; +40.32% ❗ 62 000 000 72 370 000 (48 000 000; 79 500 000) 26 000 000 323 000 000
tests::test_reply_to_terminated_program 176 000 000; +112.05% ❗ 83 000 000 95 180 000 (64 000 000; 104 500 000) 24 000 000 481 000 000
tests::test_same_code_submission_fails 101 000 000; +56.59% ❗ 64 500 000 76 020 000 (54 000 000; 81 500 000) 15 000 000 320 000 000
tests::test_two_contracts_composition_works 621 000 000; +174.17% ❗ 226 500 000 255 140 000 (193 000 000; 279 000 000) 136 000 000 753 000 000
tests::uninitialized_program_should_accept_replies 238 000 000; +106.06% ❗ 115 500 000 130 300 000 (98 500 000; 147 000 000) 58 000 000 396 000 000
tests::unstoppable_block_execution_works 182 000 000; +156.34% ❗ 71 000 000 80 650 000 (54 000 000; 87 500 000) 23 000 000 380 000 000
tests::unused_gas_released_back_works 142 000 000; +108.82% ❗ 68 000 000 75 900 000 (52 000 000; 88 000 000) 9 000 000 504 000 000
tests::wake_messages_after_program_inited 515 000 000; +138.98% ‼️ 215 500 000 233 350 000 (186 500 000; 254 500 000) 117 000 000 496 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 79 000 000; +73.63% ❗ 45 500 000 52 730 000 (28 500 000; 66 000 000) 6 000 000 224 000 000
tests::check_changed_pages_in_storage 61 000 000; -8.96% ✔️ 67 000 000 77 820 000 (52 500 000; 88 000 000) 19 000 000 324 000 000
tests::debug_mode_works 53 000 000; -32.05% ✔️ 78 000 000 81 930 000 (56 000 000; 102 500 000) 23 000 000 258 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 133 000 000; +189.13% ❗ 46 000 000 50 710 000 (32 500 000; 59 000 000) 5 000 000 263 000 000
tests::dequeued_impl_works_manually 140 000 000; +154.55% ❗ 55 000 000 61 430 000 (40 000 000; 75 500 000) 15 000 000 173 000 000
tests::queue_processing_impl_works_manually 243 000 000; +291.94% ❗ 62 000 000 64 900 000 (46 000 000; 75 000 000) 17 000 000 247 000 000
tests::queue_works 203 000 000; +253.04% ❗ 57 500 000 68 350 000 (41 000 000; 87 000 000) 7 000 000 343 000 000
tests::sent_impl_works 195 000 000; +261.11% ❗ 54 000 000 58 650 000 (39 000 000; 70 500 000) 9 000 000 225 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 57 000 000; +50.00% ❗ 38 000 000 47 860 000 (25 000 000; 55 500 000) 4 000 000 233 000 000
tests::custom_fee_multiplier_updated_per_block 57 000 000; +0.00% ✔️ 57 000 000 61 000 000 (45 000 000; 76 000 000) 20 000 000 224 000 000
tests::fee_rounding_error_bounded_by_multiplier 84 000 000; +47.37% ❗ 57 000 000 66 500 000 (44 500 000; 78 500 000) 14 000 000 295 000 000
tests::mq_size_affecting_fee_works 84 000 000; +47.37% ❗ 57 000 000 63 780 000 (41 000 000; 77 500 000) 9 000 000 281 000 000
tests::mq_size_not_affecting_fee_works 101 000 000; +71.19% ❗ 59 000 000 64 630 000 (45 500 000; 74 500 000) 20 000 000 272 000 000
tests::query_info_and_fee_details_work 81 000 000; +36.13% ✔️ 59 500 000 67 540 000 (38 500 000; 83 000 000) 15 000 000 340 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 216 000 000; +414.29% ❗ 42 000 000 50 160 000 (28 500 000; 61 500 000) 4 000 000 328 000 000
tests::pause_program_twice_fails 80 000 000; +31.15% ❗ 61 000 000 67 840 000 (45 000 000; 75 500 000) 17 000 000 520 000 000
tests::pause_program_works 209 000 000; +216.67% ❗ 66 000 000 74 440 000 (55 500 000; 87 500 000) 20 000 000 332 000 000
tests::pause_terminated_program_fails 60 000 000; +17.65% ✔️ 51 000 000 59 990 000 (36 000 000; 68 500 000) 20 000 000 326 000 000
tests::pause_uninitialized_program_works 80 000 000; +10.34% ✔️ 72 500 000 81 150 000 (54 000 000; 94 500 000) 19 000 000 256 000 000
tests::resume_program_twice_fails 167 000 000; +79.57% ❗ 93 000 000 103 280 000 (77 500 000; 122 500 000) 36 000 000 407 000 000
tests::resume_program_wrong_list_fails 109 000 000; +27.49% ❗ 85 500 000 91 170 000 (66 500 000; 101 000 000) 29 000 000 320 000 000
tests::resume_program_wrong_memory_fails 105 000 000; +28.83% ✔️ 81 500 000 92 300 000 (63 000 000; 117 000 000) 24 000 000 247 000 000
tests::resume_uninitialized_program_works 203 000 000; +152.17% ❗ 80 500 000 91 260 000 (63 500 000; 108 500 000) 27 000 000 340 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 87 000 000; +97.73% ❗ 44 000 000 50 800 000 (28 000 000; 63 000 000) 8 000 000 228 000 000
tests::dust_discarded_with_noop 152 000 000; +159.83% ❗ 58 500 000 69 570 000 (40 500 000; 76 000 000) 17 000 000 428 000 000
tests::external_submitter_gets_rewarded 151 000 000; +179.63% ❗ 54 000 000 63 460 000 (43 000 000; 70 000 000) 13 000 000 284 000 000
tests::gas_properly_handled_for_trap_replies 143 000 000; +150.88% ❗ 57 000 000 67 500 000 (46 000 000; 76 000 000) 21 000 000 358 000 000
tests::ocw_double_charge 164 000 000; +190.27% ❗ 56 500 000 64 790 000 (39 500 000; 78 500 000) 18 000 000 304 000 000
tests::ocw_interval_maintained 160 000 000; +171.19% ❗ 59 000 000 67 740 000 (41 500 000; 83 000 000) 15 000 000 328 000 000
tests::ocw_interval_stretches_for_large_wait_list 155 000 000; +198.08% ❗ 52 000 000 59 200 000 (39 500 000; 69 000 000) 18 000 000 344 000 000
tests::ocw_overlapping_prevented 96 000 000; +76.15% ❗ 54 500 000 61 410 000 (37 500 000; 73 000 000) 17 000 000 216 000 000
tests::rent_charge_works 91 000 000; +70.09% ❗ 53 500 000 61 830 000 (38 000 000; 75 500 000) 14 000 000 240 000 000
tests::trap_reply_message_is_sent 57 000 000; +5.56% ✔️ 54 000 000 60 500 000 (41 000 000; 67 500 000) 13 000 000 332 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 282 434 177 935; +69.04% ‼️ 167 083 520 280 167 090 932 100 (166 519 408 878; 167 693 230 399) 164 918 265 680 169 349 884 756

name = Async RwLock

name current median average lower/upper quartile min max
check readers 267 898 574; +417.87% ‼️ 51 730 361 57 534 756 (43 010 249; 64 498 748) 32 610 656 124 175 995
forever lock 424 614 492; +456.02% ‼️ 76 366 226 83 640 052 (63 520 381; 97 849 223) 44 775 706 150 081 073
read while writing 1 002 775 860; +617.14% ‼️ 139 829 990 146 163 472 (113 985 532; 182 349 038) 76 595 752 246 672 265
rwlock wide 2 507 548 218; +764.96% ‼️ 289 901 911 294 024 000 (266 552 012; 316 112 673) 187 852 060 392 047 451
write while reading 1 065 469 609; +463.37% ‼️ 189 125 591 184 719 485 (160 328 905; 210 018 446) 112 836 374 256 215 786

name = Async init

name current median average lower/upper quartile min max
approved pong 22 048 922 990; +26.11% ‼️ 17 483 809 548 17 481 827 044 (17 339 948 779; 17 601 995 485) 17 082 004 817 18 068 059 002

name = Async-await

name current median average lower/upper quartile min max
normal 628 708 979; +650.91% ‼️ 83 725 887 82 810 393 (76 653 045; 91 288 270) 38 100 790 123 193 693
panic 642 159 597; +876.83% ‼️ 65 739 181 70 257 003 (52 468 174; 91 604 647) 31 127 746 113 904 060

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 1 084 728 626; +639.18% ‼️ 146 746 765 137 042 230 (106 057 820; 157 900 512) 61 373 083 187 830 686

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 18 956 073 045; +95.96% ‼️ 9 673 341 107 9 682 096 957 (9 563 335 248; 9 788 547 730) 9 289 325 799 10 130 215 681
2 of 3; bob & eve 19 425 795 232; +98.82% ‼️ 9 770 575 652 9 746 443 706 (9 622 848 565; 9 862 968 412) 9 278 407 744 10 155 941 315
2 of 3; eve & alice 15 655 455 261; +62.08% ‼️ 9 659 176 005 9 657 136 627 (9 516 576 856; 9 763 925 754) 9 358 873 198 10 041 649 136
2 of 3; eve doesn't answer, alice replies with incorrect payload 16 558 460 505; +72.87% ‼️ 9 578 730 505 9 564 145 239 (9 391 998 992; 9 718 189 288) 9 129 367 854 10 117 459 903
2 of 3; no replies 11 176 764 961; +19.15% ‼️ 9 380 067 714 9 374 766 350 (9 231 638 144; 9 502 138 836) 8 950 168 108 9 838 962 470
Single signatory & zero threshold 17 260 073 357; +79.67% ‼️ 9 606 390 156 9 598 071 106 (9 468 583 465; 9 708 082 488) 9 146 998 332 10 049 419 829
Three signatories & redundand threshold 18 767 268 601; +91.54% ‼️ 9 798 082 805 9 804 090 709 (9 692 384 040; 9 899 565 849) 9 384 986 480 10 166 542 816
Three signatories; Bob replies with incorrect signature 16 987 908 196; +77.73% ‼️ 9 558 401 587 9 548 843 743 (9 403 473 797; 9 706 347 582) 8 883 928 033 10 034 916 230
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 15 954 916 589; +67.43% ‼️ 9 529 492 822 9 548 084 887 (9 446 563 970; 9 652 122 498) 9 280 127 735 10 019 078 053

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 6 236 593 336; +22.33% ‼️ 5 098 178 293 5 079 435 034 (4 913 330 524; 5 234 351 915) 4 567 100 949 5 426 877 881
correct signature but for another message 7 223 138 998; +36.54% ‼️ 5 290 035 882 5 266 205 647 (5 154 150 013; 5 395 164 849) 4 811 775 923 5 599 110 537
no reply 6 415 032 490; +27.04% ‼️ 5 049 616 138 5 030 642 184 (4 879 230 624; 5 198 891 452) 4 472 949 938 5 418 741 894
signed message 7 049 293 092; +33.00% ‼️ 5 300 033 221 5 268 584 446 (5 130 536 445; 5 408 082 209) 4 773 411 617 5 610 844 733

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 651 391 589; +559.72% ‼️ 98 737 172 96 765 085 (89 138 198; 105 590 836) 55 538 260 136 035 491

name = Decoder

name current median average lower/upper quartile min max
decoder 658 893 194; +876.34% ‼️ 67 486 051 60 137 450 (38 550 732; 78 655 779) 20 451 703 106 150 527

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 2 931 277 590; +683.43% ‼️ 374 157 879 364 558 047 (311 470 185; 423 430 826) 220 215 705 500 070 518
join 2 051 166 749; +639.83% ‼️ 277 247 526 294 628 943 (240 187 141; 349 268 625) 166 984 724 482 156 676
select 2 101 894 752; +608.67% ‼️ 296 597 472 306 285 307 (238 840 097; 357 323 682) 161 688 498 489 292 200

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 2 346 733 825; +689.19% ‼️ 297 361 077 289 664 824 (245 623 010; 331 869 485) 155 092 986 421 208 889

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 579 236 197; +482.85% ‼️ 99 379 454 96 950 556 (86 903 344; 106 477 601) 52 701 656 143 545 579

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 759 510 273; +763.14% ‼️ 87 993 489 80 065 483 (49 494 045; 102 020 681) 21 889 675 152 105 982

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 20 862 545 706; +27.00% ‼️ 16 427 632 613 16 433 928 299 (16 264 556 316; 16 546 269 912) 15 983 357 285 17 036 150 144

name = Multiping

name current median average lower/upper quartile min max
multiping 562 390 516; +659.97% ‼️ 74 001 849 67 046 900 (52 224 237; 80 334 945) 26 460 155 93 591 898

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 138 467 869; +254.09% ‼️ 39 105 361 44 965 531 (29 904 590; 63 828 092) 17 462 790 81 271 310
ping-pong wgas 283 416 140; +442.30% ‼️ 52 262 334 56 876 059 (44 136 713; 62 879 865) 29 260 257 103 333 172

name = Program_id test

name current median average lower/upper quartile min max
program_id 143 577 780; +116.52% ‼️ 66 310 955 63 626 890 (59 103 721; 70 081 496) 32 653 600 78 873 084

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 638 711 588; +949.62% ‼️ 60 851 982 69 377 283 (49 962 083; 92 808 705) 36 252 767 102 220 170
state-saving 313 321 417; +502.33% ‼️ 52 018 409 57 768 035 (44 126 071; 61 903 900) 32 796 322 121 431 001

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 506 437 781; +576.06% ‼️ 74 910 102 73 000 931 (67 428 058; 81 869 081) 30 114 485 104 560 809
Try to re-init existing program 378 399 283; +313.68% ‼️ 91 472 265 89 175 075 (71 041 618; 107 376 862) 45 856 112 130 212 562

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 124 369 459; +440.90% ‼️ 22 993 192 30 141 048 (18 197 122; 48 225 566) 11 773 117 59 581 989

name = Wait test

name current median average lower/upper quartile min max
wait 564 248 156; +650.10% ‼️ 75 222 612 81 866 807 (62 660 912; 104 423 289) 40 103 627 136 502 980

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 1 244 163 265; +277.86% ‼️ 329 263 475 330 436 059 (301 941 878; 357 018 322) 188 568 051 457 258 897

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 717 845 383; +596.08% ‼️ 103 126 168 102 924 131 (96 321 408; 111 332 439) 68 714 886 136 424 561

name = guestbook test

name current median average lower/upper quartile min max
guestbook 10 770 974 695; +16.22% ‼️ 9 267 619 209 9 256 520 926 (9 081 609 099; 9 402 447 947) 8 739 777 178 9 702 941 681

name = gui test

name current median average lower/upper quartile min max
gui 14 377 393 317; +21.90% ‼️ 11 794 609 734 11 792 062 791 (11 653 889 709; 11 900 306 732) 11 429 922 317 12 308 348 298
4af5193
Pallet tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 131 919 999 999; +5039.07% ‼️ 2 567 000 000 4 537 890 000 (2 519 000 000; 2 749 500 000) 2 453 000 000 126 968 000 000

name = pallet-gas

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 38 000 000; +52.00% ❗ 25 000 000 36 190 000 (20 000 000; 36 000 000) 5 000 000 265 000 000
tests::all_keys_are_cleared 67 000 000; +76.32% ❗ 38 000 000 52 840 000 (29 000 000; 50 500 000) 11 000 000 266 000 000
tests::gas_free_after_consumed 21 000 000; -46.15% ✔️ 39 000 000 55 190 000 (28 000 000; 55 500 000) 10 000 000 396 000 000
tests::limit_vs_origin 38 000 000; -7.32% ✔️ 41 000 000 57 000 000 (32 000 000; 55 000 000) 10 000 000 282 000 000
tests::long_chain 48 000 000; +20.00% ✔️ 40 000 000 52 210 000 (28 500 000; 58 000 000) 9 000 000 272 000 000
tests::simple_value_tree 75 000 000; +108.33% ❗ 36 000 000 48 300 000 (27 000 000; 52 000 000) 9 000 000 373 000 000
tests::split_with_no_value 44 000 000; +8.64% ✔️ 40 500 000 50 240 000 (28 000 000; 52 000 000) 14 000 000 260 000 000
tests::sub_nodes_tree 29 000 000; -24.68% ✔️ 38 500 000 49 090 000 (28 000 000; 52 500 000) 10 000 000 304 000 000
tests::sub_nodes_tree_with_spends 71 000 000; +89.33% ❗ 37 500 000 53 420 000 (26 000 000; 55 500 000) 5 000 000 325 000 000
tests::subtree_gas_limit_remains_intact 48 000 000; +37.14% ✔️ 35 000 000 46 240 000 (27 000 000; 52 000 000) 10 000 000 210 000 000
tests::value_tree_known_errors 69 000 000; +79.22% ❗ 38 500 000 49 280 000 (26 500 000; 55 000 000) 14 000 000 296 000 000

name = pallet-gear

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 40 000 000; +42.86% ✔️ 28 000 000 37 630 000 (18 500 000; 40 500 000) 5 000 000 260 000 000
schedule::test::print_test_schedule 12 000 000; -61.29% ✔️ 31 000 000 37 240 000 (23 000 000; 41 000 000) 10 000 000 221 000 000
tests::block_gas_limit_works 65 000 000; +27.45% ✔️ 51 000 000 65 850 000 (38 500 000; 74 000 000) 19 000 000 253 000 000
tests::call_forbidden_function 36 000 000; -22.58% ✔️ 46 500 000 56 360 000 (34 500 000; 60 500 000) 20 000 000 289 000 000
tests::cascading_messages_with_value_do_not_overcharge 353 000 000; +49.58% ❗ 236 000 000 309 350 000 (211 000 000; 321 500 000) 168 000 000 1 244 000 000
tests::claim_value_from_mailbox_works 23 000 000; -54.90% ✔️ 51 000 000 63 550 000 (41 500 000; 73 500 000) 18 000 000 332 000 000
tests::defer_program_initialization 135 000 000; +27.96% ✔️ 105 500 000 126 990 000 (78 500 000; 151 500 000) 59 000 000 416 000 000
tests::distributor_distribute 76 000 000; -25.85% ✔️ 102 500 000 113 910 000 (78 000 000; 131 000 000) 54 000 000 324 000 000
tests::distributor_initialize 92 000 000; +10.84% ✔️ 83 000 000 97 760 000 (66 000 000; 112 000 000) 35 000 000 406 000 000
tests::events_logging_works 38 000 000; -37.19% ✔️ 60 500 000 69 550 000 (42 000 000; 83 500 000) 15 000 000 264 000 000
tests::exit_handle 104 000 000; +69.11% ❗ 61 500 000 70 830 000 (40 500 000; 83 000 000) 17 000 000 276 000 000
tests::exit_init 194 000 000; +136.59% ❗ 82 000 000 91 930 000 (64 500 000; 103 500 000) 36 000 000 376 000 000
tests::gas_spent_precalculated 124 000 000; +103.28% ❗ 61 000 000 73 580 000 (50 000 000; 86 500 000) 27 000 000 331 000 000
tests::gas_spent_vs_balance 145 000 000; +17.89% ✔️ 123 000 000 142 220 000 (99 500 000; 151 500 000) 63 000 000 713 000 000
tests::init_message_logging_works 46 000 000; -30.30% ✔️ 66 000 000 76 090 000 (47 000 000; 87 000 000) 23 000 000 336 000 000
tests::init_wait_reply_exit_cleaned_storage 202 000 000; +68.33% ❗ 120 000 000 134 350 000 (93 000 000; 150 500 000) 68 000 000 389 000 000
tests::lazy_pages 69 000 000; +3.76% ✔️ 66 500 000 78 490 000 (52 000 000; 89 500 000) 19 000 000 244 000 000
tests::mailbox_works 109 000 000; +75.81% ❗ 62 000 000 71 070 000 (50 000 000; 81 000 000) 16 000 000 364 000 000
tests::memory_access_cases 78 000 000; +20.00% ✔️ 65 000 000 71 120 000 (49 000 000; 83 000 000) 21 000 000 272 000 000
tests::messages_processing_works 120 000 000; +93.55% ❗ 62 000 000 68 380 000 (51 000 000; 83 500 000) 17 000 000 174 000 000
tests::messages_to_paused_program_skipped 174 000 000; +116.15% ❗ 80 500 000 94 530 000 (57 500 000; 108 500 000) 27 000 000 359 000 000
tests::messages_to_uninitialized_program_wait 224 000 000; +160.47% ❗ 86 000 000 92 220 000 (65 500 000; 114 000 000) 29 000 000 304 000 000
tests::no_redundant_gas_value_after_exiting 43 000 000; -35.34% ✔️ 66 500 000 70 910 000 (47 000 000; 85 500 000) 18 000 000 174 000 000
tests::paused_program_keeps_id 207 000 000; +146.43% ❗ 84 000 000 96 110 000 (65 500 000; 110 500 000) 36 000 000 300 000 000
tests::program_lifecycle_works 130 000 000; +101.55% ❗ 64 500 000 73 530 000 (48 500 000; 88 500 000) 18 000 000 267 000 000
tests::program_messages_to_paused_program_skipped 340 000 000; +170.92% ❗ 125 500 000 146 230 000 (108 000 000; 159 500 000) 60 000 000 484 000 000
tests::replies_to_paused_program_skipped 184 000 000; +134.39% ❗ 78 500 000 91 350 000 (59 500 000; 109 500 000) 28 000 000 368 000 000
tests::restrict_start_section 139 000 000; +126.02% ❗ 61 500 000 67 380 000 (43 500 000; 76 000 000) 24 000 000 420 000 000
tests::resume_program_works 251 000 000; +117.32% ❗ 115 500 000 138 570 000 (96 000 000; 157 000 000) 58 000 000 440 000 000
tests::send_message_expected_failure 114 000 000; +94.87% ❗ 58 500 000 76 010 000 (45 000 000; 81 500 000) 22 000 000 428 000 000
tests::send_message_works 130 000 000; +104.72% ❗ 63 500 000 74 490 000 (48 500 000; 83 000 000) 16 000 000 440 000 000
tests::send_reply_failure_to_claim_from_mailbox 153 000 000; +150.82% ❗ 61 000 000 72 770 000 (44 500 000; 86 000 000) 26 000 000 452 000 000
tests::send_reply_value_claiming_works 156 000 000; +138.17% ❗ 65 500 000 75 560 000 (43 500 000; 86 000 000) 18 000 000 280 000 000
tests::send_reply_works 128 000 000; +122.61% ❗ 57 500 000 74 190 000 (47 000 000; 80 000 000) 17 000 000 416 000 000
tests::spent_gas_to_reward_block_author_works 309 000 000; +415.00% ‼️ 60 000 000 64 210 000 (45 000 000; 76 000 000) 22 000 000 228 000 000
tests::submit_program_expected_failure 113 000 000; +100.00% ❗ 56 500 000 69 400 000 (42 000 000; 76 500 000) 18 000 000 560 000 000
tests::submit_program_fails_on_duplicate_id 116 000 000; +98.29% ❗ 58 500 000 69 330 000 (43 500 000; 76 500 000) 17 000 000 544 000 000
tests::test_code_is_not_reset_within_program_submission 146 000 000; +133.60% ❗ 62 500 000 70 150 000 (44 000 000; 83 000 000) 21 000 000 540 000 000
tests::test_code_is_not_submitted_twice_after_program_submission 110 000 000; +78.86% ❗ 61 500 000 71 260 000 (43 000 000; 76 500 000) 19 000 000 372 000 000
tests::test_code_submission_pass 34 000 000; -40.87% ✔️ 57 500 000 69 940 000 (39 500 000; 82 500 000) 16 000 000 508 000 000
tests::test_create_program_duplicate 480 000 000; +235.66% ❗ 143 000 000 155 750 000 (118 500 000; 173 500 000) 71 000 000 540 000 000
tests::test_create_program_duplicate_in_one_execution 185 000 000; +93.72% ❗ 95 500 000 113 790 000 (76 500 000; 124 500 000) 42 000 000 529 000 000
tests::test_create_program_miscellaneous 490 000 000; +226.67% ❗ 150 000 000 170 550 000 (123 500 000; 189 000 000) 74 000 000 614 000 000
tests::test_create_program_no_code_hash 1 469 000 000; +429.37% ‼️ 277 500 000 299 860 000 (234 500 000; 341 500 000) 173 000 000 632 000 000
tests::test_create_program_simple 499 000 000; +212.85% ‼️ 159 500 000 178 610 000 (133 500 000; 201 500 000) 87 000 000 480 000 000
tests::test_create_program_with_exceeding_value 452 000 000; +465.00% ‼️ 80 000 000 90 200 000 (61 500 000; 109 500 000) 27 000 000 336 000 000
tests::test_create_program_with_value_lt_ed 448 000 000; +322.64% ❗ 106 000 000 125 410 000 (89 000 000; 132 000 000) 50 000 000 700 000 000
tests::test_create_program_without_gas_works 120 000 000; +47.24% ❗ 81 500 000 90 680 000 (57 500 000; 104 000 000) 26 000 000 408 000 000
tests::test_message_processing_for_non_existing_destination 122 000 000; +96.77% ❗ 62 000 000 72 370 000 (48 000 000; 79 500 000) 26 000 000 323 000 000
tests::test_reply_to_terminated_program 145 000 000; +74.70% ❗ 83 000 000 95 180 000 (64 000 000; 104 500 000) 24 000 000 481 000 000
tests::test_same_code_submission_fails 172 000 000; +166.67% ❗ 64 500 000 76 020 000 (54 000 000; 81 500 000) 15 000 000 320 000 000
tests::test_two_contracts_composition_works 519 000 000; +129.14% ❗ 226 500 000 255 140 000 (193 000 000; 279 000 000) 136 000 000 753 000 000
tests::uninitialized_program_should_accept_replies 350 000 000; +203.03% ❗ 115 500 000 130 300 000 (98 500 000; 147 000 000) 58 000 000 396 000 000
tests::unstoppable_block_execution_works 331 000 000; +366.20% ❗ 71 000 000 80 650 000 (54 000 000; 87 500 000) 23 000 000 380 000 000
tests::unused_gas_released_back_works 290 000 000; +326.47% ❗ 68 000 000 75 900 000 (52 000 000; 88 000 000) 9 000 000 504 000 000
tests::wake_messages_after_program_inited 1 301 000 000; +503.71% ‼️ 215 500 000 233 350 000 (186 500 000; 254 500 000) 117 000 000 496 000 000

name = pallet-gear-debug

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 269 000 000; +491.21% ‼️ 45 500 000 52 730 000 (28 500 000; 66 000 000) 6 000 000 224 000 000
tests::check_changed_pages_in_storage 239 000 000; +256.72% ❗ 67 000 000 77 820 000 (52 500 000; 88 000 000) 19 000 000 324 000 000
tests::debug_mode_works 126 000 000; +61.54% ❗ 78 000 000 81 930 000 (56 000 000; 102 500 000) 23 000 000 258 000 000

name = pallet-gear-messenger

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 65 000 000; +41.30% ❗ 46 000 000 50 710 000 (32 500 000; 59 000 000) 5 000 000 263 000 000
tests::dequeued_impl_works_manually 126 000 000; +129.09% ❗ 55 000 000 61 430 000 (40 000 000; 75 500 000) 15 000 000 173 000 000
tests::queue_processing_impl_works_manually 165 000 000; +166.13% ❗ 62 000 000 64 900 000 (46 000 000; 75 000 000) 17 000 000 247 000 000
tests::queue_works 164 000 000; +185.22% ❗ 57 500 000 68 350 000 (41 000 000; 87 000 000) 7 000 000 343 000 000
tests::sent_impl_works 116 000 000; +114.81% ❗ 54 000 000 58 650 000 (39 000 000; 70 500 000) 9 000 000 225 000 000

name = pallet-gear-payment

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 94 000 000; +147.37% ❗ 38 000 000 47 860 000 (25 000 000; 55 500 000) 4 000 000 233 000 000
tests::custom_fee_multiplier_updated_per_block 995 000 000; +1645.61% ‼️ 57 000 000 61 000 000 (45 000 000; 76 000 000) 20 000 000 224 000 000
tests::fee_rounding_error_bounded_by_multiplier 979 000 000; +1617.54% ‼️ 57 000 000 66 500 000 (44 500 000; 78 500 000) 14 000 000 295 000 000
tests::mq_size_affecting_fee_works 160 000 000; +180.70% ❗ 57 000 000 63 780 000 (41 000 000; 77 500 000) 9 000 000 281 000 000
tests::mq_size_not_affecting_fee_works 970 000 000; +1544.07% ‼️ 59 000 000 64 630 000 (45 500 000; 74 500 000) 20 000 000 272 000 000
tests::query_info_and_fee_details_work 957 000 000; +1508.40% ‼️ 59 500 000 67 540 000 (38 500 000; 83 000 000) 15 000 000 340 000 000

name = pallet-gear-program

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 949 000 000; +2159.52% ‼️ 42 000 000 50 160 000 (28 500 000; 61 500 000) 4 000 000 328 000 000
tests::pause_program_twice_fails 921 000 000; +1409.84% ‼️ 61 000 000 67 840 000 (45 000 000; 75 500 000) 17 000 000 520 000 000
tests::pause_program_works 912 000 000; +1281.82% ‼️ 66 000 000 74 440 000 (55 500 000; 87 500 000) 20 000 000 332 000 000
tests::pause_terminated_program_fails 895 000 000; +1654.90% ‼️ 51 000 000 59 990 000 (36 000 000; 68 500 000) 20 000 000 326 000 000
tests::pause_uninitialized_program_works 886 000 000; +1122.07% ‼️ 72 500 000 81 150 000 (54 000 000; 94 500 000) 19 000 000 256 000 000
tests::resume_program_twice_fails 887 000 000; +853.76% ‼️ 93 000 000 103 280 000 (77 500 000; 122 500 000) 36 000 000 407 000 000
tests::resume_program_wrong_list_fails 852 000 000; +896.49% ‼️ 85 500 000 91 170 000 (66 500 000; 101 000 000) 29 000 000 320 000 000
tests::resume_program_wrong_memory_fails 848 000 000; +940.49% ‼️ 81 500 000 92 300 000 (63 000 000; 117 000 000) 24 000 000 247 000 000
tests::resume_uninitialized_program_works 807 000 000; +902.48% ‼️ 80 500 000 91 260 000 (63 500 000; 108 500 000) 27 000 000 340 000 000

name = pallet-usage

name current median average lower/upper quartile min max
mock::__construct_runtime_integrity_test::runtime_integrity_tests 50 000 000; +13.64% ✔️ 44 000 000 50 800 000 (28 000 000; 63 000 000) 8 000 000 228 000 000
tests::dust_discarded_with_noop 125 000 000; +113.68% ❗ 58 500 000 69 570 000 (40 500 000; 76 000 000) 17 000 000 428 000 000
tests::external_submitter_gets_rewarded 56 000 000; +3.70% ✔️ 54 000 000 63 460 000 (43 000 000; 70 000 000) 13 000 000 284 000 000
tests::gas_properly_handled_for_trap_replies 69 000 000; +21.05% ✔️ 57 000 000 67 500 000 (46 000 000; 76 000 000) 21 000 000 358 000 000
tests::ocw_double_charge 106 000 000; +87.61% ❗ 56 500 000 64 790 000 (39 500 000; 78 500 000) 18 000 000 304 000 000
tests::ocw_interval_maintained 111 000 000; +88.14% ❗ 59 000 000 67 740 000 (41 500 000; 83 000 000) 15 000 000 328 000 000
tests::ocw_interval_stretches_for_large_wait_list 1 855 000 000; +3467.31% ‼️ 52 000 000 59 200 000 (39 500 000; 69 000 000) 18 000 000 344 000 000
tests::ocw_overlapping_prevented 123 000 000; +125.69% ❗ 54 500 000 61 410 000 (37 500 000; 73 000 000) 17 000 000 216 000 000
tests::rent_charge_works 142 000 000; +165.42% ❗ 53 500 000 61 830 000 (38 000 000; 75 500 000) 14 000 000 240 000 000
tests::trap_reply_message_is_sent 121 000 000; +124.07% ❗ 54 000 000 60 500 000 (41 000 000; 67 500 000) 13 000 000 332 000 000
Runtime tests (values are in nanoseconds)

Total execution time

name current median average lower/upper quartile min max
Total time 812 061 038 865; +386.02% ‼️ 167 083 520 280 167 090 932 100 (166 519 408 878; 167 693 230 399) 164 918 265 680 169 349 884 756

name = Async RwLock

name current median average lower/upper quartile min max
check readers 975 284 966; +1785.32% ‼️ 51 730 361 57 534 756 (43 010 249; 64 498 748) 32 610 656 124 175 995
forever lock 1 259 534 100; +1549.33% ‼️ 76 366 226 83 640 052 (63 520 381; 97 849 223) 44 775 706 150 081 073
read while writing 4 980 602 259; +3461.90% ‼️ 139 829 990 146 163 472 (113 985 532; 182 349 038) 76 595 752 246 672 265
rwlock wide 9 899 924 780; +3314.92% ‼️ 289 901 911 294 024 000 (266 552 012; 316 112 673) 187 852 060 392 047 451
write while reading 5 980 638 422; +3062.26% ‼️ 189 125 591 184 719 485 (160 328 905; 210 018 446) 112 836 374 256 215 786

name = Async init

name current median average lower/upper quartile min max
approved pong 48 510 548 323; +177.46% ‼️ 17 483 809 548 17 481 827 044 (17 339 948 779; 17 601 995 485) 17 082 004 817 18 068 059 002

name = Async-await

name current median average lower/upper quartile min max
normal 6 012 681 659; +7081.39% ‼️ 83 725 887 82 810 393 (76 653 045; 91 288 270) 38 100 790 123 193 693
panic 1 448 464 088; +2103.35% ‼️ 65 739 181 70 257 003 (52 468 174; 91 604 647) 31 127 746 113 904 060

name = Async-duplicates-sync

name current median average lower/upper quartile min max
async-duplicates-sync 10 452 806 217; +7023.02% ‼️ 146 746 765 137 042 230 (106 057 820; 157 900 512) 61 373 083 187 830 686

name = Async-multisig (well known cases)

name current median average lower/upper quartile min max
2 of 3; bob & alice 28 981 558 692; +199.60% ‼️ 9 673 341 107 9 682 096 957 (9 563 335 248; 9 788 547 730) 9 289 325 799 10 130 215 681
2 of 3; bob & eve 28 339 282 971; +190.05% ‼️ 9 770 575 652 9 746 443 706 (9 622 848 565; 9 862 968 412) 9 278 407 744 10 155 941 315
2 of 3; eve & alice 29 289 795 261; +203.23% ‼️ 9 659 176 005 9 657 136 627 (9 516 576 856; 9 763 925 754) 9 358 873 198 10 041 649 136
2 of 3; eve doesn't answer, alice replies with incorrect payload 28 083 256 790; +193.18% ‼️ 9 578 730 505 9 564 145 239 (9 391 998 992; 9 718 189 288) 9 129 367 854 10 117 459 903
2 of 3; no replies 22 385 366 109; +138.65% ‼️ 9 380 067 714 9 374 766 350 (9 231 638 144; 9 502 138 836) 8 950 168 108 9 838 962 470
Single signatory & zero threshold 40 300 030 332; +319.51% ‼️ 9 606 390 156 9 598 071 106 (9 468 583 465; 9 708 082 488) 9 146 998 332 10 049 419 829
Three signatories & redundand threshold 33 003 071 327; +236.83% ‼️ 9 798 082 805 9 804 090 709 (9 692 384 040; 9 899 565 849) 9 384 986 480 10 166 542 816
Three signatories; Bob replies with incorrect signature 31 156 966 062; +225.96% ‼️ 9 558 401 587 9 548 843 743 (9 403 473 797; 9 706 347 582) 8 883 928 033 10 034 916 230
Three signatories; Eve doesn't answer, Alice replies with incorrect payload 30 984 477 662; +225.14% ‼️ 9 529 492 822 9 548 084 887 (9 446 563 970; 9 652 122 498) 9 280 127 735 10 019 078 053

name = Async-sign (well known cases)

name current median average lower/upper quartile min max
bad signature 26 931 554 525; +428.26% ‼️ 5 098 178 293 5 079 435 034 (4 913 330 524; 5 234 351 915) 4 567 100 949 5 426 877 881
correct signature but for another message 27 879 291 204; +427.02% ‼️ 5 290 035 882 5 266 205 647 (5 154 150 013; 5 395 164 849) 4 811 775 923 5 599 110 537
no reply 17 753 541 474; +251.58% ‼️ 5 049 616 138 5 030 642 184 (4 879 230 624; 5 198 891 452) 4 472 949 938 5 418 741 894
signed message 27 590 509 996; +420.57% ‼️ 5 300 033 221 5 268 584 446 (5 130 536 445; 5 408 082 209) 4 773 411 617 5 610 844 733

name = Basic capacitor check

name current median average lower/upper quartile min max
Test charging/discharging 7 076 932 990; +7067.45% ‼️ 98 737 172 96 765 085 (89 138 198; 105 590 836) 55 538 260 136 035 491

name = Decoder

name current median average lower/upper quartile min max
decoder 9 176 460 423; +13497.57% ‼️ 67 486 051 60 137 450 (38 550 732; 78 655 779) 20 451 703 106 150 527

name = Futures-unordered

name current median average lower/upper quartile min max
futures-unordered 17 890 990 715; +4681.67% ‼️ 374 157 879 364 558 047 (311 470 185; 423 430 826) 220 215 705 500 070 518
join 9 865 263 410; +3458.29% ‼️ 277 247 526 294 628 943 (240 187 141; 349 268 625) 166 984 724 482 156 676
select 10 251 975 745; +3356.53% ‼️ 296 597 472 306 285 307 (238 840 097; 357 323 682) 161 688 498 489 292 200

name = Incomplete-async-payloads

name current median average lower/upper quartile min max
incomplete-async-payloads 14 608 953 733; +4812.87% ‼️ 297 361 077 289 664 824 (245 623 010; 331 869 485) 155 092 986 421 208 889

name = Memory test

name current median average lower/upper quartile min max
Test for memory result 7 069 314 793; +7013.46% ‼️ 99 379 454 96 950 556 (86 903 344; 106 477 601) 52 701 656 143 545 579

name = Messages to failed program are handled properly

name current median average lower/upper quartile min max
handle messages to failed program 12 957 012 092; +14624.97% ‼️ 87 993 489 80 065 483 (49 494 045; 102 020 681) 21 889 675 152 105 982

name = Meta ping (simple check)

name current median average lower/upper quartile min max
meta check 46 064 457 939; +180.41% ‼️ 16 427 632 613 16 433 928 299 (16 264 556 316; 16 546 269 912) 15 983 357 285 17 036 150 144

name = Multiping

name current median average lower/upper quartile min max
multiping 4 317 850 834; +5734.79% ‼️ 74 001 849 67 046 900 (52 224 237; 80 334 945) 26 460 155 93 591 898

name = Ping-pong

name current median average lower/upper quartile min max
ping-pong 1 319 408 953; +3273.98% ‼️ 39 105 361 44 965 531 (29 904 590; 63 828 092) 17 462 790 81 271 310
ping-pong wgas 1 222 033 186; +2238.27% ‼️ 52 262 334 56 876 059 (44 136 713; 62 879 865) 29 260 257 103 333 172

name = Program_id test

name current median average lower/upper quartile min max
program_id 4 189 511 832; +6217.98% ‼️ 66 310 955 63 626 890 (59 103 721; 70 081 496) 32 653 600 78 873 084

name = State-rollback

name current median average lower/upper quartile min max
state-rollback 1 304 987 068; +2044.53% ‼️ 60 851 982 69 377 283 (49 962 083; 92 808 705) 36 252 767 102 220 170
state-saving 930 211 916; +1688.24% ‼️ 52 018 409 57 768 035 (44 126 071; 61 903 900) 32 796 322 121 431 001

name = Test create_program sys-call

name current median average lower/upper quartile min max
Simple creation of program from program 5 369 733 533; +7068.24% ‼️ 74 910 102 73 000 931 (67 428 058; 81 869 081) 30 114 485 104 560 809
Try to re-init existing program 1 963 688 259; +2046.76% ‼️ 91 472 265 89 175 075 (71 041 618; 107 376 862) 45 856 112 130 212 562

name = Trap test

name current median average lower/upper quartile min max
Test for trap result 4 334 951 286; +18753.19% ‼️ 22 993 192 30 141 048 (18 197 122; 48 225 566) 11 773 117 59 581 989

name = Wait test

name current median average lower/upper quartile min max
wait 3 984 569 417; +5197.04% ‼️ 75 222 612 81 866 807 (62 660 912; 104 423 289) 40 103 627 136 502 980

name = basic

name current median average lower/upper quartile min max
test-vec (2 * 65536 * size_of(u8) = 128 KiB = 2 pages) 18 318 284 143; +5463.41% ‼️ 329 263 475 330 436 059 (301 941 878; 357 018 322) 188 568 051 457 258 897

name = collector-1

name current median average lower/upper quartile min max
collector pass 2 messages 7 953 187 579; +7612.09% ‼️ 103 126 168 102 924 131 (96 321 408; 111 332 439) 68 714 886 136 424 561

name = guestbook test

name current median average lower/upper quartile min max
guestbook 27 460 954 838; +196.31% ‼️ 9 267 619 209 9 256 520 926 (9 081 609 099; 9 402 447 947) 8 739 777 178 9 702 941 681

name = gui test

name current median average lower/upper quartile min max
gui 38 508 434 648; +226.49% ‼️ 11 794 609 734 11 792 062 791 (11 653 889 709; 11 900 306 732) 11 429 922 317 12 308 348 298

Copy link
Contributor

@shamilsan shamilsan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A good idea is to add an example or test that demonstrates the new feature.

@shamilsan shamilsan added the A3-gotissues PR occurred to have issues after the review label Jun 3, 2022
gstd/src/prog/program_creator.rs Outdated Show resolved Hide resolved
gstd/src/prog/mod.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_creator.rs Outdated Show resolved Hide resolved
Copy link
Member

@breathx breathx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Many issues discussed on sync up.
In short:

  • static mut program creator itself
  • remove default (and program creator ability to construct)
  • remove second salt (also depend on first point)
  • provide demo + yaml test

gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/mod.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/program_generator.rs Outdated Show resolved Hide resolved
Copy link
Member

@breathx breathx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes only due to invalid check for uniqueness.
Fix it and ping me to receive approve!

examples/program_generator/src/lib.rs Outdated Show resolved Hide resolved
examples/program_generator/Cargo.toml Outdated Show resolved Hide resolved
gear-test/spec/test_program_generator.yaml Show resolved Hide resolved
gstd/src/prog/generator.rs Outdated Show resolved Hide resolved
gstd/src/prog/generator.rs Outdated Show resolved Hide resolved
@shamilsan shamilsan added A1-inprogress Issue is in progress or PR draft is not ready to be reviewed and removed A3-gotissues PR occurred to have issues after the review labels Jun 14, 2022
@shamilsan shamilsan added A0-pleasereview PR is ready to be reviewed by the team and removed A1-inprogress Issue is in progress or PR draft is not ready to be reviewed labels Jun 14, 2022
@shamilsan shamilsan added the D3-gstd Gear Standard Library label Jun 15, 2022
@breathx breathx added A2-mergeoncegreen PR is ready to merge after CI passes C1-feature Feature request and removed A0-pleasereview PR is ready to be reviewed by the team labels Jun 16, 2022
@shamilsan shamilsan merged commit 4cf25ee into master Jun 16, 2022
@shamilsan shamilsan deleted the sl-salt-uniqueness branch June 16, 2022 04:35
@shamilsan shamilsan added B1-releasenotes The feature deserves to be added to the Release Notes and removed C1-feature Feature request labels Jun 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A2-mergeoncegreen PR is ready to merge after CI passes B1-releasenotes The feature deserves to be added to the Release Notes D3-gstd Gear Standard Library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Default salt management for create_program
4 participants