* disputes pallet: Filter disputes with votes less than supermajority threshold
* Remove `max_spam_slots` usages
* Remove `SpamSlots`
* Remove `SpamSlotChange`
* Remove `Error<T>::PotentialSpam` and stale comments
* `create_disputes_with_no_spam` -> `create_disputes`
* Make tests compile - wip commit
* Rework `test_dispute_timeout`. Rename `update_spam_slots` to `filter_dispute_set`
* Remove `dispute_statement_becoming_onesided_due_to_spamslots_is_accepted` and `filter_correctly_accounts_spam_slots` -> they bring no value with removed spam slots
* Fix `test_provide_multi_dispute_success_and_other`
* Remove an old comment
* Remove spam slots from tests - clean todo comments
* Remove test - `test_decrement_spam`
* todo comments
* Update TODO comments
* Extract `test_unconfirmed_are_ignored` as separate test case
* Remove dead code
* Fix `test_unconfirmed_are_ignored`
* Remove dead code in `filter_dispute_data`
* Fix weights (related to commit "Remove `SpamSlots`")
* Disputes migration - first try
* Remove `dispute_max_spam_slots` + storage migration
* Fix `HostConfig` migration tests
* Deprecate `SpamSlots`
* Code review feedback
* add weight for storage version update
* fix bound for clear()
* Fix weights in disputes migration
* Revert "Deprecate `SpamSlots`"
This reverts commit 8c4d967c7b061abd76ba8b551223918c0b9e6370.
* Make mod migration public
* Remove `SpamSlots` from disputes pallet and use `storage_alias` in the migration
* Fix call to `clear()` for `SpamSlots` in migration
* Update migration and add a `try-runtime` test
* Add `pre_upgrade` `try-runtime` test
* Fix some test names in `HostConfiguration` migration
* Link spamslots migration in all runtimes
* Add `test_unconfirmed_disputes_cause_block_import_error`
* Update guide
- Remove `SpamSlots` related information from roadmap/implementers-guide/src/runtime/disputes.md
- Add 'Disputes filtering' to Runtime section of the Implementor's guide
* Update runtime/parachains/src/configuration/migration.rs
Co-authored-by: Marcin S. <marcin@bytedude.com>
* Code review feedback - update logs
* Code review feedback: fix weights
* Update runtime/parachains/src/disputes.rs
Co-authored-by: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com>
* Additional logs in disputes migration
* Fix merge conflicts
* Add version checks in try-runtime tests
* Fix a compilation warning`
Co-authored-by: Marcin S. <marcin@bytedude.com>
Co-authored-by: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com>
* Use UpgradeCheckSelector
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* update lockfile for {"substrate"}
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>
* Tweaks to optimise gov2
* Use new inactive funds
* Introduce migrations
* Fixes
* Fixes
* Fixes
* Some constant updates for Fellowship
* Further tweaks
* Lower floor for whitelisted
* rust 1.64 enables workspace properties
* add edition, repository and authors.
* of course, update the version in one place.
Co-authored-by: Andronik <write@reusable.software>
* westend: update transaction version
* polkadot: update transaction version
* kusama: update transaction version
* Bump spec_version to 9330
* bump versions to 0.9.33
* add maximum winners to multi phase election provider
* fallback to noelection
* fmt
* missing values
* convert boundedvec to inner before sort
* dont clone
* pr feedback
* update lockfile for {"substrate"}
* run onchain election on westend benchmark
Co-authored-by: parity-processbot <>
* pallet-mmr: RPC API works with block numbers
* small fix
* update
* change types
* update lockfile for {"substrate"}
Co-authored-by: parity-processbot <>
* remove para lock check for now
* fmt
* manual para lock
* expose schedule_code_upgrade and set_current_head
* extrinsics and benchmarks
* use zero
* add weights
* fix variable name
* add and fix comments
* fix weights
* add back default lock
Co-authored-by: parity-processbot <>
* 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>
* remove history depth from storage and add it as config for pallet staking
* add migration to v11 for staking pallet
* revert local substrate dependency patch
* remove history depth from storage and add it as config for pallet staking
* add migration to v11 for staking pallet
* revert local substrate dependency patch
* update substrate dependencies
* update cargo lock
* update to latest substrate
* revert all changes to Cargo.lock
* cargo update -p sp-io
* mark migration job as failable
Co-authored-by: kianenigma <kian@parity.io>
* 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>
* 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
* Enable correct features
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* Feature gate function
The expose_db function is currently feature gated with runtime-benchmarks.
After the related Substrate MR, this feature gate will actually *work*
as intended instead of doing nothing.
BUT then we also have to pass through the correct feature, hence this MR.
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* update lockfile for {"substrate"}
* Fix bench features
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
* fix more features
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>
* refactor backing points to only reward active set
* impl disputes::RewardValidators
* enable rewards on westend, kusama, polkadot
* fmt
* make dispute points same as backing
* disable on polkadot for now