Some late short-term fixes for dispute slashing (#6249)
* 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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> * [ci] fix buildah image (#6281) * Revert special casing of Kusama for grandpa rounds. (#6217) Co-authored-by: eskimor <[email protected]> * 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 <[email protected]> Co-authored-by: Tsvetomir Dimitrov <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Sergej Sakac <[email protected]> Co-authored-by: eskimor <[email protected]> Co-authored-by: eskimor <[email protected]> Co-authored-by: Alexander Samusev <[email protected]> Co-authored-by: Marcin S <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]>
parent
e8d9af4d
Please register or sign in to comment