* client/authority-discovery: Remove sentry node logic
The notion of sentry nodes has been deprecated (see [1] for details).
This commit removes support for sentry nodes in the
`client/authority-discovery` module.
While removing `Role::Sentry` this commit also introduces
`Role::Discover`, allowing a node to discover addresses of authorities
without publishing ones own addresses. This will be needed in Polkadot
for collator nodes.
[1] https://github.com/paritytech/substrate/issues/6845
* client/authority-discovery/service: Improve PeerId comment
* Improve `mock_impl_runtime_apis!`
This adds a new attribute for functions being implemented in the
`mock_impl_runtime_apis!` macro, the `advanced` attribute. When this
attribute is given the user gets access to the `at` parameter and is
able to return a `Result`, instead of letting the macro generate this
stuff.
* Use the `at_param_name` directly
* Prevent clashing of `params`
As done with `NetworkService::{add_to,remove_from}_priority_group`, make
`NetworkService::set_priority_group` async as well. This future-proofs
the API should we ever decide to use a bounded channel between
`NetworkService` and `NetworkWorker`.
* Make `decl_runtime_apis!` fail on methods with default implementation
Runtime api functions are not allowed to have default implementations.
This fixes this by throwing an error when we detect such a function.
* Update primitives/api/proc-macro/src/decl_runtime_apis.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update primitives/api/test/tests/ui/no_default_implementation.stderr
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Start
* Make macro work
* Rename `ModuleToIndex` to `PalletRuntimeSetup`
Besides the renaming it also adds support getting the name of a pallet
as configured in the runtime.
* Rename it to `PalletInfo`
* Remove accidentally added files
* Some work
* Make everything compile
* Adds a test and fixes some bugs
* Implement ordering for `PalletVersion`
* Apply suggestions from code review
* Review feedback
* Update frame/support/src/dispatch.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Update frame/support/src/dispatch.rs
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
* Fix compilation
* Fix test
* Fix doc test
Co-authored-by: Alexander Popiak <alexander.popiak@parity.io>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
The Rust libp2p-kad implementation can require iterative queries to use
disjoint paths for increased resiliency in the presence of potentially
adversarial nodes.
Allow Substrate users to enable this feature via the
`--kademlia-disjoint-query-paths` flag.
* Fix logging from inside the WASM runtime
When using `RuntimeLogger` to log something from the runtime, we didn't
set any logging level. So, we actually did not log anything from the
runtime as logging is disabled by default. This pr fixes that by setting
the logging level to `TRACE`. It also adds a test to ensure this does
not break again ;)
* Update frame/support/src/debug.rs
* *: Bump async-std to v1.6.5
Prevent users from using v1.6.4 which faces issues receiving incoming
TCP connections. See https://github.com/async-rs/async-std/issues/888
for details.
* client/network/src/gossip: Use channel instead of condvar
`async_std::sync::Condvar::wait_timeout` uses
`gloo_timers::callback::Timeout` when compiled for
`wasm32-unknown-unknown`. This timeout implementation does not fulfill
the requirement of being `Send`.
Instead of using a `Condvar` use a `futures::channel::mpsc` to signal
progress from the `QueuedSender` to the background `Future`.
* client/network/Cargo.toml: Remove async-std unstable feature
* client/network/src/gossip: Forward all queued messages
* client/network/gossip: Have QueuedSender methods take &mut self
* client/network/gossip: Move queue_size_limit into QueuedSender
The `queue_size_limit` field is only accessed by `QueuedSender`, thus
there is no need to share it between the background future and the
`QueuedSender`.
* client/network/gossip: Rename background task to future
To be a bit picky the background task is not a task in the sense of an
asynchonous task, but rather a background future in the sense of
`futures::future::Future`.
With the `OnRead` flow control option yamux "send[s] window updates only
when data is read on the receiving end" and not as soon as "a Stream's
receive window drops to 0".
Yamux flow control has proven itself. This commit removes the feature
flag. Yamux flow control is now always enabled.
* Make `wasm-builder` print the rustc version
This makes `wasm-builder` print the rustc version that is being used to
compile the project. This is rather useful, because people can check
faster if the used rustc version is maybe known for being broken with
Substrate.
* Apply suggestions from code review
* Add some comments
* Move `IsSubType` and write some docs for the trait
This moves the `IsSubType` trait from dispatch.rs to traits.rs. It also
adds docs to make the trait better understandable.
* Update frame/support/src/traits.rs
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
* Adds support for inspecting a hex encoded public key
This adds support for inspecting hex encoded public keys to subkey. The
command looks like:
`subkey inspect --public 0xPUBLICHEX`
* Update client/cli/src/commands/utils.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Allow remotes to not open a legacy substream
* No longer actively open legacy substreams
* Misc fixes
* Line width
* Special case first protocol as the one bearing the handshake
* Legacy opening state no longer keeps connection alive
* Remove now-unused code
* Simplify inject_dial_upgrade_error
* [chaos:basic]
* [chaos:basic]
* [chaos:basic]
* Initial draft
* Add an iterator that helps us get most items
* Revert changes to grandpa
* Change fields to just be the grandpa authority set and babe epoch changes
* Only use the fields we need from the shared authority set
* Switch to RPC call
* Revert "Only use the fields we need from the shared authority set"
This reverts commit 6ede87b0c5fe53f251d7cb45951006a7dc8f9b83.
* Add babe_finalized_block_weight from `ashley-improve-sync-state-WIP-loading`
* Fix rpc test
* Move sync state rpc stuff into sc-sync-state-rpc
* Remove as_json_value and remove unwraps from sc-sync-state-rpc
* Add clone_inner to SharedAuthoritySet
The function takes a closure that resolved before to a `TaskManager`,
now it resolves to a `Future` which output is a `TaskManager`. This is
required for node setups that are async.
* Fixes bug in wasm-builder with cargo publish
There was a bug in wasm-builder which resulted in generating a
`Cargo.lock` in the project directory because of running `cargo
metadata`. This resulted in commands like `cargo publish` to fail (if
there was no `Cargo.lock` before building), because it checks that the
project directory isn't modified.
* Update utils/wasm-builder/src/wasm_project.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Implements require_transactional
* support wasm
* only enable for debug build
* remove wasm support and add feature flag
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* only use check for debug_assertions
* update per review
* update docs
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* remove duplicated tests
* fix test
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* sc-network: expose `add_to_priority_group` and `remove_from_priority_group` in `NetworkService`
* sc-network: fix a typo
* Update client/network/src/service.rs
Co-authored-by: Max Inden <mail@max-inden.de>
* s/parse_multiaddr/split_multiaddr_and_peer_id/g
* sc-network: mark new functions as async and add comments
* Apply suggestions from code review
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Max Inden <mail@max-inden.de>
* Release new version of wasm-builder-runner
Besides the new version this merges `SKIP_WASM_BUILD` and
`BUILD_DUMMY_WASM_BINARY`, this means a file is generated with
`SKIP_WASM_BUILD` if no file existed before.
* Update utils/wasm-builder-runner/Cargo.toml
* Update utils/wasm-builder-runner/src/lib.rs
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
* Update versions
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>