- Mar 30, 2023
-
-
Aaro Altonen authored
* Attempt to relieve pressure on `mpsc_network_worker` `SyncingEngine` interacting with `NetworkWorker` can put a lot of strain on the channel if the number of inbound connections is high. This is because `SyncingEngine` is notified of each inbound substream which it then can either accept or reject and this causes a lot of message exchange on the already busy channel. Use a direct channel pair between `Protocol` and `SyncingEngine` to exchange notification events. It is a temporary change to alleviate the problems caused by syncing being an independent protocol and the fix will be removed once `NotificationService` is implemented. * Apply review comments * fixes * trigger ci * Fix tests Verify that both peers have a connection now that the validation goes through `SyncingEngine`. Depending on how the tasks are scheduled, one of them might not have the peer registered in `SyncingEngine` at which point the test won't make any progress because block announcement received from an unknown peer is discarded. Move polling of `ChainSync` at the end of the function so that if a block announcement causes a block request to be sent, that can be sent in the same call to `SyncingEngine::poll()`. --------- Co-authored-by: parity-processbot <>
-
- Mar 29, 2023
-
-
Davide Galassi authored
* Generic testing keystore internals * Generic local keystore internals * Restore deleted comment
-
- Mar 28, 2023
-
-
Sebastian Kunert authored
* Remove `HeaderBackend` requirement from `NetworkWorker` * Remove HeaderBackend from authority-discovery
-
- Mar 27, 2023
-
-
Bastian Köcher authored
-
- Mar 26, 2023
-
-
yjh authored
* chore(sc-cli): improve runner and signals * Update client/cli/src/runner.rs * fmt --------- Co-authored-by: Bastian Köcher <[email protected]>
-
- Mar 24, 2023
-
-
Aaro Altonen authored
`Protocol` is not a reliable source for the information of connected peers because it doesn't have real-time information of the actual connectivity state because it's not resposible for accepting/rejecting connections and gets that information with delay from `SyncinEngine`.
-
Bastian Köcher authored
* try-runtime: Use configured wasm execution method * Fix compilation
-
Davide Galassi authored
* Introduce keystore specialized sign methods * Get rid of 'AppKey::UntypedGeneric' associated type. Untyped generics are accessible using associated types 'Generic' associated type. I.e. <T as AppKey>::Public::Generic * Get rid of 'CryptoTypePublicPair' * Trivial fix * Small refactory of local keystore implementations * Remove 'crypto_id' method from 'Public' * Trivial rename of 'AppKey' to 'AppCrypto' * Remove unused import * Improve docs * Better signature related errors for authority-discovery * Apply review suggestion * Apply review suggestions Co-authored-by: Koute <[email protected]> * Authority discoverty signing error revisited * Signing error revisited for babe and aura as well * Further cleanup --------- Co-authored-by: Koute <[email protected]>
-
- Mar 23, 2023
-
-
Alexandru Vasile authored
* chain_head/tests: Mock client for custom block notification Signed-off-by: Alexandru Vasile <[email protected]> * chain_head/tests: Check finalized block event before new block Signed-off-by: Alexandru Vasile <[email protected]> * Update client/rpc-spec-v2/src/chain_head/test_utils.rs Co-authored-by: Bastian Köcher <[email protected]> * Update client/rpc-spec-v2/src/chain_head/test_utils.rs Co-authored-by: Bastian Köcher <[email protected]> * Update client/rpc-spec-v2/src/chain_head/test_utils.rs Co-authored-by: Bastian Köcher <[email protected]> * chain_head/tests: Run import events with 10min timeout Signed-off-by: Alexandru Vasile <[email protected]> * chain_head/tests: Add comments about test Signed-off-by: Alexandru Vasile <[email protected]> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
-
Sebastian Kunert authored
* Remove unused light-client leftover * Remove more unused code
-
- Mar 22, 2023
-
-
Alexandru Vasile authored
* chain_head/follow: Ensure correct events for finalized branch Signed-off-by: Alexandru Vasile <[email protected]> * Reenable tests Signed-off-by: Alexandru Vasile <[email protected]> * Do some clean ups and add some more docs * Fix gramatic * Update client/rpc-spec-v2/src/chain_head/chain_head_follow.rs Co-authored-by: Sebastian Kunert <[email protected]> * rpc/chain_head: Introduce error for absent headers Signed-off-by: Alexandru Vasile <[email protected]> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]>
-
- Mar 21, 2023
-
-
Niklas Adolfsson authored
This limit is not needed anymore as the JSON-RPC servers doesn't terminate the connection if the RPC max limit is exceeded anymore
-
Arkadiy Paronyan authored
-
- Mar 20, 2023
-
-
Davide Galassi authored
* Remove bloat about remote keystore * Update docs and remove unused 'KeystoreRef' trait * Use wherever possible, MemoryKeystore for testing * Remove unrequired fully qualified method syntax for Keystore
-
Mira Ressel authored
The comment was out of date anyway, State::Live no longer takes a snapshot_path argument.
-
- Mar 17, 2023
-
-
Oliver Tale-Yazdi authored
* Ignore flaky test Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Re-enable running_the_node_works_and_can_be_interrupted Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Re-enable notifications_back_pressure Signed-off-by: Oliver Tale-Yazdi <[email protected]> * Unused import Signed-off-by: Oliver Tale-Yazdi <[email protected]> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]>
-
PG Herveou authored
* Fix typos in pallet-contracts
-
Davide Galassi authored
-
Davide Galassi authored
* Remove 'supported_keys' 'sign_with_any' and 'sign_with_all' from keystore trait * Remove the aync keystore * Renaming: - SyncCryptoStore -> Keystore - SyncCryptoStorePtr -> KeystorePtr - KeyStore -> MemoryKeystore * Fix authority discovery worker and tests * Rename 'insert_unknown' to 'insert' * Remove leftover
-
- Mar 16, 2023
-
-
Bastian Köcher authored
* Try to fix flaky `temp-base-path-work` test The test is most of the time failing when checking if the database path was deleted. The assumption is that it takes a little bit more time by the OS to actually clean up the temp path under high load. The pr tries to fix this by checking multiple times if the path was deleted. Besides that it also ensures that the tests that require the benchmark feature don't fail when compiled without the feature. * ".git/.scripts/commands/fmt/fmt.sh" * Capture signals earlier * Rewrite tests to let them having one big timeout * Remove unneeded dep * Update bin/node/cli/tests/common.rs Co-authored-by: Koute <[email protected]> * Review feedback * Update bin/node/cli/tests/common.rs Co-authored-by: Anton <[email protected]> --------- Co-authored-by: command-bot <> Co-authored-by: Koute <[email protected]> Co-authored-by: Anton <[email protected]>
-
Adrian Catangiu authored
* sc-consensus-beefy: improve beefy gossip validator Old gossip validator was pretty dumb, being very permissive with incoming votes - only condition it had was to be newer than best finalized. New filter conditions: - voter rounds are initialized (discarding votes until voter is actually active), - only votes for current active set id are accepted, - only votes for rounds in the current voting session are accepted, - only votes for GRANDPA finalized blocks are accepted, - when BEEFY voter reaches mandatory round, only votes for said mandatory round are accepted. New validator uses the VoterOracle to easily implement above conditions and only allow through votes that are immediately useful to the voter. After every GRANDPA or BEEFY finality, the gossip validator filter is updated. * sc-consensus-beefy: remove votes enqueueing Since gossip validator will simply disallow votes for future rounds, and only allow votes that the voter can immediately process, there is no need for the voter to enqueue votes. It will see these "future" votes later in rebroadcasts, when voter will also be able to process them. Only at that point does gossip accept and consume them. * sc-consensus-beefy: refactor persistent state Move best-beefy and best-grandpa into VoterOracle instead of passing them around as params. VoterOracle ultimately needs to know best-beefy and/or best-grandpa for most of its functions. * sc-consensus-beefy: further restrict gossip validator Assuming mandatory done in current session: Instead of allowing votes for any round in the current session, only accept votes for rounds equal or better than best BEEFY finalized. * sc-consensus-beefy: add a couple of comments * sc-consensus-beefy: fix tests involving multiple tasks Finalize blocks one a time in tests where we want gossip to happen in a certain round. Otherwise, some tasks may be left behind in terms of gossip round numbers because once "scheduled" a task will greedily process as much as possible. This change should be in line with the real-world scenario where voters run "in parallel" across nodes, the only points of synchronization being the finality notifications. * sc-consensus-beefy: address review comments --------- Signed-off-by: acatangiu <[email protected]>
-
- Mar 15, 2023
-
-
Alexandru Vasile authored
* impl_runtime_apis: Generate getters for `metadata_at` functions Signed-off-by: Alexandru Vasile <[email protected]> * runtime: Implement new `Metadata` runtime trait Signed-off-by: Alexandru Vasile <[email protected]> * runtime: Move `metadata_at` functions to construct_runtime macro Signed-off-by: Alexandru Vasile <[email protected]> * contruct_runtime: Use `OpaqueMetadata` from hidden imports Signed-off-by: Alexandru Vasile <[email protected]> * Adjust testing Signed-off-by: Alexandru Vasile <[email protected]> * frame/tests: Add tests for the new API Signed-off-by: Alexandru Vasile <[email protected]> * frame/tests: Adjust metdata naming Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Expose `metadata-v14` feature flag Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Expose metadata only under feature flags Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Expose v14 metadata by default Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Expose metadata feature for testing Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Test metadata under different feature flags Signed-off-by: Alexandru Vasile <[email protected]> * Update primitives/api/src/lib.rs Co-authored-by: Bastian Köcher <[email protected]> * Update primitives/api/src/lib.rs Co-authored-by: Bastian Köcher <[email protected]> * client/tests: Adjust testing to reflect trait Metadata change Signed-off-by: Alexandru Vasile <[email protected]> * frame/metadata-ir: Add intermediate representation types for metadata Signed-off-by: Alexandru Vasile <[email protected]> * frame/metadata-ir: Convert metadata to V14 Signed-off-by: Alexandru Vasile <[email protected]> * frame/metadata-ir: Add API to convert metadata to multiple versions Signed-off-by: Alexandru Vasile <[email protected]> * frame/metadata-ir: Expose V14 under feature flag Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Adjust to metadata IR Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: More adjustments Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Guard v14 details under feature flag Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Adjust testing Signed-off-by: Alexandru Vasile <[email protected]> * CI: Ensure `quick-benchmarks` uses `metadata-v14` Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Use `metadata-v14` for benchmarks Signed-off-by: Alexandru Vasile <[email protected]> * Adjust cargo fmt Signed-off-by: Alexandru Vasile <[email protected]> * kitchensink-runtime: Add feature flag for `metadata-v14` Signed-off-by: Alexandru Vasile <[email protected]> * frame/support/test: Adjust testing Signed-off-by: Alexandru Vasile <[email protected]> * frame/support/test: Check crates locally Signed-off-by: Alexandru Vasile <[email protected]> * Activate metadata-v14 for pallets Signed-off-by: Alexandru Vasile <[email protected]> * Remove metadata-v14 feature flag Signed-off-by: Alexandru Vasile <[email protected]> * frame/metadata_ir: Move `api.rs` to `mod.rs` Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Handle latest metadata conversion via IR Signed-off-by: Alexandru Vasile <[email protected]> * frame/tests: Add constant for metadata version 14 Signed-off-by: Alexandru Vasile <[email protected]> * frame/support/test: Fix merge conflict Signed-off-by: Alexandru Vasile <[email protected]> * Update frame/support/Cargo.toml Co-authored-by: Bastian Köcher <[email protected]> * Update frame/support/src/metadata_ir/mod.rs Co-authored-by: Bastian Köcher <[email protected]> * Update frame/support/test/Cargo.toml Co-authored-by: Bastian Köcher <[email protected]> * Update primitives/api/src/lib.rs Co-authored-by: Bastian Köcher <[email protected]> * frame/metadata: Collect pallet documentation for MetadataIR Signed-off-by: Alexandru Vasile <[email protected]> * frame/tests: Check pallet documentation is propagated to MetadataIR Signed-off-by: Alexandru Vasile <[email protected]> * frame/support: Improve documentation Signed-off-by: Alexandru Vasile <[email protected]> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: parity-processbot <> Co-authored-by: Bastian Köcher <[email protected]>
-
- Mar 14, 2023
-
-
cheme authored
-
Adrian Catangiu authored
`futures_util::pending!()` macro only yields to the event loop once, resulting in many calls to the `OnDemandJustificationsEngine::next()` made by the tokio reactor even though the on-demand-engine is idle. Replace it with the correct `futures::future::pending::<()>()` function which forever yields to the event loop, which is what we want when the engine is idle. Signed-off-by: Adrian Catangiu <[email protected]>
-
Aaro Altonen authored
* Move service tests to `client/network/tests` These tests depend on `sc-network` and `sc-network-sync` so they should live outside the crate. * Move some configs from `sc-network-common` to `sc-network` * Move `NetworkService` traits to `sc-network` * Move request-responses to `sc-network` * Remove more stuff * Remove rest of configs from `sc-network-common` to `sc-network` * Remove more stuff * Fix warnings * Update client/network/src/request_responses.rs Co-authored-by: Dmitry Markin <[email protected]> * Fix cargo doc --------- Co-authored-by: Dmitry Markin <[email protected]>
-
- Mar 13, 2023
-
-
Bastian Köcher authored
Calculate remaining proposal duration once and also use proposal time as timeout for creating the inherent data.
-
- Mar 09, 2023
-
-
André Silva authored
* grandpa: send neighbor packets to light clients on set transition * Apply suggestions from code review Co-authored-by: Bastian Köcher <[email protected]> * remove match statement --------- Co-authored-by: Bastian Köcher <[email protected]>
-
dependabot[bot] authored
Bumps [wasmtime](https://github.com/bytecodealliance/wasmtime) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/bytecodealliance/wasmtime/releases) - [Changelog](https://github.com/bytecodealliance/wasmtime/blob/main/docs/WASI-some-possible-changes.md) - [Commits](https://github.com/bytecodealliance/wasmtime/compare/v6.0.0...v6.0.1 ) --- updated-dependencies: - dependency-name: wasmtime dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
- Mar 07, 2023
-
-
André Silva authored
* consensus: remove caching functionality from block import pipeline * client: update docs on Verifier::verify * node: fix block production benchmark
-
Alexandru Vasile authored
* rpc/chainhead: Test unpin for noncanonical prunned blocks Signed-off-by: Alexandru Vasile <[email protected]> * rpc/tests: Ensure fork is not reported by the Finalized event Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chainhead: Detect pruned forks to ignore from events Signed-off-by: Alexandru Vasile <[email protected]> * rpc/tests: Check unpin can be called on pruned hashes Signed-off-by: Alexandru Vasile <[email protected]> * Fix clippy Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Handle race with memory blocks and notifications Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Add data config for the `follow` future Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Address feedback Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Move best block cache on the data config Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Send new events from the finalized stream Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chian_head: Report all pruned blocks Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Move `chainHead_follow` logic on dedicated file Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Delegate follow logic to `chain_head_follow` Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Remove subscriptions on drop Signed-off-by: Alexandru Vasile <[email protected]> * rpc/tests: Ignore pruned blocks for a longer fork Signed-off-by: Alexandru Vasile <[email protected]> * rpc/tests: Check all pruned blocks are reported, not just stale heads Signed-off-by: Alexandru Vasile <[email protected]> * rpc/tests: Remove println debug and fix indentation Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Remove unnecessary trait bounds Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Add debug log for pruned forks Signed-off-by: Alexandru Vasile <[email protected]> * Revert "rpc/chain_head: Add debug log for pruned forks" This reverts commit 425d6e7a8b60421bcece12add1941fe58524cf52. * Adjust blockID for testing Signed-off-by: Alexandru Vasile <[email protected]> * Update client/rpc-spec-v2/src/chain_head/chain_head_follow.rs Co-authored-by: Davide Galassi <[email protected]> * rpc/chain_head: Rename `ChainHeadFollow` to `ChainHeadFollower` Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Remove subscriptions manually Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Improve log messages by adding subID and errors Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Ensure `follow` stops sending events on first error Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Use default constructor Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Add `StartupPoint` structure Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Rename `in_memory_blocks` Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Fix comment typo Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Keep unique blocks and remove itertools Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Make sure `bestBlocks` events are generated in order Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Maintain order of reported blocks Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Parent of finalized block could be unpinned Signed-off-by: Alexandru Vasile <[email protected]> * rpc/chain_head: Fix warning Signed-off-by: Alexandru Vasile <[email protected]> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Davide Galassi <[email protected]>
-
Dmitry Markin authored
-
- Mar 06, 2023
-
-
Liu-Cheng Xu authored
I forgot this in https://github.com/paritytech/substrate/pull/12291
-
Aaro Altonen authored
* Move import queue out of `sc-network` Add supplementary asynchronous API for the import queue which means it can be run as an independent task and communicated with through the `ImportQueueService`. This commit removes removes block and justification imports from `sc-network` and provides `ChainSync` with a handle to import queue so it can import blocks and justifications. Polling of the import queue is moved complete out of `sc-network` and `sc_consensus::Link` is implemented for `ChainSyncInterfaceHandled` so the import queue can still influence the syncing process. * Move stuff to SyncingEngine * Move `ChainSync` instanation to `SyncingEngine` Some of the tests have to be rewritten * Move peer hashmap to `SyncingEngine` * Let `SyncingEngine` to implement `ChainSyncInterface` * Introduce `SyncStatusProvider` * Move `sync_peer_(connected|disconnected)` to `SyncingEngine` * Implement `SyncEventStream` Remove `SyncConnected`/`SyncDisconnected` events from `NetworkEvenStream` and provide those events through `ChainSyncInterface` instead. Modify BEEFY/GRANDPA/transactions protocol and `NetworkGossip` to take `SyncEventStream` object which they listen to for incoming sync peer events. * Introduce `ChainSyncInterface` This interface provides a set of miscellaneous functions that other subsystems can use to query, for example, the syncing status. * Move event stream polling to `SyncingEngine` Subscribe to `NetworkStreamEvent` and poll the incoming notifications and substream events from `SyncingEngine`. The code needs refactoring. * Make `SyncingEngine` into an asynchronous runner This commits removes the last hard dependency of syncing from `sc-network` meaning the protocol now lives completely outside of `sc-network`, ignoring the hardcoded peerset entry which will be addressed in the future. Code needs a lot of refactoring. * Fix warnings * Code refactoring * Use `SyncingService` for BEEFY * Use `SyncingService` for GRANDPA * Remove call delegation from `NetworkService` * Remove `ChainSyncService` * Remove `ChainSync` service tests They were written for the sole purpose of verifying that `NetworWorker` continues to function while the calls are being dispatched to `ChainSync`. * Refactor code * Refactor code * Update client/finality-grandpa/src/communication/tests.rs Co-authored-by: Anton <[email protected]> * Fix warnings * Apply review comments * Fix docs * Fix test * cargo-fmt * Update client/network/sync/src/engine.rs Co-authored-by: Anton <[email protected]> * Update client/network/sync/src/engine.rs Co-authored-by: Anton <[email protected]> * Add missing docs * Refactor code --------- Co-authored-by: Anton <[email protected]>
-
- Mar 03, 2023
-
-
Arkadiy Paronyan authored
-
- Mar 02, 2023
-
-
Bastian Köcher authored
Two peers can send us the same gossip message. Before this pr we would have reported the second peer for sending a duplicate message. However, this isn't correct if we haven't seen the message from this peer yet. So, we should not report them as they can not be aware of our internal state.
-
- Mar 01, 2023
-
-
Adrian Catangiu authored
Signed-off-by: acatangiu <[email protected]>
-
André Silva authored
-
Dmitry Markin authored
* Replace `futures-channel` with `async-channel` in `out_events` * Apply suggestions from code review Co-authored-by: Koute <[email protected]> * Also print the backtrace of `send()` call * Switch from `backtrace` crate to `std::backtrace` * Remove outdated `backtrace` dependency * Remove `backtrace` from `Cargo.lock` --------- Co-authored-by: Koute <[email protected]>
-
- Feb 28, 2023
-
-
yjh authored
* chore: move genesis block builder to block builder crate. * add missing file * chore: move genesis block builder to sc-chain-spec * Update client/chain-spec/src/genesis.rs Co-authored-by: Bastian Köcher <[email protected]> * Update test-utils/runtime/src/genesismap.rs Co-authored-by: Bastian Köcher <[email protected]> * Update test-utils/runtime/client/src/lib.rs * fix warnings * fix warnings --------- Co-authored-by: Bastian Köcher <[email protected]>
-
Davide Galassi authored
* Move beefy primitives to consensus dir * Move beefy gadget to client consensus folder * Rename beefy crates
-