Commit Graph

14506 Commits

Author SHA1 Message Date
Chevdor dcb943fa08 Fix target docker hub org (#1125) 2022-03-31 18:20:47 +02:00
Kian Paimani c2d3d488b8 add iter-from for bags-list (#11104)
* add iter-from for bags-list

* Fix

* Apply suggestions from code review

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2022-03-31 14:16:34 +00:00
Bastian Köcher 6ec4ee1647 frame-support: Rename tests to express what they are doing (#11147)
Fixes: https://github.com/paritytech/substrate/issues/11145
2022-03-31 13:13:34 +00:00
Georges 0e0d0a677a Enforce MaxEncodedLen impl for NposSolution (#11103)
* Fail if `MaxVoters` too small

* Fixing benchmarking test, better naming of error

* reverting accidental change

* use fully qualified syntax
no need to interate to calculate len

* Fail directly if too many voters
2022-03-31 12:54:44 +00:00
Chevdor 7f3a04f923 Hide unwanted hashes for parachain runtimes (#1122) 2022-03-31 08:47:12 +00:00
Shawn Tabrizi 37b8bc4886 Migrate Slot Depositors in Crowdloan Migration (#5173)
* Also migrate lease depositors

* bump spec version

* Update runtime/common/src/crowdloan/migration.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2022-03-30 18:41:08 +00:00
Oliver Tale-Yazdi 7bf19fa9c9 Fix Phragmen benchmark (#11137)
* Fix phragmen benchmark

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* cargo run --quiet --profile=production  --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_elections_phragmen --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/elections-phragmen/src/weights.rs --template=./.maintain/frame-weight-template.hbs

Co-authored-by: Parity Bot <admin@parity.io>
2022-03-30 18:16:19 +00:00
dependabot[bot] d9f454f903 Bump log from 0.4.14 to 0.4.16 (#5187)
Bumps [log](https://github.com/rust-lang/log) from 0.4.14 to 0.4.16.
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/commits)

---
updated-dependencies:
- dependency-name: log
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-30 13:23:27 +02:00
dependabot[bot] 9f4b839b06 Bump async-trait from 0.1.52 to 0.1.53 (#5213)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.52 to 0.1.53.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.52...0.1.53)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-30 12:04:49 +02:00
Andrew Jones 072c81ee2a Register dev rpc api for canvas parachain (#1102)
* Register dev api for canvas parachain

* Update Substrate

* Update Polkadot
2022-03-30 09:14:48 +00:00
dependabot[bot] ce33401c70 Bump quote from 1.0.16 to 1.0.17 (#1118)
Bumps [quote](https://github.com/dtolnay/quote) from 1.0.16 to 1.0.17.
- [Release notes](https://github.com/dtolnay/quote/releases)
- [Commits](https://github.com/dtolnay/quote/compare/1.0.16...1.0.17)

---
updated-dependencies:
- dependency-name: quote
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-29 23:28:23 +02:00
wigy 87f02c87d0 Unignore test (#11097) 2022-03-29 20:33:20 +00:00
Chevdor df9ab3c157 Skip runtime migrations for the client release (#1116)
Also removes a bunch of empty lines for a nice output
2022-03-29 18:17:56 +02:00
Koute cace3561e3 Update dependencies (companion for Substrate#11135) (#5217)
* Update `regex` to 1.5.5

* Update `libc` to 0.2.121

* Update `handlebars` to 4.2.2

* Update `lru` to 0.7.3

* Update `zeroize` to 1.5.4 and `zeroize_derive` to 1.3.2

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-03-29 17:43:56 +02:00
Alexander Gryaznov e4caf7388a contracts: add seal_code_hash and seal_own_code_hash to API (#10933)
* `seal_origin` + tests added

* `seal_origin` benchmark added

* `seal_code_hash` + tests added

* `seal_code_hash` benchmark added

* `seal_own_code_hash` + tests added

* `seal_own_code_hash` benchmark added

* fmt lil fix

* akward accident bug fix

* Apply suggestions from code review

Co-authored-by: Alexander Theißen <alex.theissen@me.com>

* Apply suggestions from code review

Co-authored-by: Alexander Theißen <alex.theissen@me.com>

* benchmark fix

* `WasmModule::getter()` to take `module_name` arg

* test enhanced

* fixes based on review feedback

* Apply suggestions from code review

Co-authored-by: Alexander Theißen <alex.theissen@me.com>

* Hash left as const to return a ref to it from mock

* HASH test val to local const in mock

* Apply suggestions from code review

Co-authored-by: Alexander Theißen <alex.theissen@me.com>

* fixes to benchmarks according to review feedback

* cargo run --quiet --profile=production  --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs

* removed `seal_origin` from API

Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Parity Bot <admin@parity.io>
2022-03-29 15:14:49 +00:00
Koute 83d4be6151 Update lru, regex and thread_local (#11135)
* Update `lru` to 0.7.3

* Update `regex` to 1.5.5

* Update `thread_local` to 1.1.4
2022-03-29 14:19:19 +00:00
Oliver Tale-Yazdi cb8cf97cd2 Update Block- and Extrinsic base weights (#5202)
* Remove constants:: module

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update block+extrinsic weights

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* fmt

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Sanity check full block price

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Spellcheck on

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2022-03-29 12:11:17 +00:00
Oliver Tale-Yazdi a42cb8536d Spellcheck HBS templates and add test (#11119)
* Spellcheck HBS templates and fix vars

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add test for benchmark-storage

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fmt templates

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* fmt

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Review fixes

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2022-03-29 12:07:51 +00:00
Keith Yeung 0e3f36224a Implement transfer_asset on CurrencyAdapter (#4549)
* Implement transfer_asset on CurrencyAdapter

* Use Currency::transfer in transfer_asset

* Add a test to assert that Currency::transfer was indeed used

* Remove superfluous balance conversion to u128

* Rename transfer_asset and beam_asset

Co-authored-by: Giles Cope <gilescope@gmail.com>
2022-03-29 10:23:18 +00:00
Oliver Tale-Yazdi 9fdc059363 [ci] Require short-benches check to pass (#5207)
* [ci] Require short-benches check to pass

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Allow the kusama benchmarks to fail

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2022-03-29 11:02:30 +02:00
dependabot[bot] 6097f4f5ca Bump libc from 0.2.119 to 0.2.121 (#11127)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.119 to 0.2.121.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.119...0.2.121)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 23:43:30 +02:00
Koute d932aa0cd4 Bump tokio to 1.17.0 (#10894)
* Bump `tokio` to 0.17.0

* Revert version changes to scale-info

Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
2022-03-28 23:42:01 +02:00
dependabot[bot] 108d1582a7 Bump async-trait from 0.1.52 to 0.1.53 (#1117)
Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.52 to 0.1.53.
- [Release notes](https://github.com/dtolnay/async-trait/releases)
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.52...0.1.53)

---
updated-dependencies:
- dependency-name: async-trait
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 23:20:18 +02:00
dependabot[bot] 0a90dbe7a2 Bump syn from 1.0.89 to 1.0.90 (#1119)
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.89 to 1.0.90.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.89...1.0.90)

---
updated-dependencies:
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-28 21:15:43 +00:00
Chevdor 8c58ccbd26 Fix #851 (#1110)
* Fix doc

* Formatting fixes and bump prio if host functions are detected

* Add canvas

* Bump canvas-kusama's runtime version to 800

* Add db migrations

* Prepare for client releases

* Split the upload of the context artifact

* Rename of the srtool digests to match script default expectations

* Fix runtime name for canvas

* Fix jobs dependencies when skipping jobs/steps for client builds

* Fix CI for the client builds

* Fix issue when building in client mode

* Bump checkout action to v3 and gate some tests

* Fix notification

ref #851
2022-03-28 10:00:07 +02:00
Chevdor f956c3543f Fix build script for the builder image (#5189)
fix #4743
2022-03-28 09:50:29 +02:00
Alexander Popiak 13c78991f9 add notes and warnings to ProvideInherent docs (#9730)
* add notes and warnings to ProvideInherent docs

* rephrase ProvideInherent doc comments

* more comment refinement

* remove multiple inherents note

* remove repetition

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* replace inherent example in docs

* add note about who checks is_inherent_required

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
2022-03-27 23:35:52 +02:00
dependabot[bot] 1cd13239d5 Bump zeroize from 1.4.3 to 1.5.4 (#11123)
Bumps [zeroize](https://github.com/RustCrypto/utils) from 1.4.3 to 1.5.4.
- [Release notes](https://github.com/RustCrypto/utils/releases)
- [Commits](https://github.com/RustCrypto/utils/compare/zeroize-v1.4.3...zeroize-v1.5.4)

---
updated-dependencies:
- dependency-name: zeroize
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-27 21:19:55 +02:00
Shawn Tabrizi 4c8bd4383c remove misleading sentence (#11125) 2022-03-27 06:43:47 +00:00
Georges 7793796bd2 Adding Fallback on election failure (#5093)
* Adding `Fallback` on election failure
Use the newly introduced `BoundedOnChainSequentialPhragmen`
and `UnboundedOnChainSequentialPhragmen`

* Adding `BoundedOnchainExecution`
after changes in substrate

* Introducing `ExecutionConfig`
from `frame_election_provider_support::onchain`

* `OnChainSequentialPhragmen` > `OnChainSeqPhragmen`
Renaming to have a shorter name

* `BoundedOnchainExecution` -> `BoundedExecution`
And `UnboundedOnchainExecution` -> `UnboundedExecution`

* `Fallback` back to `NoFallback`
`UnboundedExecution` for `GovernanceFallback`

* Update runtime/test-runtime/src/lib.rs

* update lockfile for {"substrate"}

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: parity-processbot <>
2022-03-26 14:27:39 +00:00
dependabot[bot] 3be364a768 Bump handlebars from 4.1.6 to 4.2.2 (#11073)
Bumps [handlebars](https://github.com/sunng87/handlebars-rust) from 4.1.6 to 4.2.2.
- [Release notes](https://github.com/sunng87/handlebars-rust/releases)
- [Changelog](https://github.com/sunng87/handlebars-rust/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sunng87/handlebars-rust/compare/v4.1.6...v4.2.2)

---
updated-dependencies:
- dependency-name: handlebars
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-26 08:19:07 +01:00
Georges e9bfdd9a0d Add a bounded fallback on failed elections (#10988)
* Allow `pallet-election-provider` to accept smaller
solutions, issue #9478

* Fixing a typo

* Adding some more tests
Removing a seemingly outdated comment

* making it a URL

* Updating test name as per suggestion

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Updating documentation to be more explicit

And to follow the general guidelines

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Fixing formatting

* `Fallback` now of type `InstantElectionProvider`
Some cleanups

* Allow `pallet-election-provider` to accept smaller
solutions, issue #9478

* Fixing a typo

* Adding some more tests
Removing a seemingly outdated comment

* making it a URL

* Updating test name as per suggestion

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Updating documentation to be more explicit

And to follow the general guidelines

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Fixing formatting

* `Fallback` now of type `InstantElectionProvider`
Some cleanups

* Merging types into one type with generics

* Removing `ConstUSize` and use `ConstU32`

* cleaning up the code

* deprecating `OnChainSequentialPhragmen`
Renaming it to `UnboundedSequentialPhragmen` which should only be used
at genesis and for testing.
Use preferrably `BoundedOnChainSequentialPhragmen`

* Amending docs

* Adding some explicit imports

* Implementing generic `BoundedOnchainExecution`
Removing the deprecated `OnChainSequentialPhragmen`

* Use the right Balancing strategy

* Refactoring `onchain::Config`
Creating `onchain::ExecutionConfig`

* Merge master

* fmt

* Name cleanups after review suggestions

* cosmetics

* renaming `instant_elect` to `elect_with_bounds`
Other corresponding changes as per @kianenigma feedback

* `BoundedOnchainExecution` -> `BoundedExecution`
And `UnboundedOnchainExecution` -> `UnboundedExecution`

* feedback from kian

* fmt + unneeded import

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: kianenigma <kian@parity.io>
2022-03-25 20:15:50 +00:00
Gavin Wood cbfb1f0e3b Remove unneeded code (#11117)
* Remove unneeded code

* Remove unused imports

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2022-03-25 15:38:39 -04:00
Adrian Catangiu 498e8c181f Implement Lean BEEFY (#10882)
Simplified BEEFY worker logic based on the invariant that GRANDPA
will always finalize 1st block of each new session, meaning BEEFY
worker is guaranteed to receive finality notification for the
BEEFY mandatory blocks.

Under these conditions the current design is as follows:
- session changes are detected based on BEEFY Digest present in
  BEEFY mandatory blocks,
- on each new session new `Rounds` of voting is created, with old
  rounds being dropped (for gossip rounds, last 3 are still alive
  so votes are still being gossiped),
- after processing finality for a block, the worker votes if
  a new voting target has become available as a result of said
  block finality processing,
- incoming votes as well as self-created votes are processed
  and signed commitments are created for completed BEEFY voting
  rounds,
- the worker votes if a new voting target becomes available
  once a round successfully completes.

On worker startup, the current validator set is retrieved from
the BEEFY pallet. If it is the genesis validator set, worker
starts voting right away considering Block #1 as session start.

Otherwise (not genesis), the worker will vote starting with
mandatory block of the next session.

Later on when we add the BEEFY initial-sync (catch-up) logic,
the worker will sync all past mandatory blocks Signed Commitments
and will be able to start voting right away.

BEEFY mandatory block is the block with header containing the BEEFY
`AuthoritiesChange` Digest, this block is guaranteed to be finalized
by GRANDPA.

This session-boundary block is signed by the ending-session's
validator set. Next blocks will be signed by the new session's
validator set. This behavior is consistent with what GRANDPA does
as well.

Also drop the limit N on active gossip rounds. In an adversarial
network, a bad actor could create and gossip N invalid votes with
round numbers larger than the current correct round number. This
would lead to votes for correct rounds to no longer be gossiped.

Add unit-tests for all components, including full voter consensus
tests.

Signed-off-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: David Salami <Wizdave97>
2022-03-25 17:31:42 +02:00
Shawn Tabrizi cbd6570c56 Companion for Update Bounty Deposit (#11014) (#5183)
* update bounty deposit config

* fix

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-03-25 11:09:32 -04:00
Qinxuan Chen 52967f17de pallet-conviction-voting: make the pallet instantiable (#11088)
* pallet-conviction-voting: make the pallet instanceable

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* Add default type param for some type alias

Signed-off-by: koushiro <koushiro.cqx@gmail.com>
2022-03-25 09:45:01 -04:00
Bernhard Schuster 7a61d75666 remove the dummy overseer implementation (#5199) 2022-03-25 14:44:40 +01:00
Shawn Tabrizi a95dbedee6 Improve Bounties and Child Bounties Deposit Logic (#11014)
* basic idea

* make tests better

* update bounties pallet to also have similar logic

* new test verifies logic for bounty pallet

* add test for new child logic

* better name

* make `node` compile with bounties changes

* * formatting
* use uniform notion of parent and child, no "master" or "general" entity
* README updated to match comments

* Revert "* formatting"

This reverts commit 1ab729e7c23b5db24a8e229d487bbc2ed81d38c3.

* update bounties logic to use bounds

* fix child

* bounties test for max

* update tests

* check min bound

* update node

* remove stale comment

* Update frame/bounties/src/lib.rs

Co-authored-by: Dan Shields <nukemandan@protonmail.com>
2022-03-25 13:42:54 +00:00
Oliver Tale-Yazdi fa8fa8fa33 Add benchmark-block command (#11091)
* Add benchmark-block command

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Apply suggestions from code review

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Beauty fixes

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-03-25 11:27:43 +00:00
Sergejs Kostjucenko 1d42ecadb0 Move scripts used in CI to the new location (#1109)
* Move CI scripts to new location

* Update references

* Update CODEOWNERS file

* Update docker/polkadot-collator_builder.Containerfile

Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>

Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>
2022-03-25 01:25:06 +02:00
Oliver Tale-Yazdi 879960a815 Clear storage before running the bench (#11109)
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2022-03-24 21:12:48 +00:00
Davide Galassi 09d2cb9a09 Companion for revert command new API (#11022) (#1089)
* Additional parameter for 'revert' command

* Update substrate

* cargo update -p xcm

* Update Cargo.lock

Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2022-03-24 16:32:12 -04:00
Vsevolod Stakhov af94fc9534 Try to fix out of view statements (#5177)
This issue happens when some peer sends a good but already known Seconded statement and the statement-distribution code does not update the statements_received field in the peer_knowledge structure. Subsequently, a Valid statement causes out-of-view message that is incorrectly emitted and causes reputation lose.

This PR also introduces a concept of passing the specific pseudo-random generator to subsystems to make it easier to write deterministic tests. This functionality is not really necessary for the specific issue and unit test but it can be useful for other tests and subsystems.
2022-03-24 20:18:43 +00:00
Koute b424e5e741 Companion for Substrate#11107 (#5197)
* Rename to BagError

* Additional parameter for 'revert' command

* Set aux revert param to None

* Align to changes in how the WASM executor is configured in `substrate`

* update lockfile for {"substrate"}

* update lockfile for {"substrate"}

* Update substrate

* Update substrate

Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-03-24 15:56:57 -04:00
Sergei Shulepov c8fda4f1b6 paras: include_pvf_check_statement rt bench (#4938)
* paras: `include_pvf_check_statement` rt bench

Resolves #4933

This PR adds a benchmark for the `include_pvf_check_statement`
dispatchable. This is a necessary step to make it work without
modifications. That enables us to proceed with testing on Versi.

This introduces 5 new benchmarks. Those measure performance of the
`include_pvf_check_statement` under 2 different conditions:

1. regular vote submission. That's the common case.
2. submission of the last vote. That happens only once and leads to a
   heavy finalization stage.

There are 2 different types of finalization (one for onboarding, one for
upgrading) and there are two outcomes: accepted and rejected. Those 4
are similar but I decided to cover them all and assign the maximum of
all 4. This is to avoid a situation when one of those paths becomes more
heavier than others and opens up an attack venue.

The regular vote submission weight is drastically different from the
submission last vote weight. That's why in case during runtime
finalization was not executed the weight consumed value will be lowered
down to the regular vote submission.

The finalization weight is proportional to the number of "causes", i.e.
the events that caused the PVF pre-checking vote in the first place, and
here we assume that the maximum number of causes is 100.

Theoretically, there is nothing that prevents an adversary to
register/upgrade to more than 100 parachains. In that case, the consumed
weight will be lower than the actual time consumed by the finalization
process. That can enable a DoS vector.

However, practically, it is not very possible. Right now it is very
expensive to call `schedule_para_initialize` because it requires a very
large lock up of funds. Moreover, finalizing a vote with 100 causes
leads to around 31ms time spent. Finalizing more will require more time.
However, finalizing with 200 causes will cause ≈62ms delay. This is not
that bad since even though we had a full block and the adversary tried
to finalize 200 causes it won't be able to even exceed the operational
extrinsic boundary of 250ms and even if so it won't make big difference.

That said, this should be addressed later on, esp. when we enable
parathreads, which will make creating causes easier. One of potential
solutions will be shifting the logic of finalization into
`on_initialize`/`on_finalize`. Another is to create a maximum number of
causes and then reject upgrades or onboardings if that was reached.

* cargo run --quiet --profile=production  --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 --profile=production  --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 --profile=production  --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 --profile=production --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

* Fix import error

Co-authored-by: Parity Bot <admin@parity.io>
Co-authored-by: Robert Klotzner <robert.klotzner@gmx.at>
Co-authored-by: Lldenaurois <Ljdenaurois@gmail.com>
2022-03-24 17:52:40 +01:00
Alexander Samusev aa89374d4a [ci] Run short benchmarks only in PR pipelines (#5200) 2022-03-24 17:51:36 +01:00
Qinxuan Chen 44e71d8d7e pallet-referenda: make the pallet instanceable (#11089)
Signed-off-by: koushiro <koushiro.cqx@gmail.com>
2022-03-24 12:36:58 -04:00
Keith Yeung 7cf8010815 Companion for paritytech/substrate#10242 (#4862)
* Rename to BagError

* update lockfile for {"substrate"}

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-03-24 15:39:24 +01:00
Koute a4041add8a Add extra WASM heap pages when precompiling the runtime blob (#11107)
* Add extra WASM heap pages when precompiling the runtime blob

* Fix compilation

* Fix rustdoc

* Fix rustdoc for real this time

* Fix benches compilation

* Improve the builder in `sc-executor-wasmtime`'s tests
2022-03-24 14:19:17 +01:00
Alexander Samusev dea0cc42c7 [ci] Add short benchmarks to the pipeline (#5188)
* [ci] Add short benchmarks to the pipeline

* fix bench

* divide build and bench

* debug

* debug

* remove build from bench script

* run benches on ci runners

* return full pipeline

* fix pipeline

* Update scripts/run_short_benches_for_runtime.sh

Co-authored-by: Mara Robin B. <mara@broda.me>

* change short benchmark script

* allow short bench fail

Co-authored-by: Mara Robin B. <mara@broda.me>
Co-authored-by: parity-processbot <>
2022-03-24 13:52:32 +01:00