Skip to content
  1. Jan 20, 2022
    • Bernhard Schuster's avatar
      [runtime] follow up relay chain cleanups (#4657) · b7a05fd4
      Bernhard Schuster authored
      
      
      * fix miscalculation of remaining weight
      
      * rename a var
      
      * move out enforcing filtering by dropping inherents
      
      * prepare for dispute statement validity check being split off
      
      * refactor
      
      * refactor, only check disputes we actually want to include
      
      * more refactor and documentation
      
      * refactor and minimize inherent checks
      
      * chore: warnings
      
      * fix a few tests
      
      * fix dedup regression
      
      * fix
      
      * more asserts in tests
      
      * remove some asserts
      
      * chore: fmt
      
      * skip signatures checks, some more
      
      * undo unwatend changes
      
      * Update runtime/parachains/src/paras_inherent/mod.rs
      
      Co-authored-by: default avatarsandreim <[email protected]>
      
      * cleanups, checking CheckedDisputeStatments makes no sense
      
      * integrity, if called create_inherent_inner, it shall do the checks, and not rely on enter_inner
      
      * review comments
      
      * use from impl rather than into
      
      * remove outdated comment
      
      * adjust tests accordingly
      
      * assure no weight is lost
      
      * address review comments
      
      * remove unused import
      
      * split error into two and document
      
      * use assurance, O(n)
      
      * Revert "adjust tests accordingly"
      
      This reverts commit 3cc9a3c449f82db38cea22c48f4a21876603374b.
      
      * fix comment
      
      * fix sorting
      
      * comment
      
      Co-authored-by: default avatarsandreim <[email protected]>
      b7a05fd4
  2. Jan 17, 2022
    • Sergey Pepyakin's avatar
      paras: do not allow PVF vote submission if disabled (#4684) · 815021ab
      Sergey Pepyakin authored
      if the PVF pre-checking is disabled the runtime dispatchable will reject
      any attempts of submission. This is also concern the unsigned tx
      validation.
      
      Right now, the `include_pvf_check_statement` dispatchable is effectively
      uncallable because of the weight set to the maximum value. If we were to
      benchmark it, it would become includable in a block, but since there
      will be no active votes, the dispatchable won't do anything.
      
      However, it will execute some code, like signature validation and
      querying some storage entries. To be completely safe, we can bail out
      early if the `pvf_checking_enabled` config is disabled. That's what this
      PR does.
      815021ab
  3. Jan 13, 2022
    • Sergey Pepyakin's avatar
      paras: Add runtime events for PVF pre-checking (#4683) · 21419a81
      Sergey Pepyakin authored
      In this PR, paras module emit runtime events on certain PVF pre-checking
      related conditions.
      
      Specifically, there are 3 new events in the paras module:
      
      1. PvfCheckStarted
      2. PvfCheckAccepted
      3. PvfCheckRejected
      
      All of those have identifiers for the parachain that triggered the PVF
      pre-checking and the validation code that goes through the pre-checking.
      
      The mechanics of those are as follows. Each time a new PVF is added, be
      it due to onboarding or upgrading, the `PvfCheckStarted` will be
      triggered. If another parachain triggers a pre-checking process for the
      validation code which is already being pre-checked, another
      `PvfCheckStarted` event will be triggered with the corresponding para
      id.
      
      When the PVF pre-checking voting for a PVF was finished, several
      `PvfCheckAccepted/Rejected` events will be triggered: one for each para id that
      was subscribed to this check (i.e. was a "cause" for it).
      
      If the PVF pre-checking is disabled, then one can still expect these
      events to be fired. Since insta PVF approval is syncronous, the
      `PvfCheckStarted` will be followed by the `PvfCheckAccepted` with the
      same validation code and para id.
      
      If somebody is interested in following validation code changes for a PVF
      of a parachain, they would need to subscribe to those events. I did not
      supply the topics for the events, since I am not sure if that's needed
      or will be used, but they can be added later if needed.
      21419a81
  4. Jan 12, 2022
  5. Jan 07, 2022
  6. Jan 05, 2022
  7. Jan 03, 2022
    • Keith Yeung's avatar
      Set CurrentCodeHash before running some dispatchable benchmarks (#4645) · 5047ef8e
      Keith Yeung authored
      
      
      * Set CurrentCodeHash before running some dispatchable benchmarks
      
      * Use insert instead of put
      
      * Actually hash the ValidationCode
      
      * 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
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      5047ef8e
    • Sergey Pepyakin's avatar
      paras: split tests (#4636) · 575775a1
      Sergey Pepyakin authored
      This is only a module structure change: the tests module was promoted to
      have its own file.
      575775a1
  8. Jan 01, 2022
    • Sergey Pepyakin's avatar
      chore: fix copy&paste and tidy comments (#4646) · 78b3dc21
      Sergey Pepyakin authored
      As was brought up in [here][og], we have some copy&paste comments. I
      fixed them and also took liberty of fixing some other places.
      Specifically, those that say "module" instead of contemporary "pallet".
      
      [og]:
      https://github.com/paritytech/polkadot/pull/4603#discussion_r776971291
      78b3dc21
  9. Dec 31, 2021
    • Sergey Pepyakin's avatar
      paras: fix upgrade restriction signal (#4603) · 5f6a0392
      Sergey Pepyakin authored
      Closes #3971
      
      Read the linked issue.
      
      Apart from that, this addresses the concern raised in this [comment] by
      just adding a test. I couldn't find a clean way to reconcile a block
      number delay with a PVF voting TTL, so I just resorted to rely on the
      test. Should be fine for now.
      
      [comment]: https://github.com/paritytech/polkadot/pull/4457#discussion_r770517562
      5f6a0392
  10. Dec 30, 2021
    • Sergey Pepyakin's avatar
      configuration: Rename validation_upgrade_{frequency -> cooldown} (#4635) · 72a92eaf
      Sergey Pepyakin authored
      This just renames a member of `HostConfiguration` from
      validation_upgrade_frequency to -//-_cooldown.
      
      As was already pointed out in #4460 the existing name is a misnomer, the
      member actually represents a minimum time period between upgrades, which
      is neatly expressed by a word cooldown.
      
      I've been planning this rename already for some time and the term is
      already used in paras module:
      
      https://github.com/paritytech/polkadot/blob/1394b70d/runtime/parachains/src/paras.rs#L1568-L1574
      72a92eaf
  11. Dec 29, 2021
    • Sergey Pepyakin's avatar
      paras: add governance control dispatchables (#4575) · 4bf62d85
      Sergey Pepyakin authored
      
      
      * paras: add governance control dispatchables
      
      Adds a couple of functions for governance control for the paras module
      in the anticipation of PVF pre-checking enabling.
      
      Specifically, this commit adds a function for pre-registering a PVF that
      governance trusts enough. This function will come in handy in case there
      is a parachain that does not follow the GoAhead signal. That is, does
      not include https://github.com/paritytech/cumulus/pull/517.
      
      This may be not an exhaustive list of the functions that may come in
      handy. Any suggestions to add more are welcome.
      
      * 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=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=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
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      4bf62d85
  12. Dec 28, 2021
  13. Dec 27, 2021
    • Sergey Pepyakin's avatar
      configuration: Unified consistency checks (#4581) · 4d768787
      Sergey Pepyakin authored
      This commit refactors the consistency checks. Instead of each individual
      setter performs its checks locally, we delegate those checks to the
      already existing function `check_consistency`. This removes duplication
      and simplifies the logic.
      
      A motivating example of this one is the next PR in the stack that will
      introduce a check for a field, which validity depends on the validity of
      other two fields. Without this refactoring we will have to place a check
      not only to the field in question, but also to the other two fields so
      that if they are changed they do not violate consistency criteria. It's
      easy to imagine how this can go unwieldy with the number of checks.
      
      This also adds a test that verifies that the default chain spec host
      configuration is consistent.
      4d768787
    • ordian's avatar
      9efb223a
    • ordian's avatar
      session-info: add new fields + migration (#4545) · b342ae11
      ordian authored
      
      
      * session_info: v2 + migration
      
      * use primitives::v2
      
      * use polkadot_primitives::v2
      
      * impl primitives::v2
      
      * fix approval-voting tests
      
      * fix other tests
      
      * hook storage migration up
      
      * backwards compat (1)
      
      * backwards compat (2)
      
      * fmt
      
      * fix tests
      
      * FMT
      
      * do not reexport v1 in v2
      
      * fmt
      
      * set storage version to 1
      
      Co-authored-by: default avatarJavier Viola <[email protected]>
      b342ae11
  14. Dec 24, 2021
    • cheme's avatar
      Companion for substrate#9732 (#4104) · 48dc6750
      cheme authored
      * merge master (do not compile)
      
      * fix
      
      * lock
      
      * update lock
      
      * Update to refactoring.
      
      * runtime version
      
      * fmt
      
      * remove trie patch
      
      * remove patch
      
      * No layout alias for bridge proof.
      
      * update depupdate depss
      
      * No switch until migration.
      
      * master lock
      
      * test
      
      * test
      
      * Revert "test"
      
      This reverts commit 57325ef73332bf4b054aa4a667bb716fcf8a0d89.
      
      * Revert "test"
      
      This reverts commit ce74d0e2062806f72c0e9e9ca07b14165f43521e.
      
      * rename feature
      
      * state version as parameter, use the feature only on runtimes.
      
      * update
      
      * update to state version in runtime
      
      * state version from storage
      
      * update lockfile for substrate
      
      Co-authored-by: parity-processbot <>
      48dc6750
  15. Dec 23, 2021
    • Robert Klotzner's avatar
      First step in implementing #4386 (#4437) · 846828f6
      Robert Klotzner authored
      * First step in implementing https://github.com/paritytech/polkadot/issues/4386
      
      This PR:
      
      - Reduces MAX_UNSHARED_UPLOAD_TIME to 150ms
      - Increases timeout on collation fetching to 1200ms
      - Reduces limit on needed backing votes in the runtime
      
      This PR does not yet reduce the number of needed backing votes on the
      node as this can only be meaningfully enacted once the changed limit in
      the runtime is live.
      
      * Fix tests.
      
      * Guide updates.
      
      * Review remarks.
      
      * Bump minimum required backing votes to 2 in runtime.
      
      * Make sure node side code won't make runtime vomit.
      
      * cargo +nightly fmt
      846828f6
  16. Dec 22, 2021
    • Sergey Pepyakin's avatar
      configuration: refactor configuration initialization (#4569) · 4689ccff
      Sergey Pepyakin authored
      Refactor the configuration module's initializer_on_new_session in such a
      way that it returns the configuration. This would make it inline with
      other special initialization routines like `shared`'s or `paras`.
      
      This will be useful in a following PR that will check consistency of the
      configuration before setting it.
      4689ccff
  17. Dec 21, 2021
    • Sergey Pepyakin's avatar
      pvf-precheck: update rustdoc for paras module (#4459) · 0e046a00
      Sergey Pepyakin authored
      Basically updates the docs for the paras module.
      0e046a00
    • Sergey Pepyakin's avatar
      parachains: Fix configuration module (#4540) · 5a3ee43c
      Sergey Pepyakin authored
      
      
      * parachains: Fix configuration module
      
      Closes #4529
      Closes #4533
      
      I figured that trying to avoid updates does not really worth it to keep.
      This is because we seem to not update the configuration often and when
      we do we approach this carefully. Thus possibility of a redundant update
      is really negligable. At the same time, if such a redundant update does
      happen then the effects of that are really small: just some wasted
      storage interactions.
      
      On the other hand, making it work was a little bit annoying. With the
      proper fix for the pending updates this would be even more annoying
      since now we would have to add combinatorically more cases to test this.
      
      So I figured that I will just scrap that and simplify the code.
      
      * 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=polkadot-dev --steps=50 --repeat=20 --pallet=runtime_parachains::configuration --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/polkadot/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
      
      * review fixes
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      5a3ee43c
  18. Dec 20, 2021
  19. Dec 17, 2021
  20. Dec 16, 2021
  21. Dec 14, 2021
  22. Dec 10, 2021
    • dependabot[bot]'s avatar
      Bump serde from 1.0.130 to 1.0.131 (#4496) · e910a3f8
      dependabot[bot] authored
      
      
      Bumps [serde](https://github.com/serde-rs/serde) from 1.0.130 to 1.0.131.
      - [Release notes](https://github.com/serde-rs/serde/releases)
      - [Commits](https://github.com/serde-rs/serde/compare/v1.0.130...v1.0.131)
      
      ---
      updated-dependencies:
      - dependency-name: serde
        dependency-type: direct:production
        update-type: version-update:semver-patch
      ...
      
      Signed-off-by: default avatardependabot[bot] <[email protected]>
      
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      e910a3f8
    • Bernhard Schuster's avatar
      add missing target: in paras (#4497) · 03b5a224
      Bernhard Schuster authored
      03b5a224
    • Bernhard Schuster's avatar
      remove Default from CandidateDescriptor (#4484) · 0f1a9fb1
      Bernhard Schuster authored
      
      
      * remove Default from CandidateHash
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarAndronik Ordian <[email protected]>
      
      * chore: fmt
      
      * remove backed candidate default
      
      * Partial migration away from CandidateReceipt::default
      
      * Remove more CandidateReceipt defaults
      
      * fmt
      
      * Mostly remove CommittedCandidateReceipt default usage
      
      * Remove CommittedCandidateReceipt
      
      * Remove more Defaults from polakdot primitives v1 + fmt
      
      * Remove more Default from polkadot primites v1
      
      * WIP trying to get overseer example + tests to compile
      
      * feat: add primitives test helpers
      
      * reduce deps of helper
      
      * update primitive helpers
      
      * make candidate validation compile
      
      * fixup cargo lock
      
      * make av-store compile
      
      * fixup disputes coordinator tests
      
      * test: fixup backing
      
      * test: fixup approval voting
      
      * fixup bitfield signing
      
      * test: fixup runtime-api
      
      * test: fixup availability dist
      
      * foxi[ pverseer test]
      
      * remove some Defaults, remove bounds from `dummy`
      
      All `fn dummy` in primitives need to be removed anyways.
      This aids in the transition.
      
      * it's a test helper, so always use std
      
      * test: fixup parachains runtime tests
      
      Excluding benches.
      
      * fix keyring
      
      * fix paras runtime properly, no more default
      
      * Remove fn dummy() usage from approval voting
      
      * Move TestCandidateBuilder out of av store to test helpers
      
      * Make candidate validation tests pass
      
      * Make most dispute coirdinator tests pass
      
      * Make provisioner tests work
      
      * Make availability recovery tests work with test helpers
      
      * Update polkadot-collator-protocol tests
      
      * Update statement distribution tests
      
      * Update polkadot overseer examples and tests
      
      * Derive default for validation code so we don't break unrelated things
      
      * Make para runtime test pass (no bench)
      
      * Some more work
      
      * chore: cargo fmt
      
      * cargo fix
      
      * avoid some Default::default
      
      * fixup dispute coordinator test
      
      * remove unused crate deps
      
      * remove Default::default wherever possible, replace by dummy_* for the most part
      
      * chore: cargo fmt
      
      * Remove some warnings
      
      * Remove CommittedCandidateReceipt dummy
      
      * Remove CandidateReceipt dummy
      
      * Remove CandidateDescriptor dummy
      
      * Remove commented out code
      
      * Fix para runtime tests
      
      * chore: nightly
      
      * Some updates to the builder
      
      * Dynamically adjust mock head data size
      
      * Make dispute cooridinator tests work
      
      * Fix test candidate_backing_reorders_votes work
      
      * +nightly-2021-10-29 fmt
      
      * Spelling and remove a default use in builder
      
      * Various clean up
      
      * More small updates
      
      * fmt
      
      * More small updates
      
      * Doc comments for test helpers
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras_inherent --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=polkadot-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras_inherent --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs
      
      * Update lib.rs
      
      * review comments
      
      * fix warnings
      
      * fix test by using correct candidate receipt relay parent
      
      Co-authored-by: default avatarAndronik Ordian <[email protected]>
      Co-authored-by: default avataremostov <[email protected]>
      Co-authored-by: default avatarParity Bot <[email protected]>
      Co-authored-by: default avatarGavin Wood <[email protected]>
      0f1a9fb1
  23. Dec 09, 2021
  24. Dec 08, 2021
    • Sergey Pepyakin's avatar
      pvf-precheck: update configuration module (#4420) · aac812dc
      Sergey Pepyakin authored
      This PR is a part of #3211.
      
      This PR adds three new fields into the `HostConfiguration` structure.
      The fields are going to be used in PRs down the stack.
      
      This change requires migration, so this PR performs runtime storage
      migration for configuration module from version 1 to version 2.
      
      This PR closes #4010 and subsumes #4177.
      aac812dc
    • Sergey Pepyakin's avatar
      pvf-precheck: Strip PastCodeMeta (#4408) · 3c2fb21b
      Sergey Pepyakin authored
      This PR is a part of
      https://github.com/paritytech/polkadot/issues/3211.
      
      This PR prepares ground for the following runtime changes required for
      PVF pre-checking. Specifically, we do several changes here:
      
      1. We remove `validation_code_at` and `validation_code_hash_at`. Those
         functions are not used. They were added in the early days with intent
         to use it later but turned out that we do not need them.
      2. We replace `validation_code_hash_at` with just `current_code_hash`
         for the case of inclusion and candidate checking.
      3. We also replace `last_code_upgrade` with a direct query into
         `FutureCodeHash` and `UpgradeRestrictionSignal`. Those in conjunction
         should replace the logic that was used for allowing/disallowing
         upgrades. This requires special attention of the reviewers.
      4. Then we remove the machinery required to support those queries.
         Specifically the code related to `UseCodeAt`. We do not need it since
         we do not answer the historical queries. However, we still leave all
         the data on-chain. At some point we may clean it up, but that would
         be needed to be done with a dedicated migration which can be done as
         follow-up.
      5. Some now irrelevant tests were removed and/or adapted.
      3c2fb21b
  25. Dec 06, 2021
    • Zeke Mostov's avatar
      Run paras inherent benchmarks (#4454) · 39310088
      Zeke Mostov authored
      
      
      * Some new lines
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=kusama-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras_inherent --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/kusama/src/weights/runtime_parachains_paras_inherent.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=westend-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras_inherent --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/westend/src/weights/runtime_parachains_paras_inherent.rs
      
      * cargo run --quiet --release --features=runtime-benchmarks -- benchmark --chain=polkadot-dev --steps=50 --repeat=20 --pallet=runtime_parachains::paras_inherent --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --header=./file_header.txt --output=./runtime/polkadot/src/weights/runtime_parachains_paras_inherent.rs
      
      Co-authored-by: default avatarParity Bot <[email protected]>
      39310088
    • Bernhard Schuster's avatar
      dev-comment spelling mistakes (#4434) · 4adb8466
      Bernhard Schuster authored
      4adb8466