Skip to content

Commit 0746ba3

Browse files
committed
Introduce approval-voting-parallel
Signed-off-by: Alexandru Gheorghe <[email protected]>
1 parent 25f1f0a commit 0746ba3

File tree

37 files changed

+1365
-121
lines changed

37 files changed

+1365
-121
lines changed

Cargo.lock

Lines changed: 51 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ members = [
152152
"polkadot/erasure-coding/fuzzer",
153153
"polkadot/node/collation-generation",
154154
"polkadot/node/core/approval-voting",
155+
"polkadot/node/core/approval-voting-parallel",
155156
"polkadot/node/core/av-store",
156157
"polkadot/node/core/backing",
157158
"polkadot/node/core/bitfield-signing",
@@ -1009,6 +1010,7 @@ polkadot-gossip-support = { path = "polkadot/node/network/gossip-support", defau
10091010
polkadot-network-bridge = { path = "polkadot/node/network/bridge", default-features = false }
10101011
polkadot-node-collation-generation = { path = "polkadot/node/collation-generation", default-features = false }
10111012
polkadot-node-core-approval-voting = { path = "polkadot/node/core/approval-voting", default-features = false }
1013+
polkadot-node-core-approval-voting-parallel = { path = "polkadot/node/core/approval-voting-parallel", default-features = false }
10121014
polkadot-node-core-av-store = { path = "polkadot/node/core/av-store", default-features = false }
10131015
polkadot-node-core-backing = { path = "polkadot/node/core/backing", default-features = false }
10141016
polkadot-node-core-bitfield-signing = { path = "polkadot/node/core/bitfield-signing", default-features = false }

cumulus/client/relay-chain-inprocess-interface/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@ fn build_polkadot_full_node(
327327
execute_workers_max_num: None,
328328
prepare_workers_hard_max_num: None,
329329
prepare_workers_soft_max_num: None,
330+
enable_approval_voting_parallel: false,
330331
},
331332
)?;
332333

polkadot/cli/src/cli.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,12 @@ pub struct RunCmd {
151151
/// TESTING ONLY: disable the version check between nodes and workers.
152152
#[arg(long, hide = true)]
153153
pub disable_worker_version_check: bool,
154+
155+
/// Enable approval-voting message processing in parallel.
156+
///
157+
///**Dangerous!** This is an experimental feature and should not be used in production.
158+
#[arg(long)]
159+
pub enable_approval_voting_parallel: bool,
154160
}
155161

156162
#[allow(missing_docs)]

polkadot/cli/src/command.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ where
256256
execute_workers_max_num: cli.run.execute_workers_max_num,
257257
prepare_workers_hard_max_num: cli.run.prepare_workers_hard_max_num,
258258
prepare_workers_soft_max_num: cli.run.prepare_workers_soft_max_num,
259+
enable_approval_voting_parallel: cli.run.enable_approval_voting_parallel,
259260
},
260261
)
261262
.map(|full| full.task_manager)?;
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
[package]
2+
name = "polkadot-node-core-approval-voting-parallel"
3+
version = "7.0.0"
4+
authors.workspace = true
5+
edition.workspace = true
6+
license.workspace = true
7+
description = "Approval Voting Subsystem running approval work in parallel"
8+
9+
[lints]
10+
workspace = true
11+
12+
[dependencies]
13+
futures = "0.3.30"
14+
futures-timer = "3.0.2"
15+
codec = { package = "parity-scale-codec", version = "3.6.12", default-features = false, features = ["bit-vec", "derive"] }
16+
gum = { package = "tracing-gum", path = "../../gum" }
17+
bitvec = { version = "1.0.0", default-features = false, features = ["alloc"] }
18+
schnellru = "0.2.1"
19+
merlin = "3.0"
20+
schnorrkel = "0.11.4"
21+
kvdb = "0.13.0"
22+
derive_more = "0.99.17"
23+
thiserror = { workspace = true }
24+
itertools = "0.11"
25+
async-trait = { workspace = true }
26+
27+
polkadot-node-core-approval-voting = { workspace = true, default-features = true }
28+
polkadot-approval-distribution = { workspace = true, default-features = true }
29+
30+
31+
polkadot-node-subsystem = { workspace = true, default-features = true }
32+
polkadot-node-subsystem-util = { workspace = true, default-features = true }
33+
polkadot-overseer = { workspace = true, default-features = true }
34+
polkadot-primitives = { workspace = true, default-features = true }
35+
polkadot-node-primitives = { workspace = true, default-features = true }
36+
polkadot-node-jaeger = { workspace = true, default-features = true }
37+
38+
sc-keystore = { workspace = true, default-features = false }
39+
sp-consensus = { workspace = true, default-features = false }
40+
sp-consensus-slots = { workspace = true, default-features = false }
41+
sp-application-crypto = { workspace = true, default-features = false, features = ["full_crypto"] }
42+
sp-runtime = { workspace = true, default-features = false }
43+
polkadot-node-network-protocol = { workspace = true, default-features = true }
44+
polkadot-node-metrics = { workspace = true, default-features = true}
45+
46+
rand = "0.8.5"
47+
48+
# rand_core should match schnorrkel
49+
rand_core = "0.6.2"
50+
rand_chacha = { version = "0.3.1" }
51+
52+
[dev-dependencies]
53+
async-trait = "0.1.79"
54+
parking_lot = "0.12.1"
55+
sp-keyring = { workspace = true, default-features = true }
56+
sp-keystore = {workspace = true, default-features = true}
57+
sp-core = { workspace = true, default-features = true}
58+
sp-consensus-babe = { workspace = true, default-features = true }
59+
polkadot-node-subsystem-test-helpers = { workspace = true, default-features = true}
60+
assert_matches = "1.4.0"
61+
kvdb-memorydb = "0.13.0"
62+
polkadot-primitives-test-helpers = { workspace = true, default-features = true }
63+
log = { workspace = true, default-features = true }
64+
env_logger = "0.11"
65+
66+
polkadot-subsystem-bench = { workspace = true, default-features = true}
67+

0 commit comments

Comments
 (0)