Remove request multiplexer (#3624)

* WIP: Get rid of request multiplexer.

* WIP

* Receiver for handling of incoming requests.

* Get rid of useless `Fault` abstraction.

The things the type system let us do are not worth getting abstracted in
its own type. Instead error handling is going to be merely a pattern.

* Make most things compile again.

* Port availability distribution away from request multiplexer.

* Formatting.

* Port dispute distribution over.

* Fixup statement distribution.

* Handle request directly in collator protocol.

+ Only allow fatal errors at top level.

* Use direct request channel for availability recovery.

* Finally get rid of request multiplexer

Fixes #2842 and paves the way for more back pressure possibilities.

* Fix overseer and statement distribution tests.

* Fix collator protocol and network bridge tests.

* Fix tests in availability recovery.

* Fix availability distribution tests.

* Fix dispute distribution tests.

* Add missing dependency

* Typos.

* Review remarks.

* More remarks.
This commit is contained in:
Robert Klotzner
2021-08-12 13:11:36 +02:00
committed by GitHub
parent ecf71233c3
commit 55154a8d37
51 changed files with 1509 additions and 1746 deletions
+25 -8
View File
@@ -1532,13 +1532,14 @@ dependencies = [
[[package]]
name = "derive_more"
version = "0.99.14"
version = "0.99.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cc7b9cef1e351660e5443924e4f43ab25fbbed3e9a5f052df3677deb4d6b320"
checksum = "40eebddd2156ce1bb37b20bbe5151340a31828b1f2d22ba4141f3531710e38df"
dependencies = [
"convert_case",
"proc-macro2",
"quote",
"rustc_version 0.3.3",
"syn",
]
@@ -2476,7 +2477,7 @@ dependencies = [
"cc",
"libc",
"log",
"rustc_version",
"rustc_version 0.2.3",
"winapi 0.3.9",
]
@@ -2845,7 +2846,7 @@ dependencies = [
"itoa",
"log",
"net2",
"rustc_version",
"rustc_version 0.2.3",
"time",
"tokio 0.1.22",
"tokio-buf",
@@ -5650,7 +5651,7 @@ checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
dependencies = [
"lock_api 0.3.4",
"parking_lot_core 0.6.2",
"rustc_version",
"rustc_version 0.2.3",
]
[[package]]
@@ -5684,7 +5685,7 @@ dependencies = [
"cloudabi 0.0.3",
"libc",
"redox_syscall 0.1.56",
"rustc_version",
"rustc_version 0.2.3",
"smallvec 0.6.13",
"winapi 0.3.9",
]
@@ -5942,6 +5943,7 @@ name = "polkadot-availability-distribution"
version = "0.9.9"
dependencies = [
"assert_matches",
"derive_more",
"futures 0.3.16",
"futures-timer 3.0.2",
"lru",
@@ -6053,10 +6055,12 @@ version = "0.9.9"
dependencies = [
"always-assert",
"assert_matches",
"derive_more",
"env_logger 0.8.4",
"futures 0.3.16",
"futures-timer 3.0.2",
"log",
"parity-scale-codec",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
"polkadot-node-subsystem",
@@ -6089,6 +6093,7 @@ version = "0.9.9"
dependencies = [
"assert_matches",
"async-trait",
"derive_more",
"futures 0.3.16",
"futures-timer 3.0.2",
"lazy_static",
@@ -6170,7 +6175,6 @@ dependencies = [
"sp-consensus",
"sp-core",
"sp-keyring",
"strum",
"tracing",
]
@@ -6522,6 +6526,7 @@ name = "polkadot-node-network-protocol"
version = "0.9.9"
dependencies = [
"async-trait",
"derive_more",
"futures 0.3.16",
"parity-scale-codec",
"polkadot-node-jaeger",
@@ -6628,6 +6633,7 @@ version = "0.9.9"
dependencies = [
"assert_matches",
"async-trait",
"derive_more",
"env_logger 0.8.4",
"futures 0.3.16",
"futures-timer 3.0.2",
@@ -7023,6 +7029,7 @@ dependencies = [
"polkadot-node-core-parachains-inherent",
"polkadot-node-core-provisioner",
"polkadot-node-core-runtime-api",
"polkadot-node-network-protocol",
"polkadot-node-primitives",
"polkadot-node-subsystem",
"polkadot-node-subsystem-test-helpers",
@@ -7144,6 +7151,7 @@ version = "0.9.9"
dependencies = [
"arrayvec 0.5.2",
"assert_matches",
"derive_more",
"futures 0.3.16",
"futures-timer 3.0.2",
"indexmap",
@@ -8152,6 +8160,15 @@ dependencies = [
"semver 0.9.0",
]
[[package]]
name = "rustc_version"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
dependencies = [
"semver 0.11.0",
]
[[package]]
name = "rustls"
version = "0.18.0"
@@ -9663,7 +9680,7 @@ dependencies = [
"rand 0.7.3",
"rand_core 0.5.1",
"ring",
"rustc_version",
"rustc_version 0.2.3",
"sha2 0.9.2",
"subtle 2.2.3",
"x25519-dalek 0.6.0",