Commit Graph

273 Commits

Author SHA1 Message Date
Serban Iorga ab8f04f827 Companion for BEEFY: Simplify hashing for pallet-beefy-mmr (#6098)
* beefy-mmr: Simplify hashing

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-10-04 09:25:48 +00:00
Serban Iorga 5458406927 Companion for pallet-mmr: generate historical proofs (#6061)
* BEEFY: generate historical proofs

Signed-off-by: Serban Iorga <serban@parity.io>

* cargo update -p sp-io

* Properly set max proof size for runtimes

* Properly set max proof size for mocks

* cargo fmt

* Set appropriate UMP service total proof size weight

* Disable zombienet-tests-parachains-disputes CI

* Add comment explaining weight math

* Use MAX_POV_SIZE for max proof size

* Cast to u64

* Remove comment

Signed-off-by: Serban Iorga <serban@parity.io>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
2022-10-02 10:42:24 +01:00
Shawn Tabrizi 2b07b39911 Companion for #12283 (Anon -> Pure Proxy) (#6038)
* anon -> pure

* fn pure -> fn create_pure

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-09-22 15:13:43 +00:00
Sergej Sakac 937c4e76ae Rename Origin (#6020)
* Rename Origin

* fmt

* fixes

* more fixes

* fix

* more fixing

* small fixes

* last touches

* update lockfile for {"substrate"}

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-09-20 22:53:12 +00:00
Andronik 18c077a818 runtime/disputes: slashing (#5535)
* disputes: runtime part of slashing

* disputes: reward winners

* disputes/slashing: validate_unsigned impl

* fmt

* disputes/slashing: report_dispute_lost_unsigned

* disputes/slashing: separate winners from losers and report winners

* disputes/slashing: refactoring

* impl HandleReports

* enable on Wenstend

* fmt

* add slashing pallet to the mock and test runtimes

* fix a bug in report_dispute_lost_unsigned

* fmt

* disputes: remove new_participants from summary

* disputes: remove punish_inconclusive

* impl SlashingHandler for Pallet for type-safety

* do not impl slashing::Config on mainnets yet

* teach spellcheck deduplication

* simplify interfaces and resolve some TODOs

* resolve some more TODOs

* minor typos

* move slashing into a folder

* remove unnecessary clone

* fix validator_set_count calculation

* introduce ValidatorSetCount

* store ValidatorSetCount

* fmt

* add the benchmark

* fmt

* unflatten slashing

* post-rebase fixes

* remove winners eagerly

* use real slashing weights for westend

* remove bench test suite

* zombinet: modify disputes test to check for an offence report

* zombinet: add a timeout

* add slashing pallet to Rococo

* zombienet: revert back to rococo-local

* fmt

* remove TODOs

* revert some accidental changes

* slashing is submodule of disputes

* Change the log target

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

* wrap comments with rustfmt, more docs, constants

* use Defensive trait

* cargo update -p sp-io

* merge offence types, remove rewards for now

* cargo update -p sp-io

* benchmark fixes

* fmt

* unused var

* fix block_author impl

* ressurect RewardValidators trait

* remove outdated comment

* more module docs

* introduce BenchmarkingConfig

* typo fix

* teach spellcheck unapplied

* use Weight::new()

* fix mocking rewards

* use RefTimeWeight

* ".git/.scripts/bench-bot.sh" runtime westend-dev runtime_parachains::disputes::slashing

* refactor maybe_identify_validators

* no more ticket in disguise

* remove outdated comments

* lower against valid to 0.1%

* bump zombienet version for debug

* use from_perthousand

* post-merge fixes

* another day, another Weight changes

* Revert "bump zombienet version for debug"

This reverts commit 0d9978711f8ec9a746a5e1c45e8ffbe7c75e7b5c.

* do not reward block authors

* fix outdated comment

* use Pays from frame_support::dispatch::Pays

* add timeout to is up

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: command-bot <>
Co-authored-by: Javier Viola <javier@parity.io>
Co-authored-by: Javier Viola <pepoviola@gmail.com>
2022-09-20 10:56:55 +00:00
Tsvetomir Dimitrov 6ae9720c36 Improved dispute votes import in provisioner (#5567)
* Add `DisputeState` to `DisputeCoordinatorMessage::RecentDisputes`

The new signature of the message is:
```
RecentDisputes(oneshot::Sender<Vec<(SessionIndex, CandidateHash, DisputeStatus)>>),
```

As part of the change also add `DispiteStatus` to
`polkadot_node_primitives`.

* Move dummy_signature() in primitives/test-helpers

* Enable staging runtime api on Rococo

* Implementation

* Move disputes to separate module
* Vote prioritisation
* Duplicates handling
* Double vote handling
* Unit tests
* Logs and metrics
* Code review feedback
* Fix ACTIVE/INACTIVE separation and update partition names
* Add `fn dispute_is_inactive` to node primitives and refactor `fn get_active_with_status()` logic
* Keep the 'old' logic if the staging api is not enabled
* Fix some comments in tests
* Add warning message if there are any inactive_unknown_onchain disputes
* Add file headers and remove `use super::*;` usage outside tests
* Adding doc comments
* Fix test methods names

* Fix staging api usage

* Fix `get_disputes` runtime function implementation

* Fix compilation error

* Fix arithmetic operations in tests

* Use smaller test data

* Rename `RuntimeApiRequest::StagingDisputes` to `RuntimeApiRequest::Disputes`

* Remove `staging-client` feature flag

* fmt

* Remove `vstaging` feature flag

* Some comments regarding the staging api

* Rename dispute selection modules in provisioner
with_staging_api -> prioritized_selection
without_staging_api -> random_selection

* Comments for staging api

* Comments

* Additional logging

* Code review feedback

process_selected_disputes -> into_multi_dispute_statement_set
typo
In trait VoteType: vote_value -> is_valid

* Code review feedback

* Fix metrics

* get_disputes -> disputes

* Get time only once during partitioning

* Fix partitioning

* Comments

* Reduce the number of hardcoded api versions

* Code review feedback

* Unused import

* Comments

* More precise log messages

* Code review feedback

* Code review feedback

* Code review feedback - remove `trait VoteType`

* Code review feedback

* Trace log for DisputeCoordinatorMessage::QueryCandidateVotes counter in vote_selection
2022-09-19 23:06:09 +03:00
Sergej Sakac 8ea6076fe5 Companion for #11981 (#5915)
* Companion for #11981

* more renaming

* fmt

* fixes

* add generic type

* Companion for #11831

* fix

* revert changes

* Delete rename-outer-enum.diff

* revert

* Update run_benches_for_runtime.sh

* rename type Call & type Event

* passing tests

* fmt

* small fixes

* commit

* fix

* fmt

* commit

* error fixes

* fix

* small fix in test

* Update lib.rs

* Update lib.rs

* Update lib.rs

* Update lib.rs

* Update lib.rs

* Update lib.rs

* Update lib.rs

* remove RuntimeCall from pallet_grandpa

* last fix

* commit

* rename

* merge fix

* update lockfile for {"substrate"}

* cargo +nightly fmt

* fix

Co-authored-by: parity-processbot <>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
2022-09-12 23:03:47 +00:00
Mara Robin B db0fc60344 update weights (sync with v0.9.29) (#5989)
* kusama: update weights

* polkadot: update weights

* westend: update weights

* rococo: update weights

* fixup

* revert block weights
2022-09-12 11:48:27 +00:00
Mara Robin B 1acc3fa150 Sync versions with current release (v0.9.29) (#5982)
* Bump transaction_version for westend

* Bump transaction_version for rococo

* Bump transaction_version for kusama

* Bump transaction_version for polkadot

* Bump spec_version to 9290

* Bump crate versions
2022-09-09 11:24:06 +00:00
Ignacio Palacios 7f7f96a208 Update Rococo to mirror Kusama (#5617)
* upgrade to kusama base

* rollback epoch and clean up

* Substitue DOLLARS with UNITS

* money constatns to mirror Kusama

* fixing typo in test

* scheduler+collective+membership+preimage

* treasury+democracy+bounties+child_bounties+society

* tips+claim+identity+elections_phragmen+vesting

* recovery+gilt

* proxy+slot+auction+registar+crowdloan

* babe+epoch_time modificaction

* xcm_config

* xcm_config fix

* constants

* fix conflicts 2

* fmt

* update xcm_config

* revert xcm_config change

* fixing benchmarks

* cargo.lock

* Revert "babe+epoch_time modificaction"

This reverts commit 663cb0292c42c8a084a8c1c36cb966389576989b.

* fix benchamrks 2

* fix benchmarks 3

* typos

* miscelaneous

* fix constants test

* rollback comments

* rollback lease period

* fmt

* add ROC to spellcheck dictionary

* fix cargo.toml + fixes

* remove TODOs

* nit fix

* weights 1.5

* Bumping number of perm/temp slots available

Co-authored-by: al3mart <alejandro@parity.io>
Co-authored-by: alvicsam <alvicsam@gmail.com>
2022-09-08 11:20:34 +00:00
Davide Galassi 293ff64fd0 Companion - Read babe config parameters from runtime (#5842)
* Read babe config parameters from runtime

* Trigger pipeline

* Trigger pipeline (after PR title change)

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-09-06 06:23:13 +00:00
Keith Yeung 41eff346cb Companion of paritytech/substrate#12157 (#5964)
* Remove RefTimeWeight

* Fixes

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-09-02 19:12:06 +00:00
Shawn Tabrizi e28bf2e476 Companion for Weight v1.5 Follow Up (#5949)
* updates

* remove new

* fix up some stuff

* fix cargo files

* fix

* fix template

* update lockfile for {"substrate"}

* Update block_weights.rs

* remove unused

* remove unused

Co-authored-by: parity-processbot <>
2022-09-01 19:00:51 +00:00
Shawn Tabrizi 28e94d97dd Companion for Weight v1.5 (#5943)
* fix to latest substrate pr

* update weights

* cargo build -p polkadot-runtime-parachains

* fix xcm-builder

* fix import

* fix a bunch

* fix a bunch of weight stuff

* kusama compile

* unused

* builds

* maybe fix

* cargo test -p polkadot-runtime-parachains

* xcm simulator example

* fix tests

* xcm sim fuzz

* fix runtime tests

* remove unused

* fix integration tests

* scalar div

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-08-31 11:59:39 +00:00
Mara Robin B fc97080cb2 version bumps (0.9.28) (#5933)
* Bump crate versions

* Bump spec_version to 9280 for kusama

* Bump spec_version to 9280 for polkadot

* Bump spec_version to 9280 for rococo

* Bump spec_version to 9280 for westend

* update Cargo.lock

Co-authored-by: parity-processbot <>
2022-08-29 18:01:58 +02:00
Mara Robin B 83217b3e04 update weights (#5911)
* rococo: update weigths

* polkadot: update weigths

* kusama: update weigths

* westend: update weights

Co-authored-by: parity-processbot <>
2022-08-25 10:11:40 +00:00
Bastian Köcher c3404d109d Companion for new Trie cache (#5897)
* Switch to Substrate branch

* Make everything compile

* Revert "Switch to Substrate branch"

This reverts commit cbbab7431a07cfd645428a9f4c130362a8e7588b.

* Remove stuff

* More fixes

* Fix branch

* Update Substrate

* FMT
2022-08-18 21:35:56 +00:00
Muharem Ismailov 219fd5a3ed Transaction payment runtime apis: query call info and fee details (#5871) 2022-08-15 14:39:01 +02:00
Mara Robin B cb82d21708 update weights (#5844)
* westend: update weights

* kusama: update weights

* polkadot: update weights

* rococo: update weights

* update BlockExecutionWeight

* kusama: readd phragmen remove_member_wrong_refund weight

* polkadot: readd phragmen remove_member_wrong_refund weight
2022-08-01 13:13:21 +00:00
Mara Robin B 1a8b087129 update weights (#5767)
* polkadot: update weights

* kusama: update weights

* westend: update weights

* rococo: update weights

* Reduce testing constants (#5787)

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

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2022-07-28 19:35:39 +00:00
Chevdor bfc9efc944 bump transcation_version for rococo (#5760) (#5830)
* bump transcation_version

* revert back transaction version for kusama and plokadot as they were bumped in the previous release

Co-authored-by: Egor_P <egor@parity.io>
2022-07-28 11:57:41 +00:00
Alexander Theißen cf18868afd Bump substrate (#5814)
* Bump substrate

* Bump spec version
2022-07-25 16:59:37 +00:00
Oliver Tale-Yazdi 340e7be60d Co #11456: Expose benchmark extrinsic command (#5620)
* Expose 'benchmark extrinsic' command

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

* Add test

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

* Fix tests

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

* Fix tests

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

* Split benchmarking into own mod

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

* Simplify code

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

* Fixup

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

* Cleanup

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

* Spell

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

* Revert Cargo.lock updates

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

* update lockfile for {"substrate"}

* Fix brittle test

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

* Bump spec version to 9270

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

* Sleep in test to make it work in CI...

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

* Disable failing test

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

* Revert "Bump spec version to 9270"

This reverts commit c1c385d7a4dc849e7f4d4723740aec66c2b7be09.

* Delete brittle test, see #5788

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

* Disable failing test

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

* Delete more failing tests...

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

Co-authored-by: parity-processbot <>
2022-07-19 14:11:38 +02:00
Chevdor 9fc4e16eff Version bump to v0.9.26/9260 (#5755)
* Bump spec_version to 9260

* Version bump to v0.9.26
2022-07-06 10:31:45 +00:00
Svyatoslav Nikolsky 3f29fd04e1 Remove bridges subtree (#5752)
* remove bridges folder

* remove BRIDGES.md

* remove bridges mentions from top Cargo.toml

* remove bridges from CODEOWNERS

* remove bridges mentions from testing.md

* remove bridge pallets from Rococo/Wococo runtime

* also remove from node
2022-07-06 06:54:38 +00:00
Adrian Catangiu b9482cf788 Rococo: add new pallet-beefy-mmr API (companion for substrate#11406) (#5516)
* Rococo: add new pallet-beefy-mmr API

* rename BeefyMmr exposed api

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-06-22 19:31:56 +00:00
Mara Robin B 97f9b840e4 bump versions to 0.9.25 (#5684)
* kusama: bump spec_version to 9250

* polkadot: bump spec_version to 9250

* rococo: bump spec_version to 9250

* westend: bump spec_version to 9250

* bump version to 0.9.25

* bump transaction version (polkadot & kusama) (#5690)

* kusama: bump transaction_version to 12

* polkadot: bump transaction_version to 13
2022-06-21 13:02:04 +00:00
Mara Robin B 8ef2b701c1 update weights (#5704)
* westend: update weights

* kusama: update weights

* polkadot: update weights

* rococo: update weights
2022-06-21 12:58:01 +02:00
ZhiYong a3125b9f47 Companion for substrate#11618 (#5677)
* Companion for substrate#11618

* Fix

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-06-16 02:05:22 +00:00
Keith Yeung f3c49cb790 Companion for paritytech/substrate#11584 (#5633)
* Companion for paritytech/substrate#11584

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-06-13 18:34:45 +00:00
Mara Robin B 3ea40ba1f7 update weights (#5601)
* polkadot: update weights

* kusama: update weights

* westend: update weights

* rococo: update weights
2022-05-30 12:41:11 +02:00
Mara Robin B 7eba8f2162 bump to 0.9.23 (#5593)
* bump version to 0.9.23

* bump spec_version to 9230
2022-05-27 10:18:23 +02:00
Nazar Mokrynskyi c090fb4c2e Companion for #11415 (WeightToFee) (#5525)
* Companion for https://github.com/paritytech/substrate/pull/11415

* Rename `WeightToFee::calc()` to `WeightToFee::wight_to_fee()`

* Fix typo

* Fix compile errors

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-05-25 10:06:01 +02:00
Mara Robin B 3b685fbf91 version bumps (0.9.22) (#5495)
* bump versions to 0.9.22

* bump spec_version to 9220
2022-05-16 13:24:24 +02:00
Mara Robin B 5e458f6acb update weights (#5507)
* rococo: update weights

* polkadot: update weights

* kusama: update weights

* westend: update weights
2022-05-12 10:44:21 +00:00
Andronik 15e7536a4e runtime/session_info: keep track of stash keys (#5473) 2022-05-12 09:36:57 +00:00
Jun Jiang 2e1a3441f9 add force_batch weight entry to runtimes (#5452) 2022-05-05 14:39:30 +00:00
Web3 Smith 9cdfbb4c8d Update MMR Runtime API - add proof batching (#4700)
* update runtime apis

* rebase

* update apis

* update apis

* minor fix

* minor fix

* minro fixes

* update api

* style fix

* update lockfile for {"substrate"}

Co-authored-by: acatangiu <adrian@parity.io>
Co-authored-by: parity-processbot <>
2022-05-04 11:26:32 +00:00
Doordashcon f23496d350 update (#5402) 2022-04-27 17:41:30 +02:00
Oliver Tale-Yazdi 9621dbebc9 Co #11270: Update benchmark machine command (#5386)
* Update benchmark machine command

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

* Add import

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

* Rename POLKADOT_REFERENCE_HARDWARE -> SUBSTRATE_REFERENCE_HARDWARE

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

* update lockfile for {"substrate"}

* Bump spec_version to 9200

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

Co-authored-by: parity-processbot <>
2022-04-26 18:26:11 +02:00
Mara Robin B bb3cc7b041 update weights (#5361)
* polkadot: update weights

* kusama: update weights

* rococo: update weights

* westend: update weights
2022-04-22 09:26:19 +00:00
Adrian Catangiu a46237cebb Add mmr_root() to pallet-mmr API to expose root from state (companion for substrate#11183) (#5276)
* Add mmr_root() to pallet-mmr API to expose root from state

* use the right MmrApi primitives

* bridges: use correct mmr primitives

* rococo: beefy-mmr deposit mmr root digest

* fix lockfile

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-04-13 10:55:18 +00:00
Tsvetomir Dimitrov fd020c07e5 Add staging runtime api (#5048)
* Move `trait ParachainHost` to a separate version independent module

`trait ParachainHost` is no longer part of a specific primitives
version. Instead there is a single trait for stable and staging api
versions. The trait contains stable AND staging methods. The latter are
explicitly marked as unstable.

* Fix `use` primitives

`polkadot_primitives::v2` becomes `polkadot_primitives::runtime_api`

* Staging API declaration and stubs

Introduces the concept for 'staging functions' in runtime API. These
functions are still in testing and they are meant to be used only
within test networks (Westend).
They coexist with the stable calls for technical reasons - maintaining
different runtime APIs for different networks is hard to implement.

Check the doc comments in source files for more details how the staging
API should be used.

* Add new staging method - get_session_disputes()

Add `staging_get_session_disputes` to `ParachainHost` as the first
method of the staging API.

* Hide vstaging runtime api implementations  behind feature flag

* Fix test runtime

* fn staging_get_session_disputes() is renamed to fn staging_get_disputes()
2022-04-12 15:47:46 +00:00
Mara Robin B 2cc30515d8 bump spec_version to 9190 (#5291) 2022-04-08 11:48:52 +00:00
Stephen Shelton 2433de588a Replace TransactionByteFee with LengthToFee (#5028)
* Replace TransactionByteFee with LengthToFee

* s/ConstantModifierFee/ConstantMultiplier/

* fmt

* Remove duplicate import

* fmt

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

* update lockfile for {"substrate"}

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-04-07 13:13:32 +00:00
Mara Robin B d50b5bdb06 rococo: update weights (#5242) 2022-04-06 10:15:11 +02:00
Qinxuan Chen 74078d8eb9 Comanion for substrate#11136 (#5218)
* Comanion for substrate#11136

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

* revert changes in bridge

Signed-off-by: koushiro <koushiro.cqx@gmail.com>
2022-04-04 11:13:34 +02:00
Oliver Tale-Yazdi c8cdf9fc03 Integrate benchmark-overhead command (#5137)
* Integrate benchmark-overhead command

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

* Beauty fix test

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

* Spellcheck on

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

* 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>

* Revert "Update block+extrinsic weights"

This reverts commit d77bf977f6bca0b1ded35daa2fd54b97e18a67db.

* Revert "Remove constants:: module"

This reverts commit 2d3bcd0212c438f6b96755900a01762592d90265.

* Review fixes

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

* Review fixes

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

* Review fixes

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

* Review fixes

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

* CI

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

Co-authored-by: parity-processbot <>
2022-04-01 10:34:40 +00:00
Web3 Smith 30dcadacdc Refactor beefy-mmr implementation (#4719)
* update pallet-beefy-mmr implementation

* minor fix

* fix build

* use H256 for rococo leaf extra

* update lockfile for {"substrate"}

* fix fmt

Co-authored-by: acatangiu <adrian@parity.io>
2022-04-01 13:09:45 +03: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