This pr ensures that we don't panic because of a deadline that is
already reached in basic authorship. This is mainly useful for debug
builds, as release builds normally don't have debug assertions enabled.
* Initial draft of the logic
* Build and tests
* Make work with new initialize infratructure.
* Update frame/scheduler/src/lib.rs
Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>
* Update frame/scheduler/src/lib.rs
Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>
* Update frame/scheduler/src/lib.rs
Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>
* Update frame/scheduler/src/lib.rs
Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>
* Fix test
* Update frame/scheduler/src/lib.rs
Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>
* Rejig interface to make it more useful for democracy.
* Try to get democraxy module to make use of scheduler.
* Make democracy use scheduler.
* Use actual max weight for enactent
* Remove TODO
* Fix runtime build
* Minor cleanup
* Fix scheduler.
* Fix benchmarks
* Fix
* Fix
* Fix
* More bench fixes
* Fix
* Fix.
* Add more bench constants.
* Fix cancel_queued bench.
* Fix test comment.
* Update frame/scheduler/src/lib.rs
Co-Authored-By: Marcio Diaz <marcio.diaz@gmail.com>
Co-authored-by: Marcio Diaz <marcio.diaz@gmail.com>
* client/finality-grandpa: Instrument until-imported queue
The `UntilImported` queue takes as input finality grandpa messages that
depend on blocks that are not yet imported and holds them back until
those blocks are imported.
This commit adds a basic metric, the amount of messages waiting in the
queue, to the module. For now this metric is only available for the
global `UntilImported` queue awaiting blocks for commit and catch-up
messages.
* client/finality-grandpa/src/until_imported: Update metric help text
Co-Authored-By: Ashley <ashley.ruglys@gmail.com>
Co-authored-by: Ashley <ashley.ruglys@gmail.com>
* Batch benchmarks together with `*` notation.
* Fix short structopt conflict
* Return error if `batches` is empty
* Move fast benchmarks macro into `frame_benchmarking` (#5445)
* Move macro into `frame_benchmarking`
* Update docs
* Extra line
* Return error if `batches` is empty
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Implements mocking of runtime apis
This pr adds support for easily mock runtime api implementations for
tests by using the `mock_impl_runtime_apis!` macro. The syntax is
similar to `impl_runtime_apis!`. The mocked implementation automatically
implements `ApiExt`, `ApiErrorExt` and `Core` as these are required by
the runtime api traits, but not required in tests or only a subset of them.
* Fix warnings
* Update primitives/api/proc-macro/src/utils.rs
Co-Authored-By: Nikolay Volf <nikvolf@gmail.com>
* Review feedback
Co-authored-by: Nikolay Volf <nikvolf@gmail.com>
* Show network id/version in subkey
- show network id/version when creating
- show network id/version when inspecting
* Update bin/utils/subkey/src/main.rs
use `unwrap_or_default` for more clean syntax
Co-Authored-By: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
The library `sysinfo` exposes process memory as kibibytes and not bytes,
thus the value needs to be multiplied by 1024 to comply with the metric
name and the Prometheus base units [1].
[1] https://prometheus.io/docs/practices/naming/#base-units
* Add KEY_KIND_ID to the public trait
This change is being introduced for the purpose of identifying a public
key with it's identifier and algorithm "kind".
* Use `sign_with` as implemented in BareCryptoStore
* Implement `sign_with` in sc_keystore
* Fix inconsistencies, use *_KIND_ID in sp_core testing
* Rename KeyKindId to CryptoTypeId
* Remove pair-returning functions from BareCryptoStore trait
* Define CryptoTypeId in app-crypto macros
* Add functions to get keys supported by keystore
* Fix sign_with signature to include CryptoTypePublicPair
* Add `sign_with_any` and `sign_with_all`
* Use keystore.sign_with in auth_discovery
* Rename get_supported_keys -> supported_keys
* Added headers to function docstrings
* Use chain instead of extending a temp vector
* Fixed some code formatting
* Restrict size of CryptoTypeId
This is to be able to use Encode/Decode derives and the overcome having
the size being unknown at compile-time.
* Implement sign_with in the trait itself
* Remove whitespace
* Use key_type also as a CryptoTypeId in app_crypto macros
* Rename `get_keys` to `keys` in BareCryptoStore
* Remove usage of key_pair funcs in tests
* Adjust docstring for *_CYPTO_ID constants
* Fix failures
* Simplify mapping on keys
* Remove one let
* Fixed typo
* PR feedback
* remove whitespace
* Zip keys and signatures
* Use into_iter & remove cloned
* Pass index to MissingSignature
* Use typed errors instead of strings for BareCryptoStore
* Implement Debug for trait error
* Use hashsets for better performance for supported_keys
* Make sure keys are inserted into the keystore
* Make sign_with_all return type consistent with `sign_with`
* Rename Error to BareCryptoStoreError
* Rename CRYPT_TYPE_ID -> CRYPTO_ID
* Remove unnecessary CRYPTO_ID declaration in Public trait
* Convert pub key to CryptoTypePublicPair
* Fix use
* Fix code style
* Implement From on CryptoTypePublicPair in app_crypto macros
* Change CryptoTypePublicPair to a struct
* Implement Display on CryptoTypePublicPair
* Pass CryptoTypePublicPair to MissingSignature error
* Adjust docs according to function signature
* Unify keys implementation
* Fix RPC author tests
* Fix stackoverflow
* Tabify spaces
* Pass KeyTypeId to error for easier debugging
* Fix asserts
* Use ToHex to format public key
* Use constants from sp_core
* Rename testing KeyTypeId constants
* Please compiler
* Restore KeyTypeId names
apparently, they're not only used in tests
* Use BareCryptoStoreError instead of String
* Document return value
* Fix borrow check
* Convert to hashset internally
* WIP - iter_keys
* Return raw_public_keys
* Address PR feedback
* Address PR Feedback
* Fix hexdisplay import error
* Update primitives/core/src/traits.rs
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
The signal handler will be reset to the default system one. This means
the program will be exited instead of panicking. This is required to
support piping in the console.
* Extend PerThing + Saturating
* Add saturating_pow to Saturating
* Add saturating_truncating_mul to PerThing (rounding-down mul)
* Add saturating_reciprocal_mul to PerThing (divide x by perthing)
* Provide default methods where possible
* Restore const functions
* Fix test
* Update primitives/arithmetic/src/per_things.rs
Co-Authored-By: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Add comment and test verifying no overflow
* Formatting
* Fix possible overflow and change type constraint
* Use overflow pruning for all mul
* Formatting and comments
* Improve comments and names
* Comments in `rational_mul_correction` explain overflow aversion.
* Test rational_mul_correction
* Formatting
* Docs and formatting
* Add new trait methods to Perthing type impl
* Fix signature
* saturating_pow for Delegations
* Add missing trait method to impl
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
* Enable `wasmtime` only for `x86_64` in substrate node
When using the new feature of cargo `cargo build -Z features=itarget`,
the `wasmtime` feature will not bleed into the build for other
architectures.
* Use new cargo feature in CI