Skip to content
  1. Dec 13, 2023
    • Alexandru Gheorghe's avatar
      Approve multiple candidates with a single signature (#1191) · a84dd0db
      Alexandru Gheorghe authored
      Initial implementation for the plan discussed here: https://github.com/paritytech/polkadot-sdk/issues/701
      Built on top of https://github.com/paritytech/polkadot-sdk/pull/1178
      v0: https://github.com/paritytech/polkadot/pull/7554,
      
      ## Overall idea
      
      When approval-voting checks a candidate and is ready to advertise the
      approval, defer it in a per-relay chain block until we either have
      MAX_APPROVAL_COALESCE_COUNT candidates to sign or a candidate has stayed
      MAX_APPROVALS_COALESCE_TICKS in the queue, in both cases we sign what
      candidates we have available.
      
      This should allow us to reduce the number of approvals messages we have
      to create/send/verify. The parameters are configurable, so we should
      find some values that balance:
      
      - Security of the network: Delaying broadcasting of an approval
      shouldn't but the finality at risk and to make sure that never happens
      we won't delay sending a vote if we are past 2/3 from the no-show time.
      - Scalability of the network: MAX_APPROVAL_COALESCE_COUNT = 1 &
      MAX_APPROVALS_COALESCE_TICKS =0, is what we have now and we know from
      the measurements we did on versi, it bottlenecks
      approval-distribution/approval-voting when increase significantly the
      number of validators and parachains
      - Block storage: In case of disputes we have to import this votes on
      chain and that increase the necessary storage with
      MAX_APPROVAL_COALESCE_COUNT * CandidateHash per vote. Given that
      disputes are not the normal way of the network functioning and we will
      limit MAX_APPROVAL_COALESCE_COUNT in the single digits numbers, this
      should be good enough. Alternatively, we could try to create a better
      way to store this on-chain through indirection, if that's needed.
      
      ## Other fixes:
      - Fixed the fact that we were sending random assignments to
      non-validators, that was wrong because those won't do anything with it
      and they won't gossip it either because they do not have a grid topology
      set, so we would waste the random assignments.
      - Added metrics to be able to debug potential no-shows and
      mis-processing of approvals/assignments.
      
      ## TODO:
      - [x] Get feedback, that this is moving in the right direction. @ordian
      @sandreim @eskimor
      
       @burdges, let me know what you think.
      - [x] More and more testing.
      - [x]  Test in versi.
      - [x] Make MAX_APPROVAL_COALESCE_COUNT &
      MAX_APPROVAL_COALESCE_WAIT_MILLIS a parachain host configuration.
      - [x] Make sure the backwards compatibility works correctly
      - [x] Make sure this direction is compatible with other streams of work:
      https://github.com/paritytech/polkadot-sdk/issues/635 &
      https://github.com/paritytech/polkadot-sdk/issues/742
      - [x] Final versi burn-in before merging
      
      ---------
      
      Signed-off-by: default avatarAlexandru Gheorghe <[email protected]>
      a84dd0db
  2. Oct 15, 2023
    • Gonçalo Pestana's avatar
      Refactor staking ledger (#1484) · 8ee4042c
      Gonçalo Pestana authored
      This PR refactors the staking ledger logic to encapsulate all reads and
      mutations of `Ledger`, `Bonded`, `Payee` and stake locks within the
      `StakingLedger` struct implementation.
      
      With these changes, all the reads and mutations to the `Ledger`, `Payee`
      and `Bonded` storage map should be done through the methods exposed by
      StakingLedger to ensure the data and lock consistency of the operations.
      The new introduced methods that mutate and read Ledger are:
      
      - `ledger.update()`: inserts/updates a staking ledger in storage;
      updates staking locks accordingly (and ledger.bond(), which is synthatic
      sugar for ledger.update())
      - `ledger.kill()`: removes all Bonded and StakingLedger related data for
      a given ledger; updates staking locks accordingly;
      `StakingLedger::get(account)`: queries both the `Bonded` and `Ledger`
      storages and returns a `Option<StakingLedger>`. The pallet impl exposes
      fn ledger(account) as synthatic sugar for `StakingLedger::get(account)`.
      
      Retrieving a ledger with `StakingLedger::get()` can be done by providing
      either a stash or controller account. The input must be wrapped in a
      `StakingAccount` variant (Stash or Controller) which is treated
      accordingly. This simplifies the caller API but will eventually be
      deprecated once we completely get rid of the controller account in
      staking. However, this refactor will help with the work necessary when
      completely removing the controller.
      
      Other goals:
      
      - No logical changes have been introduced in this PR;
      - No breaking changes or updates in wallets required;
      - No new storage items or need to perform storage migrations;
      - Centralise the changes to bonds and ledger updates to simplify the
      OnStakingUpdate updates to the target list (related to
      https://github.com/paritytech/polkadot-sdk/issues/443)
      
      Note: it would be great to prevent or at least raise a warning if
      `Ledger<T>`, `Payee<T>` and `Bonded<T>` storage types are accessed
      outside the `StakingLedger` implementation. This PR should not get
      blocked by that feature, but there's a tracking issue here
      https://github.com/paritytech/polkadot-sdk/issues/149
      
      Related and step towards
      https://github.com/paritytech/polkadot-sdk/issues/443
      8ee4042c
  3. Sep 27, 2023
  4. Aug 22, 2023
  5. Aug 16, 2023
  6. Aug 14, 2023
  7. Jul 13, 2023
    • gupnik's avatar
      Moves `Block` to `frame_system` instead of `construct_runtime` and removes... · 28024144
      gupnik authored
      
      Moves `Block` to `frame_system` instead of `construct_runtime` and removes `Header` and `BlockNumber` (#7431)
      
      * Companion for substrate
      
      * Minor update
      
      * Formatting
      
      * Fixes for cumulus
      
      * Fixes tests in polkadot-runtime-parachains
      
      * Minor update
      
      * Removes unused import
      
      * Fixes tests in polkadot-runtime-common
      
      * Minor fix
      
      * Update roadmap/implementers-guide/src/runtime/configuration.md
      
      Co-authored-by: default avatarordian <[email protected]>
      
      * ".git/.scripts/commands/fmt/fmt.sh"
      
      * update lockfile for {"substrate"}
      
      ---------
      
      Co-authored-by: default avatarordian <[email protected]>
      Co-authored-by: command-bot <>
      28024144
  8. Jun 14, 2023
    • eskimor's avatar
      Unify code paths of create_inherent and enter (#7137) · 596a9ccd
      eskimor authored
      
      
      * Remove redundant enter call.
      
      * Remove optionality in dispute signature checking
      
      * Make enter_inner and create_inherent the same.
      
      * Remove redundant metric.
      
      * Unification: enter and create_inherent.
      
      * Remove `enter_inner` function.
      
      * Remove dead code.
      
      * Remove redundant import.
      
      * Remove dead code in disputes.
      
      * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent
      
      * ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras_inherent
      
      * ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras_inherent
      
      * Merge fix.
      
      * Fix tests.
      
      * Remove obsolete comment.
      
      * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent
      
      * ".git/.scripts/commands/bench/bench.sh" runtime westend runtime_parachains::paras_inherent
      
      * ".git/.scripts/commands/bench/bench.sh" runtime kusama runtime_parachains::paras_inherent
      
      * Review remarks, fixes.
      
      * Guide updates.
      
      * Fmt.
      
      * ".git/.scripts/commands/bench/bench.sh" runtime polkadot runtime_parachains::paras_inherent
      
      ---------
      
      Co-authored-by: default avatareskimor <[email protected]>
      Co-authored-by: command-bot <>
      596a9ccd
  9. Jun 05, 2023
    • ordian's avatar
      dispute-coordinator: past session dispute slashing (#6811) · 01a19b45
      ordian authored
      
      
      * 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: default avatarMarcin S. <[email protected]>
      
      * 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: default avatarMarcin S. <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarJavier Viola <[email protected]>
      01a19b45
  10. May 26, 2023
    • ordian's avatar
      runtime: past session slashing runtime API (#6667) · 9bc4f62e
      ordian authored
      
      
      * 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: default avatarMarcin S. <[email protected]>
      
      * revert unrelated fmt changes
      
      * post merge fixes
      
      * fix compilation
      
      ---------
      
      Co-authored-by: default avatarMarcin S. <[email protected]>
      9bc4f62e
  11. May 23, 2023
  12. May 17, 2023
  13. Apr 08, 2023
  14. Mar 24, 2023
  15. Mar 16, 2023
  16. Feb 15, 2023
    • s0me0ne-unkn0wn's avatar
      Executor Environment parameterization (#6161) · dd0a5566
      s0me0ne-unkn0wn authored
      
      
      * Re-apply changes without Diener, rebase to the lastest master
      
      * Cache pruning
      
      * Bit-pack InstantiationStrategy
      
      * Move ExecutorParams version inside the structure itself
      
      * Rework runtime API and executor parameters storage
      
      * Pass executor parameters through backing subsystem
      
      * Update Cargo.lock
      
      * Introduce `ExecutorParams` to approval voting subsys
      
      * Introduce `ExecutorParams` to dispute coordinator
      
      * `cargo fmt`
      
      * Simplify requests from backing subsys
      
      * Fix tests
      
      * Replace manual config cloning with `.clone()`
      
      * Move constants to module
      
      * Parametrize executor performing PVF pre-check
      
      * Fix Malus
      
      * Fix test runtime
      
      * Introduce session executor params as a constant defined by session info
      pallet
      
      * Use Parity SCALE codec instead of hand-crafted binary encoding
      
      * Get rid of constants; Add docs
      
      * Get rid of constants
      
      * Minor typo
      
      * Fix Malus after rebase
      
      * `cargo fmt`
      
      * Use transparent SCALE encoding instead of explicit
      
      * Clean up
      
      * Get rid of relay parent to session index mapping
      
      * Join environment type and version in a single enum element
      
      * Use default execution parameters if running an old runtime
      
      * `unwrap()` -> `expect()`
      
      * Correct API version
      
      * Constants are back in town
      
      * Use constants for execution environment types
      
      * Artifact separation, first try
      
      * Get rid of explicit version
      
      * PVF execution queue worker separation
      
      * Worker handshake
      
      * Global renaming
      
      * Minor fixes resolving discussions
      
      * Two-stage requesting of executor params to make use of runtime API cache
      
      * Proper error handling in pvf-checker
      
      * Executor params storage bootstrapping
      
      * Propagate migration to v3 network runtimes
      
      * Fix storage versioning
      
      * Ensure `ExecutorParams` serialization determinism; Add comments
      
      * Rename constants to make things a bit more deterministic
      Get rid of stale code
      
      * Tidy up a structure of active PVFs
      
      * Minor formatting
      
      * Fix comment
      
      * Add try-runtime hooks
      
      * Add storage version write on upgrade
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Add pre- and post-upgrade assertions
      
      * Require to specify environment type; Remove redundant `impl`s
      
      * Add `ExecutorParamHash` creation from `H256`
      
      * Fix candidate validation subsys tests
      
      * Return splittable error from executor params request fn
      
      * Revert "Return splittable error from executor params request fn"
      
      This reverts commit a0b274177d8bb2f6e13c066741892ecd2e72a456.
      
      * Decompose approval voting metrics
      
      * Use more relevant errors
      
      * Minor formatting fix
      
      * Assert a valid environment type instead of checking
      
      * Fix `try-runtime` hooks
      
      * After-merge fixes
      
      * Add migration logs
      
      * Remove dead code
      
      * Fix tests
      
      * Fix tests
      
      * Back to the strongly typed implementation
      
      * Promote strong types to executor interface
      
      * Remove stale comment
      
      * Move executor params to `SessionInfo`: primitives and runtime
      
      * Move executor params to `SessionInfo`: node
      
      * Try to bump primitives and API version
      
      * Get rid of `MallocSizeOf`
      
      * Bump target API version to v4
      
      * Make use of session index already in place
      
      * Back to v3
      
      * Fix all the tests
      
      * Add migrations to all the runtimes
      
      * Make use of existing `SessionInfo` in approval voting subsys
      
      * Rename `TARGET` -> `LOG_TARGET`
      
      * Bump all the primitives to v3
      
      * Fix Rococo ParachainHost API version
      
      * Use `RollingSessionWindow` to acquire `ExecutorParams` in disputes
      
      * Fix nits from discussions; add comments
      
      * Re-evaluate queue logic
      
      * Rework job assignment in execution queue
      
      * Add documentation
      
      * Use `RuntimeInfo` to obtain `SessionInfo` (with blackjack and caching)
      
      * Couple `Pvf` with `ExecutorParams` wherever possible
      
      * Put members of `PvfWithExecutorParams` under `Arc` for cheap cloning
      
      * Fix comment
      
      * Fix CI tests
      
      * Fix clippy warnings
      
      * Address nits from discussions
      
      * Add a placeholder for raw data
      
      * Fix non exhaustive match
      
      * Remove redundant reexports and fix imports
      
      * Keep only necessary semantic features, as discussed
      
      * Rework `RuntimeInfo` to support mock implementation for tests
      
      * Remove unneeded bound
      
      * `cargo fmt`
      
      * Revert "Remove unneeded bound"
      
      This reverts commit 932463f26b00ce290e1e61848eb9328632ef8a61.
      
      * Fix PVF host tests
      
      * Fix PVF checker tests
      
      * Fix overseer declarations
      
      * Simplify tests
      
      * `MAX_KEEP_WAITING` timeout based on `BACKGING_EXECUTION_TIMEOUT`
      
      * Add a unit test for varying executor parameters
      
      * Minor fixes from discussions
      
      * Add prechecking max. memory parameter (see paritytech/srlabs_findings#110)
      
      * Fix and improve a test
      
      * Remove `ExecutionEnvironment` and `RawData`
      
      * New primitives versioning in parachain host API
      
      * `disputes()` implementation for Kusama and Polkadot
      
      * Move `ExecutorParams` from `vstaging` to stable primitives
      
      * Move disputes from `vstaging` to stable implementation
      
      * Fix `try-runtime`
      
      * Fixes after merge
      
      * Move `ExecutorParams` to the bottom of `SessionInfo`
      
      * Revert "Move executor params to `SessionInfo`: primitives and runtime"
      
      This reverts commit dfcfb85fefd1c5be6c8a8f72dc09fd1809cfa9ce.
      
      * Always use fresh activated live hash in pvf precheck
      (re-apply 34b09a4c20de17e7926ed942cd0d657d18f743fa)
      
      * Fixing tests (broken commit)
      
      * Fix candidate validation tests
      
      * Fix PVF host test
      
      * Minor fixes
      
      * Address discussions
      
      * Restore migration
      
      * Fix `use` to only include what is needed instead of `*`
      
      * Add comment to never touch `DEFAULT_CONFIG`
      
      * Update migration to set default `ExecutorParams` for `dispute_period`
      sessions back
      
      * Use `earliest_stored_session` instead of calculations
      
      * Nit
      
      * Add logs
      
      * Treat any runtime error as `NotSupported` again
      
      * Always return default executor params if not available
      
      * Revert "Always return default executor params if not available"
      
      This reverts commit b58ac4482ef444c67a9852d5776550d08e312f30.
      
      * Add paritytech/substrate#9997 workaround
      
      * `cargo fmt`
      
      * Remove migration (again!)
      
      * Bump executor params to API v4 (backport from #6698)
      
      ---------
      
      Co-authored-by: default avatarAndronik <[email protected]>
      dd0a5566
  17. Feb 01, 2023
    • ordian's avatar
      Some late short-term fixes for dispute slashing (#6249) · 2fa8565f
      ordian authored
      
      
      * 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: default avatarAndrei 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: default avatarAndrei 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: default avatareskimor <[email protected]>
      
      * [ci] fix buildah image (#6281)
      
      * Revert special casing of Kusama for grandpa rounds. (#6217)
      
      Co-authored-by: default avatareskimor <[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: default avatarBradley Olson <[email protected]>
      Co-authored-by: default avatarTsvetomir Dimitrov <[email protected]>
      Co-authored-by: default avatarAndrei Sandu <[email protected]>
      Co-authored-by: default avatarSergej Sakac <[email protected]>
      Co-authored-by: default avatareskimor <[email protected]>
      Co-authored-by: default avatareskimor <[email protected]>
      Co-authored-by: default avatarAlexander Samusev <[email protected]>
      Co-authored-by: default avatarMarcin S <[email protected]>
      Co-authored-by: default avatarNiklas Adolfsson <[email protected]>
      2fa8565f
  18. Jan 11, 2023
  19. Jan 07, 2023
    • Tsvetomir Dimitrov's avatar
      disputes pallet: Remove spam slots (#6345) · ed9a1a40
      Tsvetomir Dimitrov authored
      
      
      * 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: default avatarMarcin S. <[email protected]>
      
      * Code review feedback - update logs
      
      * Code review feedback: fix weights
      
      * Update runtime/parachains/src/disputes.rs
      
      Co-authored-by: default avatars0me0ne-unkn0wn <[email protected]>
      
      * Additional logs in disputes migration
      
      * Fix merge conflicts
      
      * Add version checks in try-runtime tests
      
      * Fix a compilation warning`
      
      Co-authored-by: default avatarMarcin S. <[email protected]>
      Co-authored-by: default avatars0me0ne-unkn0wn <[email protected]>
      ed9a1a40
  20. Dec 19, 2022
  21. Oct 22, 2022
  22. Sep 20, 2022
    • ordian's avatar
      runtime/disputes: slashing (#5535) · 18c077a8
      ordian authored
      
      
      * 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: default avatarKian Paimani <[email protected]>
      
      * 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: default avatarKian Paimani <[email protected]>
      Co-authored-by: command-bot <>
      Co-authored-by: default avatarJavier Viola <[email protected]>
      Co-authored-by: default avatarJavier Viola <[email protected]>
      18c077a8
  23. Jun 14, 2022
  24. Mar 09, 2022
    • asynchronous rob's avatar
      Finish migration to v2 primitives (#5037) · 49f7e5cc
      asynchronous rob authored
      * remove v0 primitives from polkadot-primitives
      
      * first pass: remove v0
      
      * fix fallout in erasure-coding
      
      * remove v1 primitives, consolidate to v2
      
      * the great import update
      
      * update runtime_api_impl_v1 to v2 as well
      
      * guide: add `Version` request for runtime API
      
      * add version query to runtime API
      
      * reintroduce OldV1SessionInfo in a limited way
      49f7e5cc
  25. Feb 25, 2022
  26. Feb 03, 2022
  27. Oct 05, 2021
  28. Sep 23, 2021