Skip to content
  1. Oct 05, 2022
  2. Oct 03, 2022
  3. Sep 30, 2022
  4. Sep 29, 2022
  5. Sep 28, 2022
    • Ankan's avatar
      bounding staking: `BoundedElectionProvider` trait (#12362) · 6137c870
      Ankan authored
      * add a bounded election provider trait
      
      * extract common trait election provider base
      
      * fmt
      
      * only bound the outer support vector
      
      * fix tests
      
      * docs
      
      * fix rust docs
      
      * fmt
      
      * fix rustdocs
      
      * docs
      
      * improve docs
      
      * small doc change
      6137c870
    • Keith Yeung's avatar
      Add storage size component to weights (#12277) · 03272585
      Keith Yeung authored
      
      
      * Add storage size component to weights
      
      * Rename storage_size to proof_size
      
      * Update primitives/weights/src/weight_v2.rs
      
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      
      * Fixes
      
      * cargo fmt
      
      * Implement custom Decode and CompactAs
      
      * Add missing import
      
      * Fixes
      
      * Remove CompactAs implementation
      
      * Properly migrate from 1D weight
      
      * Remove #[pallet::compact] from Weight parameters
      
      * More #[pallet::compact] removals
      
      * Add unit tests
      
      * Set appropriate default block proof size
      
      * cargo fmt
      
      * Remove nonsensical weight constant
      
      * Test only for the reference time weight in frame_system::limits
      
      * Only check for reference time weight on idle
      
      * Use destructuring syntax
      
      * Update test expectations
      
      * Fixes
      
      * Fixes
      
      * Fixes
      
      * Correctly migrate from 1D weights
      
      * cargo fmt
      
      * Migrate using extra extrinsics instead of custom Decode
      
      * Fixes
      
      * Silence dispatch call warnings that were previously allowed
      
      * Fix gas_left test
      
      * Use OldWeight instead of u64
      
      * Fixes
      
      * Only check for reference time weight in election provider
      
      * Fix test expectations
      
      * Fix test expectations
      
      * Use only reference time weight in grandpa test
      
      * Use only reference time weight in examples test
      
      * Use only reference time weight in examples test
      
      * Fix test expectations
      
      Co-authored-by: default avatarOliver Tale-Yazdi <[email protected]>
      Co-authored-by: default avatarAlexander Theißen <[email protected]>
      03272585
  6. Sep 27, 2022
  7. Sep 24, 2022
  8. Sep 23, 2022
    • Davide Galassi's avatar
      Independence of Slot-based algorithms from system Timestamp (#12224) · bf97f2a7
      Davide Galassi authored
      
      
      * Remove timestamp from SlotInfo
      
      * Expose as millis instead of secs
      
      * Nits
      
      * Fix test after field removal
      
      * Yet another test fix
      
      * On the fly timestamp computation
      
      * Removed slot timestamp from logs
      
      * Removed reference to timestamp from slots subsystem
      
      * Slot based algorithm tests do not require timstamp inherent anymore
      
      * Remove junk files
      
      * Further tests cleanup
      
      * Trigger pipeline
      
      * Apply code suggestions
      
      * Trigger pipeline
      
      Co-authored-by: default avatarAndré Silva <[email protected]>
      bf97f2a7
  9. Sep 21, 2022
  10. Sep 20, 2022
    • Sergej Sakac's avatar
      BREAKING: Rename Origin (#12258) · e4b6f4a6
      Sergej Sakac authored
      * BREAKING: Rename Origin
      
      * more renaming
      
      * a bit more renaming
      
      * fix
      
      * more fixing
      
      * fix in frame_support
      
      * even more fixes
      
      * fix
      
      * small fix
      
      * ...
      
      * update .stderr
      
      * docs
      
      * update docs
      
      * update docs
      
      * docs
      e4b6f4a6
  11. Sep 16, 2022
    • Sam Johnson's avatar
      Add special tag to exclude runtime storage items from benchmarking (#12205) · c0e007b5
      Sam Johnson authored
      * initial setup
      
      * add WhitelistedStorageKeys trait
      
      * add (A, B) tuple implementation for whitelisted_storage_keys()
      
      * fix formatting
      
      * implement WhitelistedStorageKeys for all tuple combinations
      
      * impl_for_tuples up to 128 for WhitelistedStorageKeys
      
      * refactor to #[benchmarking(cached)]
      
      * tweak error message and mark BlockNumber as cached
      
      * add benchmarking(cached) to the other default types
      
      * add docs for benchmarking(cached)
      
      * properly parse storage type declaration
      
      * make storage_alias structs public so we can use them in this macro
      
      * use BTreeMap since TrackedStorageKey missing Ord outside of std
      
      * make WhitelistedStorageKeys accessible
      
      * basic detection of benchmarking(cached) 💥
      
      * proper parsing of #[benchmarking(cached)] from pallet parse macro
      
      * store presence of #[benchmarking(cached)] macro on StorageDef
      
      * will be used for later expansion
      
      * compiling blank impl for WhitelistedStorageKeys
      
      * move impl to expand_pallet_struct
      
      * use frame_support::sp_std::vec::Vec properly
      
      * successfully compiling with storage info loaded into a variable 💥
      
      * plausible implementation for whitelisted_storage_keys()
      
      * depends on the assumption that storage_info.encode() can be loaded
        into TrackedStorageKey::new(..)
      
      * use Pallet::whitelisted_storage_keys() instead of hard-coded list
      
      * AllPallets::whitelisted_storage_keys() properly working 💥
      
      * collect storage names
      
      * whitelisted_storage_keys() impl working 💥
      
      
      
      * clean up
      
      * fix compiler error
      
      * just one compiler error
      
      * fix doc compiler error
      
      * use better import path
      
      * fix comment
      
      * whoops
      
      * whoops again
      
      * fix macro import issue
      
      * cargo fmt
      
      * mark example as ignore
      
      * use keyword tokens instead of string parsing
      
      * fix keyword-based parsing of benchmarking(cached)
      
      * preliminary spec for check_whitelist()
      
      * add additional test for benchmarking whitelist
      
      * add TODO note
      
      * remove irrelevant line from example
      
      * use filter_map instead of filter and map
      
      * simplify syntax
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      
      * clean up
      
      * fix test
      
      * fix tests
      
      * use keyword parsing instead of string parsing
      
      * use collect() instead of a for loop
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * fix compiler error
      
      * clean up benchmarking(cached) marking code
      
      * use cloned()
      
      * refactor to not use panic! and remove need for pub types in storage_alias
      
      * remove unneeded use
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * remove unneeded visibility changes
      
      * don't manually hard code hash for treasury account as hex
      
      * proper Ord, PartialOrd, and Hash impls for TrackedStorageKey
      
      * now based just on key, and available in no-std
      
      * use BTreeSet instead of BTreeMap
      
      * fix comments
      
      * cargo fmt
      
      * switch to pallet::whitelist and re-do it basti's way :D
      
      * make PartialOrd for TrackedStorageKey consistent with Ord
      
      * more correct implementation of hash-related traits for TrackedStorageKey
      
      * fix integration test
      
      * update TODO
      
      * remove unused keyword
      
      * remove more unused keywords
      
      * use into_iter()
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      
      * Update frame/support/procedural/src/pallet/parse/mod.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * add docs for whitelisted
      
      * fix comment
      
      Co-authored-by: default avatarKeith Yeung <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      c0e007b5
  12. Sep 15, 2022
  13. Sep 14, 2022
  14. Sep 13, 2022
    • Keith Yeung's avatar
      Create sp-weights crate to store weight primitives (#12219) · 30e7b1e8
      Keith Yeung authored
      
      
      * Create sp-weights crate to store weight primitives
      
      * Fix templates
      
      * Fix templates
      
      * Fixes
      
      * Fixes
      
      * cargo fmt
      
      * Fixes
      
      * Fixes
      
      * Use deprecated type alias instead of deprecated unit types
      
      * Use deprecated subtraits instead of deprecated hollow new traits
      
      * Fixes
      
      * Allow deprecation in macro expansion
      
      * Add missing where clause during call macro expansion
      
      * cargo fmt
      
      * Fixes
      
      * cargo fmt
      
      * Fixes
      
      * Fixes
      
      * Fixes
      
      * Fixes
      
      * Move FRAME-specific weight files back to frame_support
      
      * Fixes
      
      * Update frame/support/src/dispatch.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Update frame/support/src/dispatch.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Update frame/support/src/dispatch.rs
      
      Co-authored-by: default avatarKian Paimani <[email protected]>
      
      * Add missing header
      
      * Rewrite module docs
      
      * Fixes
      
      * Fixes
      
      * Fixes
      
      * Fixes
      
      * cargo fmt
      
      Co-authored-by: default avatarShawn Tabrizi <[email protected]>
      Co-authored-by: default avatarKian Paimani <[email protected]>
      30e7b1e8
    • Michal Kucharczyk's avatar
      Remove CanAuthorWith trait (#12213) · 214eb25f
      Michal Kucharczyk authored
      * Remove CanAuthorWith trait
      
      CanAuthotWith trait removed. Also all dependencies, parameters, type
      paramers were removed. This is related to removal of native runtime.
      
      * Remove commented code
      
      * Fix code formatting
      
      * trigger CI job
      
      * trigger CI job
      
      * trigger CI job
      
      * trigger CI job
      
      * trigger CI job
      
      * trigger CI job
      
      * trigger CI job
      214eb25f
  15. Sep 12, 2022
  16. Sep 08, 2022
  17. Sep 07, 2022
  18. Sep 06, 2022
  19. Sep 05, 2022
    • Davide Galassi's avatar
      Fetch Babe configuration from runtime state (#11760) · 83aec6f9
      Davide Galassi authored
      * Fetch babe config data from runtime state
      
      * Some renaming
      
      * More renaming
      
      * Final nits
      
      * Fix tests and benches
      
      * Rename  to  in BabeConfiguration
      
      * Remove duplicate babe parameter description
      
      Already specified over the 'PRIMARY_PROBABILITY' constant value
      
      * trigger pipeline
      
      * trigger pipeline
      83aec6f9
  20. Aug 29, 2022
  21. Aug 26, 2022
  22. Aug 25, 2022
  23. Aug 23, 2022
  24. Aug 18, 2022
    • Bastian Köcher's avatar
      Introduce trie level cache and remove state cache (#11407) · 73d9ae32
      Bastian Köcher authored
      * trie state cache
      
      * Also cache missing access on read.
      
      * fix comp
      
      * bis
      
      * fix
      
      * use has_lru
      
      * remove local storage cache on size 0.
      
      * No cache.
      
      * local cache only
      
      * trie cache and local cache
      
      * storage cache (with local)
      
      * trie cache no local cache
      
      * Add state access benchmark
      
      * Remove warnings etc
      
      * Add trie cache benchmark
      
      * No extra "clone" required
      
      * Change benchmark to use multiple blocks
      
      * Use patches
      
      * Integrate shitty implementation
      
      * More stuff
      
      * Revert "Merge branch 'master' into trie_state_cache"
      
      This reverts commit 947cd8e6d43fced10e21b76d5b92ffa57b57c318, reversing
      changes made to 29ff0364
      
      .
      
      * Improve benchmark
      
      * Adapt to latest changes
      
      * Adapt to changes in trie
      
      * Add a test that uses iterator
      
      * Start fixing it
      
      * Remove obsolete file
      
      * Make it compile
      
      * Start rewriting the trie node cache
      
      * More work on the cache
      
      * More docs and code etc
      
      * Make data cache an optional
      
      * Tests
      
      * Remove debug stuff
      
      * Recorder
      
      * Some docs and a simple test for the recorder
      
      * Compile fixes
      
      * Make it compile
      
      * More fixes
      
      * More fixes
      
      * Fix fix fix
      
      * Make sure cache and recorder work together for basic stuff
      
      * Test that data caching and recording works
      
      * Test `TrieDBMut` with caching
      
      * Try something
      
      * Fixes, fixes, fixes
      
      * Forward the recorder
      
      * Make it compile
      
      * Use recorder in more places
      
      * Switch to new `with_optional_recorder` fn
      
      * Refactor and cleanups
      
      * Move `ProvingBackend` tests
      
      * Simplify
      
      * Move over all functionality to the essence
      
      * Fix compilation
      
      * Implement estimate encoded size for StorageProof
      
      * Start using the `cache` everywhere
      
      * Use the cache everywhere
      
      * Fix compilation
      
      * Fix tests
      
      * Adds `TrieBackendBuilder` and enhances the tests
      
      * Ensure that recorder drain checks that values are found as expected
      
      * Switch over to `TrieBackendBuilder`
      
      * Start fixing the problem with child tries and recording
      
      * Fix recording of child tries
      
      * Make it compile
      
      * Overwrite `storage_hash` in `TrieBackend`
      
      * Add `storage_cache` to  the benchmarks
      
      * Fix `no_std` build
      
      * Speed up cache lookup
      
      * Extend the state access benchmark to also hash a runtime
      
      * Fix build
      
      * Fix compilation
      
      * Rewrite value cache
      
      * Add lru cache
      
      * Ensure that the cache lru works
      
      * Value cache should not be optional
      
      * Add support for keeping the shared node cache in its bounds
      
      * Make the cache configurable
      
      * Check that the cache respects the bounds
      
      * Adds a new test
      
      * Fixes
      
      * Docs and some renamings
      
      * More docs
      
      * Start using the new recorder
      
      * Fix more code
      
      * Take `self` argument
      
      * Remove warnings
      
      * Fix benchmark
      
      * Fix accounting
      
      * Rip off the state cache
      
      * Start fixing fallout after removing the state cache
      
      * Make it compile after trie changes
      
      * Fix test
      
      * Add some logging
      
      * Some docs
      
      * Some fixups and clean ups
      
      * Fix benchmark
      
      * Remove unneeded file
      
      * Use git for patching
      
      * Make CI happy
      
      * Update primitives/trie/Cargo.toml
      
      Co-authored-by: default avatarKoute <[email protected]>
      
      * Update primitives/state-machine/src/trie_backend.rs
      
      Co-authored-by: default avatarcheme <[email protected]>
      
      * Introduce new `AsTrieBackend` trait
      
      * Make the LocalTrieCache not clonable
      
      * Make it work in no_std and add docs
      
      * Remove duplicate dependency
      
      * Switch to ahash for better performance
      
      * Speedup value cache merge
      
      * Output errors on underflow
      
      * Ensure the internal LRU map doesn't grow too much
      
      * Use const fn to calculate the value cache element size
      
      * Remove cache configuration
      
      * Fix
      
      * Clear the cache in between for more testing
      
      * Try to come up with a failing test case
      
      * Make the test fail
      
      * Fix the child trie recording
      
      * Make everything compile after the changes to trie
      
      * Adapt to latest trie-db changes
      
      * Fix on stable
      
      * Update primitives/trie/src/cache.rs
      
      Co-authored-by: default avatarcheme <[email protected]>
      
      * Fix wrong merge
      
      * Docs
      
      * Fix warnings
      
      * Cargo.lock
      
      * Bump pin-project
      
      * Fix warnings
      
      * Switch to released crate version
      
      * More fixes
      
      * Make clippy and rustdocs happy
      
      * More clippy
      
      * Print error when using deprecated `--state-cache-size`
      
      * 🤦
      
      
      
      * Fixes
      
      * Fix storage_hash linkings
      
      * Update client/rpc/src/dev/mod.rs
      
      Co-authored-by: default avatarArkadiy Paronyan <[email protected]>
      
      * Review feedback
      
      * encode bound
      
      * Rework the shared value cache
      
      Instead of using a `u64` to represent the key we now use an `Arc<[u8]>`. This arc is also stored in
      some extra `HashSet`. We store the key are in an extra `HashSet` to de-duplicate the keys accross
      different storage roots. When the latest key usage is dropped in the lru, we also remove the key
      from the `HashSet`.
      
      * Improve of the cache by merging the old and new solution
      
      * FMT
      
      * Please stop coming back all the time :crying:
      
      * Update primitives/trie/src/cache/shared_cache.rs
      
      Co-authored-by: default avatarArkadiy Paronyan <[email protected]>
      
      * Fixes
      
      * Make clippy happy
      
      * Ensure we don't deadlock
      
      * Only use one lock to simplify the code
      
      * Do not depend on `Hasher`
      
      * Fix tests
      
      * FMT
      
      * Clippy 🤦
      
      
      
      Co-authored-by: default avatarcheme <[email protected]>
      Co-authored-by: default avatarKoute <[email protected]>
      Co-authored-by: default avatarArkadiy Paronyan <[email protected]>
      73d9ae32
  25. Aug 15, 2022
  26. Aug 13, 2022
    • Tsvetomir Dimitrov's avatar
      Runtime API versioning (#11779) · 2bff2f84
      Tsvetomir Dimitrov authored
      
      
      * Runtime API versioning
      
      Related to issue #11577
      
      Add support for multiple versions of a Runtime API. The purpose is to
      have one main version of the API, which is considered stable and
      multiple unstable (aka staging) ones.
      
      How it works
      ===========
      Some methods of the API trait can be tagged with `#[api_version(N)]`
      attribute where N is version number bigger than the main one. Let's call
      them **staging methods** for brevity.
      
      The implementor of the API decides which version to implement.
      
      Example (from https://github.com/paritytech/substrate/issues/11577#issuecomment-1145347025):
      
      ```
      decl_runtime_apis! {
          #{api_version(10)]
          trait Test {
               fn something() -> Vec<u8>;
               #[api_version(11)]
               fn new_cool_function() -> u32;
          }
      }
      ```
      
      ```
      impl_runtime_apis! {
          #[api_version(11)]
          impl Test for Runtime {
               fn something() -> Vec<u8> { vec![1, 2, 3] }
      
               fn new_cool_function() -> u32 {
                   10
               }
          }
      }
      ```
      
      Version safety checks (currently not implemented)
      =================================================
      By default in the API trait all staging methods has got default
      implementation calling `unimplemented!()`. This is a problem because if
      the developer wants to implement version 11 in the example above and
      forgets to add `fn new_cool_function()` in `impl_runtime_apis!` the
      runtime will crash when the function is executed.
      
      Ideally a compilation error should be generated in such cases.
      
      TODOs
      =====
      
      Things not working well at the moment:
      [ ] Version safety check
      [ ] Integration tests of `primitives/api` are messed up a bit. More
      specifically `primitives/api/test/tests/decl_and_impl.rs`
      [ ] Integration test covering the new functionality.
      [ ] Some duplicated code
      
      * Update primitives/api/proc-macro/src/impl_runtime_apis.rs
      
      Code review feedback and formatting
      
      Co-authored-by: default avatarasynchronous rob <[email protected]>
      
      * Code review feedback
      
      Applying suggestions from @bkchr
      
      
      
      * fmt
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Code review feedback
      
      * dummy trait -> versioned trait
      
      * Implement only versioned traits (not compiling)
      
      * Remove native API calls (still not compiling)
      
      * fmt
      
      * Fix compilation
      
      * Comments
      
      * Remove unused code
      
      * Remove native runtime tests
      
      * Remove unused code
      
      * Fix UI tests
      
      * Code review feedback
      
      * Code review feedback
      
      * attribute_names -> common
      
      * Rework `append_api_version`
      
      * Code review feedback
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Code review feedback
      
      * Code review feedback
      
      * Code review feedback
      
      * Use type alias for the default trait - doesn't compile
      
      * Fixes
      
      * Better error for `method_api_ver < trait_api_version`
      
      * fmt
      
      * Rework how we call runtime functions
      
      * Update UI tests
      
      * Fix warnings
      
      * Fix doctests
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Apply suggestions from code review
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      * Fix formatting and small compilation errors
      
      * Update primitives/api/proc-macro/src/impl_runtime_apis.rs
      
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      
      Co-authored-by: default avatarasynchronous rob <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      Co-authored-by: default avatarBastian Köcher <[email protected]>
      2bff2f84
  27. Aug 12, 2022