Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Implement PoV Distribution Subsystem #1344

Merged
merged 33 commits into from
Jul 8, 2020
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c23a13c
introduce candidatedescriptor type
rphmeier Jul 2, 2020
7a2be24
add PoVDistribution message type
rphmeier Jul 2, 2020
55e1b5a
loosen bound on PoV Distribution to account for equivocations
rphmeier Jul 2, 2020
1db4f3c
re-export some types from the messages module
rphmeier Jul 2, 2020
f6641c4
begin PoV Distribution subsystem
rphmeier Jul 2, 2020
fe005b7
remove redundant index from PoV distribution
rphmeier Jul 3, 2020
27da7ef
define state machine for pov distribution
rphmeier Jul 3, 2020
2cdcefd
handle overseer signals
rphmeier Jul 3, 2020
e66e063
set up control flow
rphmeier Jul 3, 2020
6197058
remove `ValidatorStatement` section
rphmeier Jul 3, 2020
623db00
implement PoV fetching
rphmeier Jul 3, 2020
86d1cf0
implement distribution logic
rphmeier Jul 3, 2020
8557778
add missing `
rphmeier Jul 3, 2020
fa86b24
implement some network bridge event handlers
rphmeier Jul 3, 2020
8b4a7b0
stub for message processing, handle our view change
rphmeier Jul 3, 2020
0b82a0c
control flow for handling messages
rphmeier Jul 3, 2020
a45e58e
handle `awaiting` message
rphmeier Jul 3, 2020
a768179
handle any incoming PoVs and redistribute
rphmeier Jul 3, 2020
d47905d
actually provide a subsystem implementation
rphmeier Jul 3, 2020
bb31777
remove set-builder notation
rphmeier Jul 6, 2020
24d6278
begin testing PoV distribution
rphmeier Jul 7, 2020
5202b3d
test that we send awaiting messages only to peers with same view
rphmeier Jul 7, 2020
3d9d000
ensure we distribute awaited PoVs to peers on view changes
rphmeier Jul 7, 2020
df4a1f1
test that peers can complete fetch and are rewarded
rphmeier Jul 7, 2020
f2c9bfb
test some reporting logic
rphmeier Jul 7, 2020
7923146
ensure peer is reported for flooding
rphmeier Jul 7, 2020
43d610d
test punishing peers diverging from awaited protocol
rphmeier Jul 7, 2020
57f133f
test that we eagerly complete peers' awaited PoVs based on what we re…
rphmeier Jul 7, 2020
7d26c53
test that we prune the awaited set after receiving
rphmeier Jul 7, 2020
6406423
Merge branch 'master' into rh-pov-distribution
rphmeier Jul 7, 2020
0ff3988
expand pov-distribution in guide to match a change I made
rphmeier Jul 7, 2020
8cc66a7
Merge branch 'master' into rh-pov-distribution
rphmeier Jul 7, 2020
f506a91
remove unneeded import
rphmeier Jul 7, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ members = [
"validation",

"node/network/bridge",
"node/network/pov-distribution",
"node/overseer",
"node/primitives",
"node/service",
Expand Down
22 changes: 22 additions & 0 deletions node/network/pov-distribution/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[package]
name = "polkadot-pov-distribution"
version = "0.1.0"
authors = ["Parity Technologies <[email protected]>"]
edition = "2018"

[dependencies]
futures = "0.3.5"
log = "0.4.8"
futures-timer = "3.0.2"
streamunordered = "0.5.1"
polkadot-primitives = { path = "../../../primitives" }
node-primitives = { package = "polkadot-node-primitives", path = "../../primitives" }
parity-scale-codec = "1.3.0"
sc-network = { git = "https://github.com/paritytech/substrate", branch = "master" }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master" }
polkadot-subsystem = { package = "polkadot-node-subsystem", path = "../../subsystem" }

[dev-dependencies]
parking_lot = "0.10.0"
subsystem-test = { package = "polkadot-subsystem-test-helpers", path = "../../test-helpers/subsystem" }
assert_matches = "1.3.0"
Loading