Skip to content
  1. Jan 11, 2023
  2. 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
  3. Dec 19, 2022
  4. Dec 13, 2022
  5. Dec 08, 2022
  6. Nov 30, 2022
    • ordian's avatar
      guide: remove refences to outdated secondary checkers (#6309) · 063aab23
      ordian authored
      * guide: remove refences to outdated secondary checkers
      
      * Update roadmap/implementers-guide/src/glossary.md
      
      * guide: remove refences to Fisherman
      
      * revert changes to roadmap/parachains.md
      063aab23
    • alexgparity's avatar
      Clippyfy (#6341) · 9ea14e66
      alexgparity authored
      
      
      * Add clippy config and remove .cargo from gitignore
      
      * first fixes
      
      * Clippyfied
      
      * Add clippy CI job
      
      * comment out rusty-cachier
      
      * minor
      
      * fix ci
      
      * remove DAG from check-dependent-project
      
      * add DAG to clippy
      
      Co-authored-by: default avataralvicsam <[email protected]>
      9ea14e66
  7. Nov 01, 2022
  8. Oct 26, 2022
  9. Oct 22, 2022
  10. Oct 17, 2022
  11. Oct 11, 2022
    • Shawn Tabrizi's avatar
      Manual Para Lock (#5451) · bccffcad
      Shawn Tabrizi authored
      * 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 <>
      bccffcad
  12. Oct 05, 2022
  13. Oct 02, 2022
  14. Sep 27, 2022
  15. Sep 26, 2022
  16. Sep 20, 2022
    • Sergej Sakac's avatar
      Rename Origin (#6020) · 937c4e76
      Sergej Sakac authored
      
      
      * Rename Origin
      
      * fmt
      
      * fixes
      
      * more fixes
      
      * fix
      
      * more fixing
      
      * small fixes
      
      * last touches
      
      * update lockfile for {"substrate"}
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      Co-authored-by: parity-processbot <>
      937c4e76
    • 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
  17. Sep 19, 2022
    • Tsvetomir Dimitrov's avatar
      Improved dispute votes import in provisioner (#5567) · 6ae9720c
      Tsvetomir Dimitrov authored
      * 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
      6ae9720c
  18. Sep 12, 2022
    • Sergej Sakac's avatar
      Companion for #11981 (#5915) · 8ea6076f
      Sergej Sakac authored
      
      
      * 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: default avatarShawn Tabrizi <[email protected]>
      8ea6076f
  19. Sep 08, 2022
  20. Sep 01, 2022
    • Shawn Tabrizi's avatar
      Companion for Weight v1.5 Follow Up (#5949) · e28bf2e4
      Shawn Tabrizi authored
      * 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 <>
      e28bf2e4
  21. Aug 31, 2022
    • Shawn Tabrizi's avatar
      Companion for Weight v1.5 (#5943) · 28e94d97
      Shawn Tabrizi authored
      * 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 <>
      28e94d97
  22. Jul 29, 2022
    • Koute's avatar
      Companion for substrate#11523 (#5702) · faeb3d94
      Koute authored
      * Bump `parity-scale-codec` to 3.1.5
      
      * Align tests to changes in substrate
      
      * Apply rustfmt
      
      * update lockfile for {"substrate"}
      
      Co-authored-by: parity-processbot <>
      faeb3d94
  23. Jun 16, 2022
  24. Jun 14, 2022
  25. May 30, 2022
  26. May 17, 2022
  27. May 12, 2022
  28. May 11, 2022
  29. May 04, 2022
  30. Apr 21, 2022
    • asynchronous rob's avatar
      Prepare for network protocol version upgrades (#5084) · fc4b04db
      asynchronous rob authored
      * explicitly tag network requests with version
      
      * fmt
      
      * make PeerSet more aware of versioning
      
      * some generalization of the network bridge to support upgrades
      
      * walk back some renaming
      
      * walk back some version stuff
      
      * extract version from fallback
      
      * remove V1 from NetworkBridgeUpdate
      
      * add accidentally-removed timer
      
      * implement focusing for versioned messages
      
      * fmt
      
      * fix up network bridge & tests
      
      * remove inaccurate version check in bridge
      
      * remove some TODO [now]s
      
      * fix fallout in statement distribution
      
      * fmt
      
      * fallout in gossip-support
      
      * fix fallout in collator-protocol
      
      * fix fallout in bitfield-distribution
      
      * fix fallout in approval-distribution
      
      * fmt
      
      * use never!
      
      * fmt
      fc4b04db
  31. Apr 13, 2022
  32. Apr 12, 2022
    • Tsvetomir Dimitrov's avatar
      Add staging runtime api (#5048) · fd020c07
      Tsvetomir Dimitrov authored
      * 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()
      fd020c07
  33. Apr 04, 2022
  34. Apr 02, 2022
  35. Mar 24, 2022
    • Sergei Shulepov's avatar
      paras: `include_pvf_check_statement` rt bench (#4938) · c8fda4f1
      Sergei Shulepov authored
      
      
      * 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: default avatarParity Bot <[email protected]>
      Co-authored-by: default avatarRobert Klotzner <[email protected]>
      Co-authored-by: default avatarLldenaurois <[email protected]>
      c8fda4f1