* Warn if participated in the losing side of a dispute
* Update naming
* Additionally filter by candidate hash
* Debug zombienet tests
* Update 0002-parachains-disputes.zndsl
* Debug zombienet
* Update node/core/dispute-coordinator/src/initialized.rs
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
* Add checking to zombienet tests
---------
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
* runtime/vstaging: unapplied_slashes runtime API
* runtime/vstaging: key_ownership_proof runtime API
* runtime/ParachainHost: submit_report_dispute_lost
* fix key_ownership_proof API
* runtime: submit_report_dispute_lost runtime API
* nits
* Update node/subsystem-types/src/messages.rs
Co-authored-by: Marcin S. <marcin@bytedude.com>
* revert unrelated fmt changes
* dispute-coordinator: past session dispute slashing
* encapsule runtime api call for submitting report
* prettify: extract into a function
* do not exit on runtime api error
* fix tests
* try initial zombienet test
* try something
* fix a typo
* try cumulus-based collator
* fix clippy
* build polkadot-debug images with fast-runtime enabled
* wip
* runtime/inclusion: fix availability_threshold
* fix wip
* fix wip II
* revert native provider
* propagate tx submission error
* DEBUG: sync=trace
* print key ownership proof len
* panic repro
* log validator index in panic message
* post merge fixes
* replace debug assertion with a log
* fix compilation
* Let's log the dispatch info in validate block.
* fix double encoding
* Revert "Let's log the dispatch info in validate block."
This reverts commit a70fbc51b464d7f4355dbada5e16cd83cf71eab4.
* Revert "Let's log the dispatch info in validate block."
This reverts commit a70fbc51b464d7f4355dbada5e16cd83cf71eab4.
* fix compilation
* update to latest zombienet and fix test
* lower finality lag to 11
* bump zombienet again
* add a workaround, but still does not work
* Update .gitlab-ci.yml
bump zombienet.
* add a comment and search logs on all nodes
---------
Co-authored-by: Marcin S. <marcin@bytedude.com>
Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Javier Viola <javier@parity.io>
We consider BEEFY mature enough to run by default on all nodes
for test networks (Rococo/Wococo/Versi).
Right now, most nodes are not running it since it's opt-in using
--beefy flag. Switch to an opt-out model for test networks.
Replace --beefy flag from CLI with --no-beefy and have BEEFY
client start by default on test networks.
Signed-off-by: acatangiu <adrian@parity.io>
* test that successfully verify self-generated proof
* verify proof result on all unpaused nodes
* tighten interface: reuse connection
* generate the proof on arbitrary node
* s/stub-name/validator
seems this doesn't pass some regex
* rename script
* add basic mmr-leaves test
* documentation formatting
* check lower bound on mmr leaves
* test beefy rpc: finalized heads match
* test mmr api: stateless proofs
* set lower bound on number of leaves
* change leaves in proof generation
* remove TODOs
* cleanup: consistently ignore zndsl name arg
* refactor: simplify returns
Co-authored-by: Serban Iorga <serban@parity.io>
* lax finalized head test
Co-authored-by: Adrian Catangiu <adrian@parity.io>
* fixup! refactor: simplify returns
* refactor out getApis
Co-authored-by: Serban Iorga <serban@parity.io>
* split out paused validator from group
* refactor: don't ignore node arg
don't randomize selection of proof generating / finalized head
retrieving node, but use the node arg for this.
* only check min block height, not relative
Co-authored-by: Adrian Catangiu <adrian@parity.io>
* verify finalized heads share same canonical chain
picks the node with the highest finalized head, gets its blockchain
headers since genesis, and verifies that all other nodes' finalized
heads are in said blockchain.
* fixup! split out paused validator from group
Co-authored-by: Serban Iorga <serban@parity.io>
---------
Co-authored-by: Serban Iorga <serban@parity.io>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
* bump zombienet version
* remove redundant 'is up' assertion
* bump zombienet version
* bump to latest version of zombienet
* add more time to check peers
* Decrease expected peer count in zombinenet tests
Recent change in the in/out peer ratio caused some of the zombienet
tests to fail. Adjust the number of expected peers to reflect the new
ratio to make tests pass again.
* Increase `--out-peers` to 15 for paritydb test
* Don't check the number of connected peers
* disputes/slashing: slash only backers for ForInvalid
* add an assertion in mock impl
* fix tests
* do not slash backers on onconcluded disputes
* slash an intersection of backers and losers
* zombienet/disputes: check for offence only for invalid disputes
* add backing votes to disputes bench builder
* Update runtime/parachains/src/builder.rs
* Brad implementers guide revisions 2 (#6239)
* Add disputes subsystems fix
* Updated dispute approval vote import reasoning
* Improved wording of my changes
* Resolving issues brought up in comments
* Update disputes prioritisation in `dispute-coordinator` (#6130)
* Scraper processes CandidateBacked events
* Change definition of best-effort
* Fix `dispute-coordinator` tests
* Unit test for dispute filtering
* Clarification comment
* Add tests
* Fix logic
If a dispute is not backed, not included and not confirmed we
don't participate but we do import votes.
* Add metrics for refrained participations
* Revert "Add tests"
This reverts commit 7b8391a087922ced942cde9cd2b50ff3f633efc0.
* Revert "Unit test for dispute filtering"
This reverts commit 92ba5fe678214ab360306313a33c781338e600a0.
* fix dispute-coordinator tests
* Fix scraping
* new tests
* Small fixes in guide
* Apply suggestions from code review
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
* Fix some comments and remove a pointless test
* Code review feedback
* Clarification comment in tests
* Some tests
* Reference counted `CandidateHash` in scraper
* Proper handling for Backed and Included candidates in scraper
Backed candidates which are not included should be kept for a
predetermined window of finalized blocks. E.g. if a candidate is backed
but not included in block 2, and the window size is 2, the same
candidate should be cleaned after block 4 is finalized.
Add reference counting for candidates in scraper. A candidate can be
added on multiple block heights so we have to make sure we don't clean
it prematurely from the scraper.
Add tests.
* Update comments in tests
* Guide update
* Fix cleanup logic for `backed_candidates_by_block_number`
* Simplify cleanup
* Make spellcheck happy
* Update tests
* Extract candidate backing logic in separate struct
* Code review feedback
* Treat backed and included candidates in the same fashion
* Update some comments
* Small improvements in test
* spell check
* Fix some more comments
* clean -> prune
* Code review feedback
* Reword comment
* spelling
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
* approval-voting: remove redundant validation check (#6266)
* approval-voting: remove a redundant check
* candidate-validation: remove unreachable check
* remove fill_block (#6200)
Co-authored-by: parity-processbot <>
* fix a compilation warning (#6279)
Fixes#6277.
* Only report concluded if there is an actual dispute. (#6270)
* Only report concluded if there is an actual dispute.
Hence no "non"-disputes will be added to disputes anymore.
* Fix redundant check.
* Test for no onesided disputes.
Co-authored-by: eskimor <eskimor@no-such-url.com>
* [ci] fix buildah image (#6281)
* Revert special casing of Kusama for grandpa rounds. (#6217)
Co-authored-by: eskimor <eskimor@no-such-url.com>
* Fixes "for loop over an `Option`" warnings (#6291)
Was seeing these warnings when running `cargo check --all`:
```
warning: for loop over an `Option`. This is more readably written as an `if let` statement
--> node/core/approval-voting/src/lib.rs:1147:21
|
1147 | for activated in update.activated {
| ^^^^^^^^^^^^^^^^
|
= note: `#[warn(for_loops_over_fallibles)]` on by default
help: to check pattern in a loop use `while let`
|
1147 | while let Some(activated) = update.activated {
| ~~~~~~~~~~~~~~~ ~~~
help: consider using `if let` to clear intent
|
1147 | if let Some(activated) = update.activated {
| ~~~~~~~~~~~~ ~~~
```
My guess is that `activated` used to be a SmallVec or similar, as is
`deactivated`. It was changed to an `Option`, the `for` still compiled (it's
technically correct, just weird), and the compiler didn't catch it until now.
* companion for #12599 (#6290)
* companion for #12599
* update Cargo.lock
* use cargo path instead of diener
* update lockfile for {"substrate"}
Co-authored-by: parity-processbot <>
* remove the runtime check and test
* append keys on past-session slashing
* runtime/disputes: allow importing backing votes after explicit for
* explicit MaliciousBacker error and a test
* update an outdated comment
* Revert "update an outdated comment"
This reverts commit 7c4c3f5a848f16e2b61435e981d814f00333ed41.
* Revert "remove the runtime check and test"
This reverts commit a5bff0c75e77effb5b7d3a1691de1b14bcdbd648.
* incremental punishment post conclusion + test
* punish backers post FOR vote
* remove unnecessary lifetime annotation
* add a comment to zombinet test
* typo
* fmt
* post merge test fixes
* fix test after changes in master
* address review nits
---------
Co-authored-by: Bradley Olson <34992650+BradleyOlson64@users.noreply.github.com>
Co-authored-by: Tsvetomir Dimitrov <tsvetomir@parity.io>
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
Co-authored-by: Sergej Sakac <73715684+Szegoo@users.noreply.github.com>
Co-authored-by: eskimor <eskimor@users.noreply.github.com>
Co-authored-by: eskimor <eskimor@no-such-url.com>
Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com>
Co-authored-by: Marcin S <marcin@bytedude.com>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* 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>
* bump zombienet version
* update path for zombienet scripts
* bump version and move from extra_args to args
Co-authored-by: Andrei Sandu <andrei-mihail@parity.io>