Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
306eac1
sketch out provisioner basics
coriolinus Jul 24, 2020
811a952
Merge remote-tracking branch 'origin/master' into prgn-provisioner
coriolinus Jul 27, 2020
1020de3
handle provisionable data
coriolinus Jul 27, 2020
4f3ceca
stub out select_inherent_data
coriolinus Jul 27, 2020
d8d7cbb
split runtime APIs into sub-chapters to improve linkability
coriolinus Jul 28, 2020
4533d3c
explain SignedAvailabilityBitfield semantics
coriolinus Jul 28, 2020
775b4e4
add internal link to further documentation
coriolinus Jul 28, 2020
05c51a7
some more work figuring out how the provisioner can do its thing
coriolinus Jul 28, 2020
f171d16
Merge remote-tracking branch 'origin/master' into prgn-provisioner
coriolinus Jul 29, 2020
f99312f
fix broken link
coriolinus Jul 29, 2020
9ded53e
don't import enum variants where it's one layer deep
coriolinus Jul 29, 2020
bbc9284
make request_availability_cores a free fn in util
coriolinus Jul 29, 2020
2e227bb
document more precisely what should happen on block production
coriolinus Jul 29, 2020
0f303d3
finish first-draft implementation of provisioner
coriolinus Jul 29, 2020
226d5cb
start working on the full and proper backed candidate selection rule
coriolinus Jul 29, 2020
4f05dcd
Merge remote-tracking branch 'origin/master' into prgn-provisioner
coriolinus Aug 3, 2020
850fe62
Pass number of block under construction via RequestInherentData
coriolinus Aug 3, 2020
6da5846
Revert "Pass number of block under construction via RequestInherentData"
coriolinus Aug 3, 2020
5b1035c
wip: get the block under production from the Chain API
coriolinus Aug 3, 2020
d2a35ae
add ChainApiMessage to AllMessages
coriolinus Aug 3, 2020
9955cdc
don't break the run loop if a provisionable data channel closes
coriolinus Aug 3, 2020
6f79690
clone only those backed candidates which are coherent
coriolinus Aug 3, 2020
01eda32
Merge remote-tracking branch 'origin/master' into prgn-provisioner
coriolinus Aug 3, 2020
03d01ca
propagate chain_api subsystem through various locations
coriolinus Aug 3, 2020
9e36cae
add delegated_subsystem! macro to ease delegating subsystems
coriolinus Aug 4, 2020
470adf8
fix delegated_subsystem
coriolinus Aug 4, 2020
faec27c
add provisioning subsystem; reduce public interface of provisioner
coriolinus Aug 4, 2020
1bacf06
deny missing docs in provisioner
coriolinus Aug 4, 2020
fb42634
refactor core selection per code review suggestion
coriolinus Aug 4, 2020
f6e4a5a
Merge remote-tracking branch 'origin/master' into prgn-provisioner
coriolinus Aug 4, 2020
f345e9a
fix bad merge double-declaration
coriolinus Aug 4, 2020
7136331
update guide with (hopefully) complete provisioner candidate selectio…
coriolinus Aug 5, 2020
c68a02a
clarify candidate selection algorithm
coriolinus Aug 5, 2020
2d55f39
Revert "clarify candidate selection algorithm"
coriolinus Aug 5, 2020
ba3efc6
clarify candidate selection algorithm
coriolinus Aug 5, 2020
0e97e01
update provisioner to implement candidate selection per the guide
coriolinus Aug 5, 2020
48a951c
add test that no more than one bitfield is selected per validator
coriolinus Aug 5, 2020
429af8f
add test that each selected bitfield corresponds to an occupied core
coriolinus Aug 5, 2020
c7e5782
add test that more set bits win conflicts
coriolinus Aug 5, 2020
89194d8
add macro for specializing runtime requests; specailize all runtime r…
coriolinus Aug 5, 2020
54580a0
add tests harness for select_candidates tests
coriolinus Aug 5, 2020
933396c
add first real select_candidates test, fix test_harness
coriolinus Aug 6, 2020
983c772
add mock overseer and test that success is possible
coriolinus Aug 6, 2020
31682ff
add test that the candidate selection algorithm picks the right ones
coriolinus Aug 6, 2020
f2b5af3
make candidate selection test somewhat more stringent
coriolinus Aug 6, 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
17 changes: 16 additions & 1 deletion Cargo.lock

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

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ path = "src/main.rs"

[package]
name = "polkadot"
version = "0.8.22"
version = "0.8.19"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was this version revert intentional? probably bad merge

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that was an accident.

authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"

Expand Down Expand Up @@ -51,6 +51,7 @@ members = [
"node/core/candidate-validation",
"node/core/chain-api",
"node/core/proposer",
"node/core/provisioner",
"node/core/runtime-api",
"node/network/bridge",
"node/network/pov-distribution",
Expand Down
44 changes: 3 additions & 41 deletions node/core/backing/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,9 @@ use polkadot_primitives::v1::{
};
use polkadot_node_primitives::{
FromTableMisbehavior, Statement, SignedFullStatement, MisbehaviorReport,
ValidationOutputs, ValidationResult, SpawnNamed,
ValidationOutputs, ValidationResult,
};
use polkadot_subsystem::{
Subsystem, SubsystemContext, SpawnedSubsystem,
messages::{
AllMessages, AvailabilityStoreMessage, CandidateBackingMessage, CandidateSelectionMessage,
CandidateValidationMessage, NewBackedCandidate, PoVDistributionMessage, ProvisionableData,
Expand All @@ -54,6 +53,7 @@ use polkadot_subsystem::{
request_from_runtime,
Validator,
},
delegated_subsystem,
};
use statement_table::{
generic::AttestedCandidate as TableAttestedCandidate,
Expand Down Expand Up @@ -772,45 +772,7 @@ impl util::JobTrait for CandidateBackingJob {
}
}

/// Manager type for the CandidateBackingSubsystem
type Manager<Spawner, Context> = util::JobManager<Spawner, Context, CandidateBackingJob>;

/// An implementation of the Candidate Backing subsystem.
pub struct CandidateBackingSubsystem<Spawner, Context> {
manager: Manager<Spawner, Context>,
}

impl<Spawner, Context> CandidateBackingSubsystem<Spawner, Context>
where
Spawner: Clone + SpawnNamed + Send + Unpin,
Context: SubsystemContext,
ToJob: From<<Context as SubsystemContext>::Message>,
{
/// Creates a new `CandidateBackingSubsystem`.
pub fn new(spawner: Spawner, keystore: KeyStorePtr) -> Self {
CandidateBackingSubsystem {
manager: util::JobManager::new(spawner, keystore)
}
}

/// Run this subsystem
pub async fn run(ctx: Context, keystore: KeyStorePtr, spawner: Spawner) {
<Manager<Spawner, Context>>::run(ctx, keystore, spawner, None).await
}
}

impl<Spawner, Context> Subsystem<Context> for CandidateBackingSubsystem<Spawner, Context>
where
Spawner: SpawnNamed + Send + Clone + Unpin + 'static,
Context: SubsystemContext,
<Context as SubsystemContext>::Message: Into<ToJob>,
{
fn start(self, ctx: Context) -> SpawnedSubsystem {
self.manager.start(ctx)
}
}


delegated_subsystem!(CandidateBackingJob(KeyStorePtr) <- ToJob as CandidateBackingSubsystem);

#[cfg(test)]
mod tests {
Expand Down
18 changes: 18 additions & 0 deletions node/core/provisioner/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[package]
name = "polkadot-node-core-provisioner"
version = "0.1.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"

[dependencies]
bitvec = { version = "0.17.4", default-features = false, features = ["alloc"] }
derive_more = "0.99.9"
futures = "0.3.5"
log = "0.4.8"
polkadot-primitives = { path = "../../../primitives" }
polkadot-node-subsystem = { path = "../../subsystem" }

[dev-dependencies]
lazy_static = "1.4"
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master" }
tokio = "0.2"
Loading