Commit Graph

16 Commits

Author SHA1 Message Date
Mira Ressel e75607108e docs: update references to NetworkConfiguration::extra_sets (#7386)
* docs: update references to NetworkConfiguration::extra_sets

Since paritytech/substrate#14080, this struct field no longer exists,
now the `add_notification_protocol()` function of
`sc_network::config::FullNetworkConfiguration` is used.

Also neuter the doc links for now; rustdoc can't resolve them
(presumably because sc_network::config isn't in scope, though weirdly
enough even spelling the link out as
``[`FullNetworkConfiguration`](struct@sc_network::config::FullNetworkConfiguration)``
doesn't work?). Normally this wouldn't be an issue and rustdoc would
just not generate links, but rust 1.70 has a bug that completely crashes
rustdoc in this case.
2023-06-16 13:14:16 +02:00
Aaro Altonen 134655ee27 Wait peers to connect before doing anything else (#7375)
There is a race condition in `NetworkBridgeRx` between registering
incoming peers and handling overseer signals. While the peer connection
was sent to `NetworkBridgeRx` first, sometimes the peer would be added to
`validation/collation_peers` with enough delay that the bridge handled
an overseer signal that was meant do send notifications to the registered
peer and as the peer was not present in the bridge, the notification was
never sent and the test would hang.

When peers are registered to `NetworkBridgeRx` using `connect_peer()`,
wait until they show up in `shared.validation/collation_peers` before
doing anything else.

Co-authored-by: parity-processbot <>
2023-06-16 09:32:52 +02:00
Andrei Eres 0a1bc654d9 Delay reputation updates (#7214)
* Add futures-timer

* Make cost_or_benefit public

* Update ReportPeer message format

* Add delay to reputation updates (dirtywork)

* Update ReputationAggregator

* Update tests

* Fix flucky tests

* Move reputation to state

* Use the main loop for handling reputation sendings

* Update

* Move reputation to utils

* Update reputation sending

* Fix arguments order

* Update state

* Remove new from state

* Add constant

* Add failing test for delay

* Change mocking approach

* Fix type errors

* Fix comments

* Add message handling to select

* Fix bitfields-distribution tests

* Add docs to reputation aggregator

* Replace .into_base_rep

* Use one REPUTATION_CHANGE_INTERVAL by default

* Add reputation change to statement-distribution

* Update polkadot-availability-bitfield-distribution

* Update futures selecting in subsystems

* Update reputation adding

* Send malicious changes right away without adding to state

* Add reputation to StatementDistributionSubsystem

* Handle reputation in statement distribution

* Add delay test for polkadot-statement-distribution

* Fix collator-protocol tests before applying reputation delay

* Remove into_base_rep

* Add reputation to State

* Fix failed tests

* Add reputation delay

* Update tests

* Add batched network message for peer reporting

* Update approval-distribution tests

* Update bitfield-distribution tests

* Update statement-distribution tests

* Update collator-protocol tests

* Remove levels in matching

* Address clippy errors

* Fix overseer test

* Add a metric for original count of rep changes

* Update Reputation

* Revert "Add a metric for original count of rep changes"

This reverts commit 6c9b0c1ec34491d16e562bdcba8db6b9dcf484db.

* Update node/subsystem-util/src/reputation.rs

Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io>

* Remove redundant vec

---------

Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io>
2023-06-15 13:46:06 +00:00
s0me0ne-unkn0wn 64660ee8d2 Remove years from copyright notes (#7034)
* Happy New Year!

* Remove year entierly

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Remove years from copyright notice in the entire repo

---------

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-04-08 20:38:35 +00:00
Andrei Sandu fc2cba1805 Subsystem channel tweaks (#6905)
* subsystem tweaks for higher scale

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* Adjust queue sizes

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* Orchestra 0.0.5

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* cargo lock

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

---------

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
2023-03-24 17:19:37 +00:00
Aaro Altonen ce9fbe73d9 Companion for paritytech/substrate#12828 (#6380)
* Companion for paritytech/substrate#12828

* Pass sync service

* Fix test

* Fix tests again

* update lockfile for {"substrate"}

* cargo fmt

---------

Co-authored-by: parity-processbot <>
2023-03-06 17:46:27 +00:00
s0me0ne-unkn0wn 1cb1d03c08 Re-export current primitives in crate root (#6487)
* Re-export current primitives in crate root

* Add missing exports

* restart CI
2023-01-11 11:28:12 +00:00
alexgparity 9ea14e66c8 Clippyfy (#6341)
* 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: alvicsam <alvicsam@gmail.com>
2022-11-30 08:34:06 +00:00
Andrei Sandu ad41e56e6e Dedup subsystem name (#6305)
Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
2022-11-17 12:59:07 +00:00
Marcin S d53513ff66 Fixes "for loop over an Option" warnings (#6291)
Was seeing these warnings when running `cargo check --all`:

```
warning: for loop over an `Option`. This is more readably written as an `if let` statement
    --> node/core/approval-voting/src/lib.rs:1147:21
     |
1147 |             for activated in update.activated {
     |                              ^^^^^^^^^^^^^^^^
     |
     = note: `#[warn(for_loops_over_fallibles)]` on by default
help: to check pattern in a loop use `while let`
     |
1147 |             while let Some(activated) = update.activated {
     |             ~~~~~~~~~~~~~~~         ~~~
help: consider using `if let` to clear intent
     |
1147 |             if let Some(activated) = update.activated {
     |             ~~~~~~~~~~~~         ~~~
```

My guess is that `activated` used to be a SmallVec or similar, as is
`deactivated`. It was changed to an `Option`, the `for` still compiled (it's
technically correct, just weird), and the compiler didn't catch it until now.
2022-11-15 09:58:26 -05:00
asynchronous rob a7780e0797 refactor grid topology to expose more info to subsystems (#6140)
* refactor grid topology to expose more info to subsystems

* fix grid_topology test

* fix overseer test

* Update node/network/protocol/src/grid_topology.rs

Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io>

* Update node/network/protocol/src/grid_topology.rs

Co-authored-by: Andronik <write@reusable.software>

* Update node/network/protocol/src/grid_topology.rs

Co-authored-by: Andronik <write@reusable.software>

* fix bug in populating topology

* fmt

Co-authored-by: Vsevolod Stakhov <vsevolod.stakhov@parity.io>
Co-authored-by: Andronik <write@reusable.software>
2022-10-12 23:30:12 +00:00
Dmitry Markin b3480bd51f Use custom type for ProtocolName (#5963)
* Use new ProtocolName in peer_set.rs

* Use new ProtocolName for request-response protocols

* Use new ProtocolName in polkadot-network-bridge

* Import and conversion fixes

* Use ProtocolName re-exported in sc_network

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-09-04 00:02:01 +02:00
Dmitry Markin 13ea167bd7 Change validation & collation protocol names to include genesis hash & fork id (#5876) 2022-08-30 19:50:22 +03:00
Dmitry Markin 4def0da0dc Change request-response protocol names to include genesis hash & fork id (#5870) 2022-08-12 15:07:13 +03:00
Nazar Mokrynskyi f1dce2f548 Trivial networking changes for Substrate PR #11940 (#5841)
* Trivial networking changes for Substrate PR https://github.com/paritytech/substrate/pull/11940

* update lockfile for {"substrate"}

Co-authored-by: parity-processbot <>
2022-08-09 19:37:31 +00:00
Bernhard Schuster 3240cb5e4d split NetworkBridge into two subsystems (#5616)
* foo

* rolling session window

* fixup

* remove use statemetn

* fmt

* split NetworkBridge into two subsystems

Pending cleanup

* split

* chore: reexport OrchestraError as OverseerError

* chore: silence warnings

* fixup tests

* chore: add default timenout of 30s to subsystem test helper ctx handle

* single item channel

* fixins

* fmt

* cleanup

* remove dead code

* remove sync bounds again

* wire up shared state

* deal with some FIXMEs

* use distinct tags

Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>

* use tag

Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>

* address naming

tx and rx are common in networking and also have an implicit meaning regarding networking
compared to incoming and outgoing which are already used with subsystems themselvesq

* remove unused sync oracle

* remove unneeded state

* fix tests

* chore: fmt

* do not try to register twice

* leak Metrics type

Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
Co-authored-by: Andronik <write@reusable.software>
2022-07-12 16:22:36 +00:00