Use grid topology for bitfileds distribution messages (#5389)

* Move NewGossipTopology -> SessionGridTopology outside as this implementation is shared

* Add method to return peers difference between topologies

* Implement basic grid topology usage for the bitfield distribution

* Fix tests

* Oops, fix tests

* Add some tests for random routing

* Add a unit test for topology distribution

* Store the current and the previous topology to match sessions boundaries

* Update tests

* Update node/network/bitfield-distribution/src/lib.rs

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

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

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

* Update node/network/bitfield-distribution/src/lib.rs

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

* Add some debug

* Fix tests as HashSet order is undefined

Co-authored-by: Andronik <write@reusable.software>
This commit is contained in:
Vsevolod Stakhov
2022-05-06 13:24:11 +01:00
committed by GitHub
parent 53a1db59bc
commit 673a32d968
9 changed files with 419 additions and 83 deletions
+3
View File
@@ -6451,6 +6451,8 @@ dependencies = [
"polkadot-node-subsystem-test-helpers",
"polkadot-node-subsystem-util",
"polkadot-primitives",
"rand 0.8.5",
"rand_chacha 0.3.1",
"sp-application-crypto",
"sp-core",
"sp-keyring",
@@ -7106,6 +7108,7 @@ dependencies = [
"polkadot-node-primitives",
"polkadot-primitives",
"rand 0.8.5",
"rand_chacha 0.3.1",
"sc-authority-discovery",
"sc-network",
"strum 0.24.0",