Skip to content
  1. Feb 26, 2022
    • Falco Hirschenberger's avatar
      Add benchmarking for parachain runtime `ump` pallet (#3889) · fc919376
      Falco Hirschenberger authored
      
      
      * Claim grounds, not working yet.
      
      * still wip, nothing to see
      
      * Module visibility problem
      
      * Add benchmarks for all parachain-enabled chains
      
      * Add missing mock weights
      
      * Fix mock weight info
      
      * Add max-weight to extrinsic weight
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_ump.rs
      
      * sorting declarations
      
      * Use a maximum size message to benchmark worst-case
      
      * remove warning
      
      * Fix msg size overflow in tests
      
      * Use benchmarked weight in PostInfo
      
      * Update runtime/parachains/src/ump.rs
      
      Co-authored-by: default avatarAlexander Popiak <[email protected]>
      
      * Delete obsolete file
      
      * Compile fix
      
      * Fix spelling
      
      * Add benchmark for `UmpSink::process_upward_message`
      
      It benchmarks the time to process a message, mainly the size-dependent
      decoding time. This is used interally for refunding weight from
      `service_overweight`
      
      * Fix warning
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_ump.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_ump.rs
      
      * Update runtime/parachains/src/ump.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Give mock weights for tests a name instead of ()
      
      * Add benchmark for `initializer_on_new_session` aka.
      `perform_outgoing_para_cleanup`
      
      * Remove unnescessary pub specifier and change folding to a for loop
      
      suggestions by @pepyakin
      
      
      
      * Update runtime/parachains/src/ump.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Update runtime/parachains/src/ump.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Add comment on weight calculation and expected slight overestimation
      
      * Introduce a size bound constant for upward messages
      
      * Use KiB not kB for message size bound
      
      * Enforce max-message size bound
      
      * Use a const for upward message size bound.
      
      * Decrease max_upward_message_sizes to 50KiB as suggested by @pepyakin
      
      * Fix creating overweight messages
      
      * cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=rococo-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/rococo/src/weights/runtime_parachains_ump.rs
      
      * cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_ump.rs
      
      * cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_ump.rs
      
      * Remove unused variable
      
      * Rename benchmark function to the function actually benchmarked and some
      code cleanup
      
      * cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_ump.rs
      
      * cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=rococo-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/rococo/src/weights/runtime_parachains_ump.rs
      
      * cargo run --quiet --profile=production  --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::ump --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_ump.rs
      
      * Better variable naming
      
      * Fix build
      
      * Fix build
      
      * Fix some remarks from @pepyakin
      
      
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      Co-authored-by: default avatarAlexander Popiak <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avataremostov <[email protected]>
      fc919376
  2. Jan 21, 2022
    • Kian Paimani's avatar
      HRMP benchmarks (#3876) · 3cb2d626
      Kian Paimani authored
      
      
      * wip template for hrmp benchmarks
      
      * add all of the benchmarks, first draft
      
      * File was not saved :/
      
      * cargo +nightly fmt
      
      * Use configs
      
      * add configs
      
      * Fix rococo
      
      * Final touches
      
      * revert fmt changes, one last time
      
      * Fix wrappings
      
      * Fix a bunch of tests
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::hrmp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_hrmp.rs
      
      * add to westend
      
      * actually use everything
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::hrmp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_hrmp.rs
      
      * Update runtime/parachains/src/hrmp.rs
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      
      * use real weight in wnd
      
      * reorg
      
      * minor cleanup
      
      * weigh some of the internal stuff as well
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::hrmp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_hrmp.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::hrmp --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_hrmp.rs
      
      * add files
      
      * Master.into()
      
      * add validation
      
      * fmt
      
      * fmt
      
      * final fixes
      
      * all runtimes build
      
      * undo formatting
      
      * Update runtime/parachains/src/hrmp.rs
      
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      
      * non-controversial changes
      
      * do it the parachain-way: use const instead of type configs for simplicity.
      
      * borrow assert_storage_consistency_exhaustive
      
      * move assert_storage_consistency_exhaustive to Pallet, so it can be reused for benchmarks as well.
      
      * fix typo
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      Co-authored-by: default avatarSergey Shulepov <[email protected]>
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      3cb2d626
  3. Dec 16, 2021
    • Sergey Pepyakin's avatar
      pvf-precheck: Integrate PVF pre-checking into paras module (#4457) · 47810dca
      Sergey Pepyakin authored
      * pvf-precheck: Integrate PVF pre-checking into paras module
      
      Closes #4009
      
      This is the most of the runtime-side change needed for #3211.
      
      Here is how it works.
      
      The PVF pre-checking can be triggered either by an upgrade or by
      onboarding (i.e. calling `schedule_para_initialize`). The PVF
      pre-checking process is identified by the PVF code hash that is being
      voted on. If there is already PVF pre-checking process running, then no
      new PVF pre-checking process will be started. Instead, we just subscribe
      to the existing one.
      
      If there is no PVF pre-checking process running but the PVF code hash
      was already saved in the storage, that necessarily means (I invite the
      reviewers to double-check this invariant) that the PVF already passed
      pre-checking. This is equivalent to instant approving of the PVF.
      
      The pre-checking process can be concluded either by obtaining a
      supermajority or if it expires.
      
      Each validator checks the list of PVFs available for voting. The vote is
      binary, i.e. accept or reject a given PVF. As soon as the supermajority
      of votes are collected for one of the sides of the vote, the voting is
      concluded in that direction and the effects of the voting are enacted.
      
      Only validators from the active set can participate in the vote. The set
      of active validators can change each session. That's why we reset the
      votes each session. A voting that observed a certain number of sessions
      will be rejected.
      
      The effects of the PVF accepting depend on the operations requested it:
      
      1. All onboardings subscribed to the approved PVF pre-checking process will
      get scheduled and after passing 2 session boundaries they will be onboarded.
      2. All upgrades subscribed to the approved PVF pre-checking process will
      get scheduled very similarly to the existing process. Upgrades with
      pre-checking are really the same process that is just delayed by the
      time required for pre-checking voting. In case of instant approval the
      mechanism is exactly the same. This is important from parachains
      compatibility standpoint since following the delayed upgrade requires
      the parachain to implement
      https://github.com/paritytech/cumulus/pull/517
      
      .
      
      In case, PVF pre-checking process was concluded with rejection, then all
      the requesting operations get cancelled. For onboarding it means it gets
      without movement: the lifecycle of such parachain is terminated on the
      `Onboarding` state and after rejection the lifecycle is none. That in
      turn means that the caller can attempt registering the parachain once
      more. For upgrading it means that the upgrade process is aborted: that
      flashes go-ahead signal with `Abort` flag.
      
      Rejection leads to removing the allegedly bad validation code from the
      chain storage. Among other things, this implies that the operation can
      be re-requested. That allows for retrying an operation in case there was
      some bug. At the same time it does not look as a DoS vector due to the
      caching performed by the nodes.
      
      PVF pre-checking can be enabled and disabled. Initially, according to
      the changes in #4420, this mechanism is disabled. Triggering the PVF
      pre-checking when it is disabled just means that we insta approve the
      requesting operation. This should lead to the behavior being unchanged.
      
      Follow-ups:
      
      - expose runtime APIs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=polkadot-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/polkadot/src/weights/runtime_parachains_paras.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_paras.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_paras.rs
      
      * cargo run --quiet --release --features runtime-benchmarks -- benchmark --chain=rococo-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/rococo/src/weights/runtime_parachains_paras.rs
      
      * Review fixes
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      47810dca
  4. Dec 09, 2021
  5. Dec 01, 2021
    • antonio-dropulic's avatar
      Squashed 'bridges/' changes from 23dda62482..407bf44a8a · 392447f5
      antonio-dropulic authored
      407bf44a8a add missing license header (#1204)
      9babb19810  Custom relay strategy (#1198)
      c287872a11 fix clippy things (#1200)
      3a40e62789 Expose some const value and type (#1186)
      32b61476d1 increase sleep before connectingMillau (#1195)
      aabe7041fa revert messages transactions mortality (#1194)
      3651f4f909 Message transactions mortality (#1191)
      364d6e155d Bump dependencies (#1180)
      f0389acc08 cargo +nightly fmt --all (#1192)
      b270b6a016 Unify error enums in substrate and ethereum clients with `thiserror` (#1094)
      58c4946f74 Limit max call size of Rialto/Millau runtimes (#1187)
      fd56a8cd56 Add UI to the deployment (#1047)
      16f01dc736 Westend -> Millau alerts are pending before notifications are sent (#1184)
      5628c11ece replace collective flip with babe randomness in Rialto (#1188)
      1094a63b00 ignore another (pretty bad) RUSTSEC (#1185)
      379fe323ea fix/ignore cargo deny issues (#1183)
      92af5e6e64 additional log in finality relay + rephrase "failed" (#1182)
      b996a3b681 Rialto parachain in test deployments (#1178)
      28d9332b44 Resubmit transactions strategy for Polkadot/Kusama (#1175)
      d0172c6847 Playing with CI (#1179)
      fb6f42456d fix checks order when registering parachain (#1177)
      ee828c005a Register-parachain subcommand of substrate-relay (#1170)
      8cd2b1a112 Token swap pallet benchmarks (#1174)
      bb811accb1 fix collision with westend bridge (#1172)
      8d2fba70ed add token swaps to test deployments (#1169)
      b6d1bdfe2c publish rialto parachain collator image (#1171)
      834ae4a10a Fix OutboundLaneData types (#1159)
      5ee0ea1626 copypasted -> copied (#1168)
      c3bb835f18 fix spelling (#1167)
      f90d041dc9 Upgrade `jsonrpsee` to v0.3 (#1051)
      598c9b6d0d add some basic tests for swap tokens (#1164)
      05e88c61f5 publish images when tag of specific format(e.g. v2021-09-27 + v2021-09-27-1) is published (#1166)
      7f3f94a6e0 Fix CI again (#1165)
      ff37de332f Move calculation relayer reward into `MessageDeliveryAndDispatchPayment` (#1153)
      36fbba839b fix clippy warning (#1163)
      16da44d018 explicit wasm build (#1158)
      c9c8226449 Match substrate's fmt (#1148)
      2fdd7f3e5e Fix/ignore clippy warnings (#1157)
      43dfcc2686 Adding LookupAddress (#1156)
      951eaa5582 Add rialto-parachain runtime and node (#1142)
      803d266d61 Rename MessageId -> BridgeMessageId (#1152)
      5f234484fc Box large arguments of GRANDPA pallet (#1154)
      cf9abc1011 Fix spelling (#1150)
      ab83ba2e58 Relay subcommand that performs token RLT <> MLAU token swap (#1141)
      832536caf0 Polkadot <> Kusama relayers (#1122)
      6d0daa8975 Add `OnMessageAccepted` callback (#1134)
      5d03a20b3e Integrate token swap pallet into Millau runtime (#1099)
      ea4cfa833e Adding MultiAddress type and ValidationCodeHash (#1139)
      c20325a784 Add tests for `Raw` and `BridgeSendMessage` enum `Call` variants (#1125)
      6d802416e2 increase pause before pining Rialto nodes (#1137)
      b54fa56b62 calculate fee using full message payload (#1132)
      ca5d8178f5 Add parachain pallets to rialto runtime (#1053)
      9eaae4142e fix transaction resubmitter limits for Millau -> Rialto transactions (#1135)
      9d4e17783c add --mandatory-headers-only cli option to complex relay (#1129)
      1c5e0ec1cb Add local CI info to README (#1131)
      a8e0929e14 chore: spellchecker fixes (#1130)
      3b8e2118e3 set fee for importing mandatory headers to zero (#1127)
      49bba9aa52 another bunch of words for spellchecker (#1128)
      8a72eafef6 Increase pause before messages generation start (#1126)
      1f0ba9a191 Move some associated types from relay_substrate_client::Chain to bp_runtime::Chain (#1087)
      74bc1a5b54 Transactions resubmitter (#1083)
      21ba001f26 log max balance drop when sending message (#1117)
      638a7ddffa Code Cleaning (#1124)
      be6555c51b Fix buildah logout (#1120)
      87539c4a98 Format code work (#1116)
      526fe7fdd7 fix spelling (#1119)
      bd4ce7f241 Fix spelling (#1118)
      3c1147858e added missing constants to Kusama/Polkadot primitives (#1114)
      52093b22ab Fix delivery transaction estimation used by rational relayer (#1109)
      77a2f2fbed Remove fund account checks from upgrade. (#1111)
      824334802b Rename param and update comment (#1108)
      d7784bfe06 Fix spellcheck (#1110)
      0b18f5906a Refactor substrate messages source and substrate messages target (#1105)
      b27240bbff fix compilation (#1107)
      9697da4fe8 Emit mortal transactions from relay (#1073)
      b29396c077 Change vault vars type to env vars (#1084)
      35e0bbdc0c Make clippy mandatory. (#1103)
      a517e8541f Remove unused deps (#1102)
      873dae608a Remove unnessary deps (#1101)
      13450b74ee Stored conversion rate updater (#1005)
      74389829f3 [BREAKING] Migrate messages pallet to frame v2 (#1088)
      424da938dd README fix (#1100)
      865744c909 upgrade currency exchange pallet to frame v2 (#1097)
      b5038148b3 Add missing docs (#1095)
      0791e911c1 Common crate for substrate-relay (#1082)
      3834c9d880 Update high-level-overview.md (#1093)
      c93553face Increase the time window for messaging alerts. (#1092)
      8b9cc3cecd migrate pallet-shift-session-manager to frame v2 (#1090)
      dc91813c22 migrate eth PoA pallet to frame v2 (#1091)
      f16bb098cc Migrate dispatch pallet  to frame v2 (#1089)
      19f4325348 Bridge/This Chain Ids should be exposed as constants on pallet level. (#1085)
      6381122df7 Change ChainSpec::from_genesis for Rialto and Millau chains to reflect the chain names. (#1079)
      0f1d33e973 Make CI happy again (#1086)
      238e65d96f fix typo (#1080)
      fc008457b6 Token-swap-over-bridge pallet (#944)
      3fb97fa5ef Fix full spellcheck (#1076)
      eae4ed7170 fixed wrong trace (#1075)
      219a0fad04 merge two weight-related loops in messages pallet (#1071)
      fc85632fdb increase_message_fee depends on stored mesage size (#1066)
      530f37a23b companion for https://github.com/paritytech/polkadot/pull/3507 (#1067)
      53b8cba683 sc_basic_authorship=trace for millau nodes (#1074)
      9874e05e98 Improve traces of message generator scripts (#1069)
      7b5ee84fbb extract message_details impl into runtime common (#1070)
      5a4aed5a8b refund weight for mot pruning messages (#1062)
      90e3d1e111 Fix Westend -> Millau sync (#1064)
      427d30ddfc When restarting client, also "restart" tokio runtime (#1065)
      d47c05eeef Change get pipeline sensitive variables from Vault instead of GitLab settings (#1063)
      d775a85415 use tokio reactor to execute jsonrpsee futures (#1061)
      15c8cd61cb Use BABE to author blocks on Rialto (previously: Aura) (#1050)
      5186293500 Allow reading suri && password override from file (#1059)
      b506298262 Update jsonrpsee reference (#1049)
      1734d00517 enable weight fee adjustent in Rialto/Millau (#1044)
      607265afae Pay dispatch fee at target chain cli option (#1043)
      ce79ef91be bump dependencies before start referencing polkadot repo (#1048)
      924fa24f6d Cli option for greedy relayer + run no-losses relayer by default (#1042)
      e21eba7b59 Yrong README Fixup + M1 Fixes (#1045)
      20d08204a2 Confirm delivery detects when more than expected messages are confirmed (#1039)
      994b846b52 pre and post dispatch weights of OnDeliveryConfirmed callback (#1040)
      1dd5297e84 give real value to Rialto and Millau tokens (#1038)
      035bee8715 Use real conversion rate in greedy relayer strategy (#1035)
      9cfaecd0f7 fixed metrics prefix (#1037)
      1d8d224937 Use kebab-case for bridge arguments (#1036)
      f30a4c79a6 Shared reference to conversion rate metric value (#1034)
      c34d7a5cbb estimate transaction fee (#1015)
      93404b18bb change alert period from 2m to 10m for Westend -> Millau (GRANDPA or public node itself is lagging sometimes) (#1032)
      
      git-subtree-dir: bridges
      git-subtree-split: 407bf44a8a5f4e60aceef2dc755cd9ff09929ac3
      392447f5
  6. Nov 29, 2021
  7. Nov 16, 2021
    • Bernhard Schuster's avatar
      move paras inherent filtering to runtime (#4028) · 1aa6a4ab
      Bernhard Schuster authored
      
      
      * move things around, add filter methods
      
      * validator keys, modify availability bitfields according to disputes
      
      * simplify, keep the filter -> sanitize generic for both usecases
      
      * minor
      
      * assure tests still work, reduce changeset
      
      * integration
      
      * start entropy passing
      
      * fixins
      
      * compile, 1 failing test
      
      * filter with coverage
      
      * fixins
      
      * Update runtime/parachains/src/paras_inherent.rs
      
      Co-authored-by: default avatarRobert Habermeier <[email protected]>
      
      * slip of the pen
      
      * improve test cases
      
      * misc
      
      * fix
      
      * fixins
      
      * test avoid extra into() calls in assert_noop!
      
      * chores
      
      * ff
      
      * test fixup superfluous into call
      
      * chore: pfmt
      
      * improve apply_block_weight_limit to try to maximize the number of sufficiently backed
      
      blocks and add extra bitfields in a round-robin fashion
      
      * new code treats the lack of backed candidates as ok
      
      * Use vrf based entropy
      
      * fixup vrf random
      
      * add warn
      
      * slip of the pen
      
      * fixup
      
      * assure ordering
      
      * rethink apply_weights
      
      * mock
      
      * use a closure as predicate check
      
      * extract and use DisputedBitfield
      
      * chore: simplify
      
      * remove stray dbg
      
      * chore: fmt
      
      * address feedback
      
      * fix test, halfway there
      
      * stage1
      
      * dbg stuff
      
      * make group selection align
      
      * fix session index
      
      * fix wrongly returned candidates
      
      * cleanup
      
      * chore fmt
      
      * fix ensure check
      
      * make good case test work
      
      * more tests for bitfields
      
      * create sanitize_backed_candidates
      
      * fixup tests
      
      * update guide
      
      * add check referenced in the guide
      
      * improve weights code
      
      * fmt
      
      * fixins
      
      * Update roadmap/implementers-guide/src/runtime/inclusion.md
      
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      
      * compiling + address review
      
      * add comments
      
      * fix weight calc
      
      * address review comments and test failure
      
      * fix
      
      * fix: condition
      
      * Fix random_sel function
      
      * Fix overlength block check
      
      * Zeke + Ladi commit for disputes filtering + integration test builder + runtime benchmarks + integration tests
      
      * Add benchmarks for code upgrades
      
      * Code upgrade bench; Feature gate TestWeightInfo
      
      * Try and make CI happier
      
      * Feature gate enter test to not(benchmarks)
      
      * Make sure no unused imports/fn
      
      * refactor, re-use, the beginning
      
      * Fix issue with frame benchmarking dep compilation
      
      * More precise feature gating for some derives
      
      * integrate piece-wise
      
      * foo
      
      * fixins
      
      * chore fmt
      
      * fixins
      
      * rename const generic
      
      * Update runtime/parachains/src/paras_inherent.rs
      
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      
      * Fix compilation
      
      * limit to test
      
      * remove unused spam slots
      
      * spellcheck
      
      * remove a tick, fix a typo
      
      * Add Code upgrade weights
      
      * comment improvements + >=
      
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      
      * remove another tick
      
      * Update runtime/parachains/src/paras_inherent/benchmarking.rs
      
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      
      * saturating fixins + some spaces
      
      * fix
      
      * benchmarking - preliminary results
      
      * Add training wheels
      
      * Refactor some early exit logic for enter
      
      * Gracefully handle filtering bitfields & candidates (#4280)
      
      This updates the logic for sanitize_bitfields and sanitize_backed_candidates to never error when there is an issue, but instead to simply skip the problematic items.
      
      * Refactor inherent data weight limiting logic (#4287)
      
      * Apply suggestions from code review
      
      * Update runtime/parachains/src/builder.rs
      
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      
      * Update runtime/parachains/src/builder.rs
      
      * Update runtime/parachains/src/paras_inherent.rs
      
      * final pass
      
      * Run cargo +nightly-2021-10-29 fmt
      
      * Update implementors guide with `sanitize_*` & `enter` (#4294)
      
      * Make spell check happier
      
      * Make wasm runtimes compile with benchmarks enabled (#4303)
      
      * comment stuff out, use old toml
      
      * Seems to be working?
      
      * Remove feature gating from builder
      
      * Remove commented out stuff
      
      * Remove generic from digest
      
      * Update weight files for runtime
      
      Co-authored-by: default avatarRobert Habermeier <[email protected]>
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      Co-authored-by: default avatarLldenaurois <[email protected]>
      Co-authored-by: default avatarZeke Mostov <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      1aa6a4ab
  8. Oct 06, 2021
    • Zeke Mostov's avatar
      Add benchmarking to rococo; Remove weights from runtime_parachains (#3914) · dc38cf89
      Zeke Mostov authored
      
      
      * Add benchmarking to rococo; Remove weights from runtime_parachains
      
      * cargo run --quiet --release --features runtime-benchmarks -- benchmark --chain=rococo-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./runtime/rococo/src/weights/runtime_parachains_paras.rs --header=./file_header.txt
      
      * Impl TestWeightInfo for Paras and Configuration
      
      * fmt
      
      * cargo run --quiet --release --features runtime-benchmarks -- benchmark --chain=rococo-dev --steps=50 --repeat=20 --pallet=runtime_parachains::configuration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./runtime/rococo/src/weights/runtime_parachains_configuration.rs --header=./file_header.txt
      
      * Fix CI complaint: error: unused variable: `c`
      
      * polkadot-runtime-common & polkadot-test-runtime compile
      
      * xcm-simulator compile
      
      * change TestWeightInfo to max_block
      
      * cargo run --quiet --release --features runtime-benchmarks -- benchmark --chain=rococo-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./runtime/rococo/src/weights/runtime_parachains_paras.rs --header=./file_header.txt
      
      * ordering
      
      * cargo run --quiet --release --features runtime-benchmarks -- benchmark --chain=rococo-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./runtime/rococo/src/weights/runtime_parachains_paras.rs --header=./file_header.txt
      
      * Replace max_block with Weight::MAX
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      dc38cf89
  9. Sep 28, 2021
    • Keith Yeung's avatar
      Add benchmarking for parachain runtime initializer pallet (#3913) · 7da1421b
      Keith Yeung authored
      
      
      * Add benchmarking for parachain runtime initializer pallet
      
      * Fix default impl for initializer pallet WeightInfo
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_initializer.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_initializer.rs
      
      * Use real weights and use max_block as default weight
      
      * Add variable for digest vec length for initializer benchmark
      
      * Fix compilation errors
      
      * Add WeightInfo to parachains_initializer config in polkadot runtime
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_initializer.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::initializer --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_initializer.rs
      
      * Appease spellchecker
      
      * Use kusama weights in polkadot runtime for parachain initializer pallet
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      7da1421b
  10. Sep 23, 2021
  11. Sep 22, 2021
    • Keith Yeung's avatar
      Add benchmarking for parachain runtime paras pallet (#3888) · db0b7e00
      Keith Yeung authored
      
      
      * Crate basic barebones benchmarking infrastructure for paras
      
      * Fill in benchmarking contents
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_paras.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_paras.rs
      
      * Use autogenerated WeightInfos for kusama and westend
      
      * cargo fmt
      
      * Use saturating_sub
      
      * Add missing import
      
      * Try and hit the worst possible time complexity as much as possible
      
      * cargo fmt
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_paras.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_paras.rs
      
      * Add a MAX_HEAD_DATA_SIZE constant
      
      * Prefill vectors with sample data for worst case complexity
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_paras.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_paras.rs
      
      * Improve comment on SAMPLE_SIZE constant
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      db0b7e00
  12. Sep 18, 2021
    • Keith Yeung's avatar
      Add benchmarking for parachain runtime configuration pallet (#3862) · 706f1425
      Keith Yeung authored
      
      
      * Add benchmarking for parachain runtime configuration pallet
      
      * cargo fmt
      
      * Add WeightInfo trait
      
      * Specify missing WeightInfo associated type in mocks
      
      * Fix typo
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::configuration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_configuration.rs
      
      * Fix compilation errors
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::configuration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_configuration.rs
      
      * Condense the number of WeightInfo methods
      
      * Fixes
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::configuration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_configuration.rs
      
      * Make use of weights generated from kusama benchmarking
      
      * Use a better dispatch function for weighing set_config_with_block_number
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::configuration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_configuration.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::configuration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_configuration.rs
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      706f1425
  13. Sep 15, 2021
    • Sergey Pepyakin's avatar
      UMP: Support Overweight messages (#3575) · 13906d62
      Sergey Pepyakin authored
      
      
      * Introduce new config: ump_max_individual_weight
      
      * Implement overweight msg stashing
      
      * Test
      
      * Add migration module.
      
      Also introduces a test for migration
      
      * Integrate ExecuteOverweightOrigin to runtimes
      
      * Fix more stuff
      
      * Add `yeet` into dictionary
      
      * Use suggested `Error` variant names
      
      * typo
      
      * Use 20ms as the maximum individual message weight
      
      * Update the test value
      
      * rustfmt
      
      * Clean up
      
      * Remove deprecated field from host config
      
      * Remove missed _hrmp_open_request_ttl
      
      * Apply typo fix suggestion
      
      Co-authored-by: default avatarAlexander Popiak <[email protected]>
      
      * Rename `migration::migrate_to_latest`
      
      * Restore `_hrmp_open_request_ttl` in `v0::HostConfiguration`
      
      * Apply suggestion for a rustdoc
      
      * Apply the suggestion
      
      * Test v0 config with the raw production data fetched from Kusama
      
      * Update runtime/parachains/src/ump.rs
      
      Co-authored-by: default avatarAlexander Popiak <[email protected]>
      
      * Expose migration functions
      
      * Fix spellcheck
      
      Co-authored-by: default avatarAlexander Popiak <[email protected]>
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      13906d62
  14. Sep 08, 2021
  15. Aug 07, 2021
  16. Aug 03, 2021
  17. Aug 02, 2021
  18. Jul 31, 2021
  19. Jul 22, 2021
  20. Jul 19, 2021
    • asynchronous rob's avatar
      Disputes runtime (#2947) · ec98120f
      asynchronous rob authored
      
      
      * disputes module skeleton and storage
      
      * implement dispute module initialization logic
      
      * implement disputes session change logic
      
      * provide dispute skeletons
      
      * deduplication & ancient check
      
      * fix a couple of warnings
      
      * begin provide_dispute_data impl
      
      * flesh out statement set import somewhat
      
      * move ApprovalVote to shared primitives
      
      * add a signing-payload API to explicit dispute statements
      
      * implement statement signature checking
      
      * some bitflags glue for observing changes in disputes
      
      * implement dispute vote import logic
      
      * flesh out everything except slashing
      
      * guide: tweaks
      
      * declare and use punishment trait
      
      * punish validators for inconclusive disputes
      
      * guide: tiny fix
      
      * guide: update docs
      
      * add disputes getter fn
      
      * guide: small change to spam slots handling
      
      * improve spam slots handling and fix some bugs
      
      * finish API of disputes runtime
      
      * define and deposit `RevertTo` log
      
      * begin integrating disputes into para_inherent
      
      * use precomputed slash_for/against
      
      * return candidate hash from process_bitfields
      
      * implement inclusion::collect_disputed
      
      * finish integration into rest of runtime
      
      * add Disputes to initializer
      
      * address suggestions
      
      * use pallet macro
      
      * fix typo
      
      * Update runtime/parachains/src/disputes.rs
      
      * add test: fix pruning
      
      * document specific behavior
      
      * deposit events on dispute changes
      
      * add an allow(unused) on fn disputes
      
      * add a dummy PunishValidators implementation
      
      * add disputes module to Rococo
      
      * add disputes module to westend runtime
      
      * add disputes module to test runtime
      
      * add disputes module to kusama runtime
      
      * guide: prepare for runtime API for checking frozenness
      
      * remove revert digests in favor of state variable
      
      * merge reversions
      
      * Update runtime/parachains/src/disputes.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update runtime/parachains/src/disputes.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * Update runtime/parachains/src/disputes.rs
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      
      * add byzantine_threshold and supermajority_threshold utilities to primitives
      
      * use primitive helpers
      
      * deposit revert event when freezing chain
      
      * deposit revert log when freezing chain
      
      * test revert event and log are generated when freezing
      
      * add trait to decouple disputes handling from paras inherent handling
      
      * runtime: fix compilation and setup dispute handler
      
      * disputes: add hook for filtering out dispute statements
      
      * disputes: add initializer hooks to DisputesHandler
      
      * runtime: remove disputes pallet from all runtimes
      
      * tag TODOs
      
      * don't import any dispute statements just yet...
      
      * address grumbles
      
      * fix spellcheck, hopefully
      
      * maybe now?
      
      * last spellcheck round
      
      * fix runtime tests
      
      * fix test-runtime
      
      Co-authored-by: default avatarthiolliere <[email protected]>
      Co-authored-by: default avatarAndré Silva <[email protected]>
      Co-authored-by: default avatarAndré Silva <[email protected]>
      ec98120f
  21. Jul 12, 2021
  22. Jul 06, 2021
    • ferrell-code's avatar
      paras.rs to FRAME V2 (#3403) · 39969ca5
      ferrell-code authored
      * to v2 macro
      
      * line width
      
      * fix mock
      
      * actually compile moxk
      
      * compile tests
      
      * add hooks
      
      * origin back in mocks
      
      * assimilate_storage
      
      * add generic
      
      * maybe mock compiles now
      
      * origin between parachain and system causing problem
      
      * change origin
      
      * type alias as origin
      
      * keep origin
      
      * add aliases to tests
      
      * remove unnecessary imports
      
      * Parachain -> Paras
      
      * paras test
      
      * nvm
      
      * use genesis build in mock
      39969ca5
  23. Jun 04, 2021
  24. Jun 03, 2021
  25. Apr 09, 2021
    • Gavin Wood's avatar
      XCM Revamp Continued (#2865) · c9102c11
      Gavin Wood authored
      
      
      * Introduce plurality XCM locations
      
      * Add RelayedFrom
      
      * DMP dispatch weight handling.
      
      * Add pallet for XCM sending, add routing logic.
      
      * Update error types & doc
      
      * Fix warnings.
      
      * Fixes
      
      * Fixes
      
      * Fixes
      
      * Bump Substrate
      
      * Fixes
      
      * Docs
      
      * Docs
      
      * Docs
      
      * Fixes
      
      * Fixes
      
      * Fixes
      
      * Update xcm/pallet-xcm/src/lib.rs
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      
      * Docs
      
      * Fixes
      
      * Update lib.rs
      
      * Fixes
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      c9102c11
  26. Apr 01, 2021
  27. Mar 30, 2021
  28. Mar 28, 2021
  29. Mar 18, 2021
  30. Mar 10, 2021
    • asynchronous rob's avatar
      0fac590b
    • André Silva's avatar
      runtime: use babe as randomness source (#2504) · b3603605
      André Silva authored
      * runtime: use babe as randomness source
      
      * runtime: fix randomness api
      
      * bridges: fix random_seed
      
      * parachains: use mock TestRandomness from frame_support_test
      
      * parachains: use mock TestRandomness from frame_support_test
      
      * runtime: update randomness source in test-runtime
      
      * runtime: remove unused import
      
      * parachains: add todo to audit usage of randomness api
      
      * "Update Substrate"
      
      Co-authored-by: parity-processbot <>
      b3603605
  31. Feb 27, 2021
  32. Feb 19, 2021
    • Shawn Tabrizi's avatar
      Session Delayed Para Changes / Actions Queue (#2406) · a5defa7c
      Shawn Tabrizi authored
      
      
      * initial implementation of lifecycles and upgrades
      
      * clean up a bit
      
      * fix doc comment
      
      * more rigid lifecycle checks
      
      * include paras which are transitioning, and lifecycle query
      
      * format guide
      
      * update api
      
      * update guide
      
      * explicit outgoing state, fix genesis
      
      * handle outgoing with transitioning paras
      
      * do not include transitioning paras in identifier
      
      * Update roadmap/implementers-guide/src/runtime/paras.md
      
      * Update roadmap/implementers-guide/src/runtime/paras.md
      
      * Update roadmap/implementers-guide/src/runtime/paras.md
      
      * Apply suggestions from code review
      
      * Use matches macro
      
      * Correct terms
      
      * Apply suggestions from code review
      
      * actions queue
      
      * Revert "actions queue"
      
      This reverts commit b2e9011ec8937d6c73e99292416c9692aeb30f73.
      
      * collapse onboarding state
      
      * starting actions queue
      
      * consolidate actions queue
      
      * schedule para initialize result
      
      * more actions queue for upgrade/downgrade
      
      * clean up with fully implemented actions queue
      
      * fix tests
      
      * fix scheduler tests
      
      * fix hrmp tests
      
      * fix test
      
      * doc fixes
      
      * fix hrmp test w/ valid para
      
      * Update paras.md
      
      * fix paras registrar
      
      * Update propose_parachain.rs
      
      * fix merge
      
      * Introduce "shared" module
      
      * fix rococo build
      
      * fix up and use shared
      
      * guide updates
      
      * add shared config to common tests
      
      * add shared to test-runtime
      
      * remove println
      
      * fix note
      
      Co-authored-by: default avatarGavin Wood <[email protected]>
      a5defa7c
  33. Feb 09, 2021
  34. Jan 13, 2021
    • Sergey Pepyakin's avatar
      HRMP channel deposits (#2225) · c644c39f
      Sergey Pepyakin authored
      * Drive by fixes
      
      The visibility modifiers are remnants of the previous structure where
      HRMP wasn't a standalone module, by rather a submodule of the router
      module.
      
      * Add Currency assoc type to Config
      
      This would allow us to reserve balance for deposits. This commit also
      integrates the HRMP module in rococo, test-runtime and mocks to use the
      balances pallet.
      
      * Fix a bug that doesn't increment the age
      
      In case the request is not confirmed, the age would be incremented but
      not persisted.
      
      * Fix cleaning the indexes
      
      Before that change, the cleaning of the channel indexes was wrong, because it
      naively removed entire rows that was pertaining to the para we delete.
      This approach is flawed because it doesn't account for the rows that are
      pertaining to other paras that contain the outgoing one.
      
      This clearly violates the invariant imposed on the indexes, that all
      the index rows must contain alive paras, but apart from that it also
      lead to the situation where ingress index would contain the a different
      set of channels that an egress have.
      
      * Reserve currency for opening the channels
      
      Note the ugly `unique_saturated_into` calls. The reason for them is the
      currency trait accepts and defines the `Balance` associated type and the
      deposit values are coming from the `HostConfiguration` where they are
      defined using the `Balance`.
      
      I figured that parameterising `HostConfiguration` would be annoying. On
      the other hand, I don't expect these `unique_saturated_into` calls to
      give us problems since it seems to be a reasonable assumption that this
      module will be instantiated within a runtime where the Currency provided
      will have a Balance that matches the one used in the configuration.
      
      * Tests: Adapt `run_to_block` so that it submits a proper config
      
      * Tests: exercise the deposit logic
      c644c39f
  35. Jan 05, 2021
    • Peter Goodspeed-Niklaus's avatar
      Reduce the inclusion inherent's actual weight if the block is already heavy (#2060) · fcc0fca1
      Peter Goodspeed-Niklaus authored
      
      
      * don't modify inherent data on heavy block
      
      * write up current thinking on block weight detection
      
      * extract inherent inclusion check into its own function
      
      * put heavy block check into runtime
      
      * the `inclusion` inherent call is Operational, not Mandatory
      
      This resolves a lot of the trickiness about this issue, because
      we no longer need to override or supplant any existing proposer
      logic; the existing logic should exhibit these behaviors:
      
      - the `inclusion` inherent is prioritized over standard transactions
      - but if it's too heavy, i.e. in case of runtime upgrade, it'll be
        dropped in favor of that.
      
      It is my belief that allowing the proposer to just not include
      this data won't have any adverse effects: it's equivalent to replacing
      them with empty versions of themselves, which the `ProvideInherent`
      impl already does.
      
      * Revert "the `inclusion` inherent call is Operational, not Mandatory"
      
      This reverts commit e58858d109b18b84e7af3ac47981c6900b2d9a3e.
      
      * Revert "write up current thinking on block weight detection"
      
      This reverts commit fd587b80c46761b2a2b62448193348237863f99f.
      
      * Revert "don't modify inherent data on heavy block"
      
      This reverts commit 38299d3c23e9efb5a354d8cfa658e62a5c8c7ddf.
      
      * add backed candidate block weight assumption to configuration
      
      * Limit backed candidates according to a candidate weight heuristic.
      
      This approach replaces making the inclusion inherent non-mandatory.
      It's still not ideal in that we have to configure a heuristic for
      how much each backed candidate 'weighs', instead of directly
      measuring it somehow.
      
      This approach also never truncates the signed bitfields. The
      rationale for that depends on some assumptions:
      
      - processing the signed bitfields is cheap compared to the
        backed candidates
      - it is beneficial to the progress of the relay chain
        to update the signed bitfields even if not all backed candidates
        are updated
      
      * simplify limit_backed_candidates and weight assumption
      
      * don't trust the provisioner to fairly distribute candidates
      
      * use saturating subtraction
      
      * empty commit to restart ci
      
      * use new mechanism for getting max block weight
      
      * apply weight refunds to the inclusion inherent
      
      This makes some assumptions about fundamental weights, which are
      encapsulated as constants. From there, it lets Substrate know
      what the actual computed weight of the inherent is.
      
      * use a correct fixed weight for the inclusion inherent
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      
      * use dynamic inclusion weight so we reduce calculated weight when excluding candidates
      
      * don't double-count this intrinsic's weight in the block weight
      
      * add unit tests of fn limit_backed_candidates
      
      * add tests that the inclusion inherent's weight correctly updates
      
      Co-authored-by: default avatarGuillaume Thiolliere <[email protected]>
      fcc0fca1