1. Mar 08, 2023
  2. Mar 03, 2023
  3. Feb 20, 2023
  4. Feb 16, 2023
    • Bastian Köcher's avatar
      Change `MaxMemorySize` to `MaxMemoryPages` (#6728) · 83eb8453
      Bastian Köcher authored
      * Change `MaxMemorySize` to `MaxMemoryPages`
      
      We should set the max memory for the executor in pages (64KiB) and not in bytes.
      The wasm memory is always a multiple of a page and we should use the
      same terminology.
      
      * FMT
      
      * Fix warning
      83eb8453
    • Marcin S.'s avatar
      Use a `BoundedVec` in `ValidationResult` (#6603) · d5a79914
      Marcin S. authored
      * Use a `BoundedVec` in `ValidationResult`
      
      > Use a `BoundedVec` for `upward_messages` and `horizontal_messages` in order to
      > limit the number of individual messages/memory allocations right at decoding
      > time. The reason for this is that the `ValidationResult` may contain a code
      > upgrade (including a full PVF binary), so the total size limit can't be set
      > too low and this limit will still allow several millions of upward messages,
      > which will (due to the memory allocator overhead) already have a
      > non-negligible memory footprint in decoded form.
      
      * List all fields when hashing so we don't miss one
      
      * Define types for  `BoundedVec`s of messages
      
      * Fix test compile errors
      
      * Depend on `bounded-collections` 0.1.4 (fixes allocation issue)
      
      * Fix compilation issue
      
      * Derive `Hash` instead of manual `impl`
      
      * Avoid use of unwrap
      d5a79914
  5. 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
  6. Feb 03, 2023
  7. Jan 11, 2023
  8. Dec 06, 2022
    • Marcin S.'s avatar
      Companion for paritytech/substrate#12795 (#6374) · 3f951cce
      Marcin S. authored
      
      
      * Begin removing `parity-util-mem`; remove `collect_memory_stats`
      
      * Update some dependencies that were using `parity-util-mem`
      
      * Remove `trie-memory-tracker` feature
      
      * Update Cargo.lock
      
      * Update `kvdb-shared-tests`
      
      * Add back jemalloc
      
      * Add missing license header
      
      * update lockfile for {"substrate"}
      
      Co-authored-by: parity-processbot <>
      Co-authored-by: default avatarAndronik <[email protected]>
      3f951cce
  9. Dec 05, 2022
  10. Nov 30, 2022
    • 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
    • Mara Broda's avatar
      sync versions with current release (0.9.33) (#6363) · b76086c6
      Mara Broda authored
      * westend: update transaction version
      
      * polkadot: update transaction version
      
      * kusama: update transaction version
      
      * Bump spec_version to 9330
      
      * bump versions to 0.9.33
      b76086c6
  11. Nov 07, 2022
  12. Oct 22, 2022
    • Boluwatife Bakre's avatar
      Use a more typesafe approach for managing indexed data (#6150) · 8eb1f461
      Boluwatife Bakre authored
      
      
      * Fix for issue #2403
      
      * Nightly fmt
      
      * Quick documentation fixes
      
      * Default Implementation
      
      * iter() function integrated
      
      * Implemented iter functionalities
      
      * Fmt
      
      * small change
      
      * updates node-network
      
      * updates in dispute-coordinator
      
      * Updates
      
      * benchmarking fix
      
      * minor fix
      
      * test fixes in runtime api
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Removal of [index], shorting of FromIterator, Renaming of GroupValidators to ValidatorGroups
      
      * Removal of ops import
      
      * documentation fixes for spell check
      
      * implementation of generic type
      
      * Refactoring
      
      * Test and documentation fixes
      
      * minor test fix
      
      * minor test fix
      
      * minor test fix
      
      * Update node/network/statement-distribution/src/lib.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * removed IterMut
      
      * Update node/core/dispute-coordinator/src/import.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update node/core/dispute-coordinator/src/initialized.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update primitives/src/v2/mod.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * fmt
      
      * IterMut
      
      * documentation update
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * minor adjustments and new TypeIndex trait
      
      * spelling fix
      
      * TypeIndex fix
      
      Co-authored-by: default avatarAndronik <[email protected]>
      8eb1f461
    • Mara Broda's avatar
      sync versions with current release (0.9.31) (#6176) · f8cc39a7
      Mara Broda authored
      * Bump spec_version to 9310
      
      * bump transaction_version (0.9.31) (#6171)
      
      * Bump transaction_version for polkadot
      
      * Bump transaction_version for kusama
      
      * Bump transaction_version for rococo
      
      * Bump transaction_version for westend
      
      * Bump transaction_version for polkadot
      
      * Bump transaction_version for kusama
      
      * Bump transaction_version for rococo
      
      * Bump transaction_version for westend
      
      * Bump crate versions (0.9.31)
      f8cc39a7
  13. Oct 05, 2022
    • ordian's avatar
      update kvdb & co (#6111) · af6a5cd9
      ordian authored
      
      
      * toml changes
      
      * REVERTME: patch
      
      * adapt parachains db interface
      
      * fix Cargo.toml patch after master rebase
      
      * fix av-store
      
      * fix chain-selection
      
      * fix parachains-db?
      
      * Revert "fix Cargo.toml patch after master rebase"
      
      This reverts commit 3afcbf033c86027b3f2b909d83ec703591bdd287.
      
      * Revert "REVERTME: patch"
      
      This reverts commit 464b717cf4142d3d09c3d77b83700b632d8c5f54.
      
      * Use `Ok` imported from prelude
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * update lockfile for {"substrate"}
      
      * Revert "update lockfile for {"substrate"}"
      
      This reverts commit fdc623de226f7645741b86c4b1a7d030fed2172d.
      
      * cargo update -p sp-io
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: parity-processbot <>
      af6a5cd9
  14. Sep 27, 2022
  15. 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
  16. Sep 09, 2022
  17. Aug 29, 2022
    • Mara Broda's avatar
      version bumps (0.9.28) (#5933) · fc97080c
      Mara Broda authored
      * Bump crate versions
      
      * Bump spec_version to 9280 for kusama
      
      * Bump spec_version to 9280 for polkadot
      
      * Bump spec_version to 9280 for rococo
      
      * Bump spec_version to 9280 for westend
      
      * update Cargo.lock
      
      Co-authored-by: parity-processbot <>
      fc97080c
  18. Jul 28, 2022
  19. Jul 06, 2022
  20. Jun 27, 2022
  21. Jun 21, 2022
    • Mara Broda's avatar
      bump versions to 0.9.25 (#5684) · 97f9b840
      Mara Broda authored
      * kusama: bump spec_version to 9250
      
      * polkadot: bump spec_version to 9250
      
      * rococo: bump spec_version to 9250
      
      * westend: bump spec_version to 9250
      
      * bump version to 0.9.25
      
      * bump transaction version (polkadot & kusama) (#5690)
      
      * kusama: bump transaction_version to 12
      
      * polkadot: bump transaction_version to 13
      97f9b840
  22. Jun 16, 2022
  23. May 27, 2022
  24. May 19, 2022
  25. May 16, 2022
  26. May 06, 2022
    • Tsvetomir Dimitrov's avatar
      Disputes which are unknown for the Runtime are sent with priority by the... · 20e56a45
      Tsvetomir Dimitrov authored
      
      Disputes which are unknown for the Runtime are sent with priority by the Provisioner when preparing inherent data (#5336)
      
      * Implement MallocSizeOf for DisputeState
      
      * Implementation of `Disputes` Runtime API message
      
      * Modify on-chain dispute import
      
      * Add feature flag for the new functionality
      
      * Update node/core/provisioner/src/onchain_disputes.rs
      
      Co-authored-by: default avatarAndrei Sandu <[email protected]>
      
      * Add target to log messages
      
      * Update node/core/provisioner/src/lib.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Use `staging-client` feature to enable the client code using the staging runtime api
      
      * Remove TODO comment
      
      * Don't filter out DisputeState
      
      * Fix disputes selection logic
      
      * spelling
      
      * Tests
      
      * Rename `Disputes` message to `StagingDisputes`
      
      * Update node/core/provisioner/src/lib.rs
      
      Co-authored-by: default avatarBernhard Schuster <[email protected]>
      
      * Code review feedback
      
      - Logging
      - Separate error module
      - Add additional fields for GetOnchainDisputesErr
      - logging and impl MallocSizeOf
      - fix impl MallocSizeOf for DisputeState
      - fix tests
      
      * Update node/core/provisioner/src/error.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update node/core/provisioner/src/lib.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Update node/core/provisioner/src/lib.rs
      
      Co-authored-by: default avatarAndronik <[email protected]>
      
      * Apply suggestions from code review
      
      dummy metrics instance
      
      Co-authored-by: default avatarBernhard Schuster <[email protected]>
      
      * Revert "Apply suggestions from code review"
      
      This reverts commit 6dc518cbf77e037ff4760d315938a68c806e662e.
      
      * Code review feedback: #[cfg(test)] for new_dummy() in metrics
      
      * Code review feedback: break the disputes generation logic in separate functions
      
      * Code review feedback - align_eight
      
      Co-authored-by: default avatarAndrei Sandu <[email protected]>
      Co-authored-by: default avatarAndronik <[email protected]>
      Co-authored-by: default avatarBernhard Schuster <[email protected]>
      20e56a45
  27. May 03, 2022
  28. Apr 15, 2022
  29. 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
  30. Apr 08, 2022
  31. Apr 06, 2022
  32. Apr 04, 2022
  33. Mar 24, 2022
    • Vsevolod Stakhov's avatar
      Try to fix out of view statements (#5177) · af94fc95
      Vsevolod Stakhov authored
      This issue happens when some peer sends a good but already known Seconded statement and the statement-distribution code does not update the statements_received field in the peer_knowledge structure. Subsequently, a Valid statement causes out-of-view message that is incorrectly emitted and causes reputation lose.
      
      This PR also introduces a concept of passing the specific pseudo-random generator to subsystems to make it easier to write deterministic tests. This functionality is not really necessary for the specific issue and unit test but it can be useful for other tests and subsystems.
      af94fc95
  34. Mar 18, 2022
  35. Mar 14, 2022
  36. Mar 11, 2022
  37. Mar 10, 2022