Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
de742d7
update primitives
rphmeier Aug 13, 2020
6c019fa
correct parent_head field
rphmeier Aug 13, 2020
427938f
make hrmp field pub
rphmeier Aug 13, 2020
01e72da
refactor validation data: runtime
rphmeier Aug 13, 2020
7500247
refactor validation data: messages
rphmeier Aug 13, 2020
5df917b
add arguments to full_validation_data runtime API
rphmeier Aug 13, 2020
d55d3e3
port runtime API
rphmeier Aug 13, 2020
3e807d9
mostly port over candidate validation
rphmeier Aug 13, 2020
cab7f23
remove some parameters from ValidationParams
rphmeier Aug 13, 2020
174b7f1
guide: update candidate validation
rphmeier Aug 13, 2020
0734164
update candidate outputs
rphmeier Aug 13, 2020
378e4d7
update ValidationOutputs in primitives
rphmeier Aug 13, 2020
5d068fd
port over candidate validation
rphmeier Aug 13, 2020
f02fbf3
add a new test for no-transient behavior
rphmeier Aug 13, 2020
60e0f55
update util runtime API wrappers
rphmeier Aug 13, 2020
8b40845
candidate backing
rphmeier Aug 13, 2020
2a275c7
fix missing imports
rphmeier Aug 14, 2020
6a81c63
change some fields of validation data around
rphmeier Aug 17, 2020
1b0f77d
runtime API impl
rphmeier Aug 17, 2020
54c7029
update candidate validation
rphmeier Aug 17, 2020
41ced5e
fix backing tests
rphmeier Aug 17, 2020
02a2a51
grumbles from review
rphmeier Aug 17, 2020
b46787a
fix av-store tests
rphmeier Aug 17, 2020
16a1a42
fix some more crates
rphmeier Aug 17, 2020
9ccb9a3
fix provisioner tests
rphmeier Aug 17, 2020
c8e0305
fix availability distribution tests
rphmeier Aug 17, 2020
3dccc79
Merge branch 'master' into rh-validation-data-refactor-impl
rphmeier Aug 17, 2020
caee3c0
port collation-generation to new validation data
rphmeier Aug 17, 2020
46385b2
Merge branch 'master' into rh-validation-data-refactor-impl
rphmeier Aug 17, 2020
46e390c
fix overseer tests
rphmeier Aug 17, 2020
5097f55
Update roadmap/implementers-guide/src/node/utility/candidate-validati…
rphmeier Aug 18, 2020
a7702aa
Merge branch 'master' into rh-validation-data-refactor-impl
rphmeier Aug 18, 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
Prev Previous commit
Next Next commit
port runtime API
  • Loading branch information
rphmeier committed Aug 13, 2020
commit d55d3e343a2f06ecfbfd2aeb054057dcc359441e
61 changes: 41 additions & 20 deletions node/core/runtime-api/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,10 @@ fn make_runtime_api_request<Client>(
Request::Validators(sender) => query!(validators(), sender),
Request::ValidatorGroups(sender) => query!(validator_groups(), sender),
Request::AvailabilityCores(sender) => query!(availability_cores(), sender),
Request::GlobalValidationData(sender) => query!(global_validation_data(), sender),
Request::LocalValidationData(para, assumption, sender) =>
query!(local_validation_data(para, assumption), sender),
Request::PersistedValidationData(para, assumption, sender) =>
query!(persisted_validation_data(para, assumption), sender),
Request::FullValidationData(para, assumption, sender) =>
query!(full_validation_data(para, assumption), sender),
Request::SessionIndexForChild(sender) => query!(session_index_for_child(), sender),
Request::ValidationCode(para, assumption, sender) =>
query!(validation_code(para, assumption), sender),
Expand All @@ -119,8 +120,8 @@ mod tests {
use super::*;

use polkadot_primitives::v1::{
ValidatorId, ValidatorIndex, GroupRotationInfo, CoreState, GlobalValidationData,
Id as ParaId, OccupiedCoreAssumption, LocalValidationData, SessionIndex, ValidationCode,
ValidatorId, ValidatorIndex, GroupRotationInfo, CoreState, PersistedValidationData,
Id as ParaId, OccupiedCoreAssumption, ValidationData, SessionIndex, ValidationCode,
CommittedCandidateReceipt, CandidateEvent,
};
use polkadot_node_subsystem_test_helpers as test_helpers;
Expand All @@ -134,8 +135,7 @@ mod tests {
validators: Vec<ValidatorId>,
validator_groups: Vec<Vec<ValidatorIndex>>,
availability_cores: Vec<CoreState>,
global_validation_data: GlobalValidationData,
local_validation_data: HashMap<ParaId, LocalValidationData>,
validation_data: HashMap<ParaId, ValidationData>,
session_index_for_child: SessionIndex,
validation_code: HashMap<ParaId, ValidationCode>,
candidate_pending_availability: HashMap<ParaId, CommittedCandidateReceipt>,
Expand Down Expand Up @@ -173,16 +173,20 @@ mod tests {
self.availability_cores.clone()
}

fn global_validation_data(&self) -> GlobalValidationData {
self.global_validation_data.clone()
fn persisted_validation_data(
&self,
para: ParaId,
_assumption: OccupiedCoreAssumption,
) -> Option<PersistedValidationData> {
self.validation_data.get(&para).map(|l| l.persisted.clone())
}

fn local_validation_data(
fn full_validation_data(
&self,
para: ParaId,
_assumption: OccupiedCoreAssumption,
) -> Option<LocalValidationData> {
self.local_validation_data.get(&para).map(|l| l.clone())
) -> Option<ValidationData> {
self.validation_data.get(&para).map(|l| l.clone())
}

fn session_index_for_child(&self) -> SessionIndex {
Expand Down Expand Up @@ -277,20 +281,37 @@ mod tests {
}

#[test]
fn requests_global_validation_data() {
fn requests_persisted_validation_data() {
let (ctx, mut ctx_handle) = test_helpers::make_subsystem_context(TaskExecutor::new());
let runtime_api = MockRuntimeApi::default();
let mut runtime_api = MockRuntimeApi::default();
let relay_parent = [1; 32].into();
let para_a = 5.into();
let para_b = 6.into();

runtime_api.validation_data.insert(para_a, Default::default());

let subsystem_task = run(ctx, runtime_api.clone()).map(|x| x.unwrap());
let test_task = async move {
let (tx, rx) = oneshot::channel();

ctx_handle.send(FromOverseer::Communication {
msg: RuntimeApiMessage::Request(relay_parent, Request::GlobalValidationData(tx))
msg: RuntimeApiMessage::Request(
relay_parent,
Request::PersistedValidationData(para_a, OccupiedCoreAssumption::Included, tx)
),
}).await;

assert_eq!(rx.await.unwrap().unwrap(), runtime_api.global_validation_data);
assert_eq!(rx.await.unwrap().unwrap(), Some(Default::default()));

let (tx, rx) = oneshot::channel();
ctx_handle.send(FromOverseer::Communication {
msg: RuntimeApiMessage::Request(
relay_parent,
Request::PersistedValidationData(para_b, OccupiedCoreAssumption::Included, tx)
),
}).await;

assert_eq!(rx.await.unwrap().unwrap(), None);

ctx_handle.send(FromOverseer::Signal(OverseerSignal::Conclude)).await;
};
Expand All @@ -299,14 +320,14 @@ mod tests {
}

#[test]
fn requests_local_validation_data() {
fn requests_full_validation_data() {
let (ctx, mut ctx_handle) = test_helpers::make_subsystem_context(TaskExecutor::new());
let mut runtime_api = MockRuntimeApi::default();
let relay_parent = [1; 32].into();
let para_a = 5.into();
let para_b = 6.into();

runtime_api.local_validation_data.insert(para_a, Default::default());
runtime_api.validation_data.insert(para_a, Default::default());

let subsystem_task = run(ctx, runtime_api.clone()).map(|x| x.unwrap());
let test_task = async move {
Expand All @@ -315,7 +336,7 @@ mod tests {
ctx_handle.send(FromOverseer::Communication {
msg: RuntimeApiMessage::Request(
relay_parent,
Request::LocalValidationData(para_a, OccupiedCoreAssumption::Included, tx)
Request::FullValidationData(para_a, OccupiedCoreAssumption::Included, tx)
),
}).await;

Expand All @@ -325,7 +346,7 @@ mod tests {
ctx_handle.send(FromOverseer::Communication {
msg: RuntimeApiMessage::Request(
relay_parent,
Request::LocalValidationData(para_b, OccupiedCoreAssumption::Included, tx)
Request::FullValidationData(para_b, OccupiedCoreAssumption::Included, tx)
),
}).await;

Expand Down